|
Re: [EMF Compare]MatchEngine NPE bug [message #121789 is a reply to message #121761] |
Fri, 02 May 2008 15:57 |
Eclipse User |
|
|
|
Originally posted by: merks.ca.ibm.com
Guys,
Just a suggestion. Calling eResource can potentially be quite
expensive, since you have to traverse all the way to the root, so I'd
suggest calling it once and using the returned value multiple times.
David Michonneau wrote:
> Hi,
>
> It seems there is a bug in the GenericMatchEngine.hasSameUri() code:
>
> if one of the EObject returns an empty eResource() (which happens for some
> objects in my model), it throws a NPE. I suggest the following fix below.
>
> Thanks,
>
> David
> /**
>
> * Checks wether the two given {@link EObject} have the same URI.
>
> *
>
> * @param obj1
>
> * First of the two {@link EObject} we're comparing.
>
> * @param obj2
>
> * Second {@link EObject} we're comparing.
>
> * @return <code>True</code> if the {@link EObject}s have the same URI,
> <code>False</code> otherwise.
>
> */
>
> private boolean hasSameUri(EObject obj1, EObject obj2) {
>
> if ( obj1.eResource() == obj2.eResource() ) // null==null returns true
>
> return true;
>
> if ( obj1.eResource() == null || obj2.eResource() == null ) // if one of
> them is null and not the other return false
>
> return false;
>
> return
> obj1.eResource().getURIFragment(obj1).equals(obj2.eResource( ).getURIFragment(obj2));
>
> }
>
>
>
|
|
|
Re: [EMF Compare]MatchEngine NPE bug [message #122141 is a reply to message #121761] |
Wed, 07 May 2008 08:57 |
Cedric Brun Messages: 431 Registered: July 2009 |
Senior Member |
|
|
Hi David,
Thanks (again ;) ) for your feedback, we'll apply the fix ASAP.
Cédric
David Michonneau wrote:
> Hi,
>
> It seems there is a bug in the GenericMatchEngine.hasSameUri() code:
>
> if one of the EObject returns an empty eResource() (which happens for some
> objects in my model), it throws a NPE. I suggest the following fix below.
>
> Thanks,
>
> David
> /**
>
> * Checks wether the two given {@link EObject} have the same URI.
>
> *
>
> * @param obj1
>
> * First of the two {@link EObject} we're comparing.
>
> * @param obj2
>
> * Second {@link EObject} we're comparing.
>
> * @return <code>True</code> if the {@link EObject}s have the same URI,
> <code>False</code> otherwise.
>
> */
>
> private boolean hasSameUri(EObject obj1, EObject obj2) {
>
> if ( obj1.eResource() == obj2.eResource() ) // null==null returns true
>
> return true;
>
> if ( obj1.eResource() == null || obj2.eResource() == null ) // if one of
> them is null and not the other return false
>
> return false;
>
> return
>
obj1.eResource().getURIFragment(obj1).equals(obj2.eResource( ).getURIFragment(obj2));
>
> }
http://cedric.brun.io news and articles on eclipse and eclipse modeling.
|
|
|
Re: [EMF Compare]MatchEngine NPE bug [message #617987 is a reply to message #121761] |
Fri, 02 May 2008 15:57 |
Ed Merks Messages: 33188 Registered: July 2009 |
Senior Member |
|
|
Guys,
Just a suggestion. Calling eResource can potentially be quite
expensive, since you have to traverse all the way to the root, so I'd
suggest calling it once and using the returned value multiple times.
David Michonneau wrote:
> Hi,
>
> It seems there is a bug in the GenericMatchEngine.hasSameUri() code:
>
> if one of the EObject returns an empty eResource() (which happens for some
> objects in my model), it throws a NPE. I suggest the following fix below.
>
> Thanks,
>
> David
> /**
>
> * Checks wether the two given {@link EObject} have the same URI.
>
> *
>
> * @param obj1
>
> * First of the two {@link EObject} we're comparing.
>
> * @param obj2
>
> * Second {@link EObject} we're comparing.
>
> * @return <code>True</code> if the {@link EObject}s have the same URI,
> <code>False</code> otherwise.
>
> */
>
> private boolean hasSameUri(EObject obj1, EObject obj2) {
>
> if ( obj1.eResource() == obj2.eResource() ) // null==null returns true
>
> return true;
>
> if ( obj1.eResource() == null || obj2.eResource() == null ) // if one of
> them is null and not the other return false
>
> return false;
>
> return
> obj1.eResource().getURIFragment(obj1).equals(obj2.eResource( ).getURIFragment(obj2));
>
> }
>
>
>
Ed Merks
Professional Support: https://www.macromodeling.com/
|
|
|
Re: [EMF Compare]MatchEngine NPE bug [message #618014 is a reply to message #121761] |
Wed, 07 May 2008 08:57 |
Cedric Brun Messages: 431 Registered: July 2009 |
Senior Member |
|
|
Hi David,
Thanks (again ;) ) for your feedback, we'll apply the fix ASAP.
Cédric
David Michonneau wrote:
> Hi,
>
> It seems there is a bug in the GenericMatchEngine.hasSameUri() code:
>
> if one of the EObject returns an empty eResource() (which happens for some
> objects in my model), it throws a NPE. I suggest the following fix below.
>
> Thanks,
>
> David
> /**
>
> * Checks wether the two given {@link EObject} have the same URI.
>
> *
>
> * @param obj1
>
> * First of the two {@link EObject} we're comparing.
>
> * @param obj2
>
> * Second {@link EObject} we're comparing.
>
> * @return <code>True</code> if the {@link EObject}s have the same URI,
> <code>False</code> otherwise.
>
> */
>
> private boolean hasSameUri(EObject obj1, EObject obj2) {
>
> if ( obj1.eResource() == obj2.eResource() ) // null==null returns true
>
> return true;
>
> if ( obj1.eResource() == null || obj2.eResource() == null ) // if one of
> them is null and not the other return false
>
> return false;
>
> return
>
obj1.eResource().getURIFragment(obj1).equals(obj2.eResource( ).getURIFragment(obj2));
>
> }
http://cedric.brun.io news and articles on eclipse and eclipse modeling.
|
|
|
Powered by
FUDForum. Page generated in 0.03919 seconds