[EMF Compare] NullPointerException in EMF Compare Merge Service [message #518467] |
Thu, 04 March 2010 08:41 |
Sabri Skhiri Messages: 43 Registered: February 2010 |
Member |
|
|
Hi,
We found the following problem when using EMF Compare Merge service (from left to right, i.e. undoInTarget):
We have got a NPE when merging models that use opposite EReferences in their ECore, when one end of the opposite is a new EObject (does not exist in right) and the other end already exists in right.
Scenario:
The problem occurs when:
1) For example, we have got an ecore, but I did not find a way to attach
2) Create a model My.testemfc, with two classes a:C1 and b:C2.
3) Copy the model to aMy.testemfc and edit it to:
a. Add a new class c:C1
b. Add "a" to c.referenced. Its opposite is set as well: a.referencing contains "c".
4) Save and compare the two files with each other.
5) Copy all from left to right. An NPE occurs.
Stack trace:
eclipse.buildId=I20090611-1540
java.version=1.6.0_17
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Framework arguments: -product org.eclipse.platform.ide
Error
Thu Mar 04 08:29:34 CET 2010
Unhandled event loop exception
java.lang.NullPointerException
at org.eclipse.emf.compare.diff.merge.EMFCompareEObjectCopier.copyReferences(EMFCompareEObjectCopier.java:89)
at org.eclipse.emf.compare.diff.merge.DefaultMerger.copy(DefaultMerger.java:134)
at org.eclipse.emf.compare.diff.internal.merge.impl.ModelElementChangeLeftTargetMerger.undoInTarget(ModelElementChangeLeftTargetMerger.java:66)
at org.eclipse.emf.compare.diff.merge.service.MergeService.doMerge(MergeService.java:166)
at org.eclipse.emf.compare.diff.merge.service.MergeService.merge(MergeService.java:130)
at org.eclipse.emf.compare.diff.internal.merge.impl.DiffGroupMerger.undoInTarget(DiffGroupMerger.java:48)
at org.eclipse.emf.compare.diff.merge.service.MergeService.doMerge(MergeService.java:166)
at org.eclipse.emf.compare.diff.merge.service.MergeService.merge(MergeService.java:130)
at org.eclipse.emf.compare.diff.internal.merge.impl.DiffGroupMerger.undoInTarget(DiffGroupMerger.java:48)
at org.eclipse.emf.compare.diff.merge.service.MergeService.doMerge(MergeService.java:166)
at org.eclipse.emf.compare.diff.merge.service.MergeService.merge(MergeService.java:130)
at org.eclipse.emf.compare.ui.ModelCompareInput.doCopy(ModelCompareInput.java:485)
at org.eclipse.emf.compare.ui.ModelCompareInput.copy(ModelCompareInput.java:164)
at org.eclipse.emf.compare.ui.viewer.content.ModelContentMergeViewer.copy(ModelContentMergeViewer.java:380)
at org.eclipse.compare.contentmergeviewer.ContentMergeViewer$8.run(ContentMergeViewer.java:881)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:452)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3880)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3473)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
at org.eclipse.equinox.launcher.Main.main(Main.java:1287)
Is this a known bug ?
Sabri.
[Updated on: Thu, 04 March 2010 08:49] Report message to a moderator
|
|
|
Re: [EMF Compare] NullPointerException in EMF Compare Merge Service [message #518561 is a reply to message #518467] |
Thu, 04 March 2010 13:42 |
|
This is a multi-part message in MIME format.
--------------070501090304010300030401
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Hi Sabri,
We have quite a number of issues raised against the merge
functionalities of EMF Compare ; looking at this stack trace and related
code, this is obviously a bug too. This might have already been raised
on bugzilla, but please raise a new bug with this stack trace so that we
don't lose track of it ; I'll take care of the duplicate marking later
if it's already been raised.
Please note that we're currently focusing on integrating patch
contributions before M6 and that we won't be able to look into this
beofre the Helios release if you cannot provide us with a patch.
Laurent Goubet
Obeo
Sabri Skhiri wrote:
> Hi,
>
> We found the following problem when using EMF Compare Merge service
> (from left to right, i.e. undoInTarget):
>
> We have got a NPE when merging models that use opposite EReferences in
> their ECore, when one end of the opposite is a new EObject (does not
> exist in right) and the other end already exists in right.
>
> Scenario:
>
> The problem occurs when.
>
> 1) For example, look at the ecore in attachment.
>
> 2) Create a model My.testemfc, with two classes a:C1 and b:C2.
>
> 3) Copy the model to aMy.testemfc and edit it to:
>
> a. Add a new class c:C1
>
> b. Add "a" to c.referenced. Its opposite is set as well:
> a.referencing contains "c".
>
> 4) Save and compare the two files with each other.
>
> 5) Copy all from left to right. An NPE occurs.
>
> Stack trace:
> eclipse.buildId=I20090611-1540
> java.version=1.6.0_17
> java.vendor=Sun Microsystems Inc.
> BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
> Framework arguments: -product org.eclipse.platform.ide
>
> Error
>
> Thu Mar 04 08:29:34 CET 2010
>
> Unhandled event loop exception
>
> java.lang.NullPointerException
>
> at
> org.eclipse.emf.compare.diff.merge.EMFCompareEObjectCopier.c opyReferences(EMFCompareEObjectCopier.java:89)
>
>
> at
> org.eclipse.emf.compare.diff.merge.DefaultMerger.copy(Defaul tMerger.java:134)
>
>
> at
> org.eclipse.emf.compare.diff.internal.merge.impl.ModelElemen tChangeLeftTargetMerger.undoInTarget(ModelElementChangeLeftT argetMerger.java:66)
>
>
> at
> org.eclipse.emf.compare.diff.merge.service.MergeService.doMe rge(MergeService.java:166)
>
>
> at
> org.eclipse.emf.compare.diff.merge.service.MergeService.merg e(MergeService.java:130)
>
>
> at
> org.eclipse.emf.compare.diff.internal.merge.impl.DiffGroupMe rger.undoInTarget(DiffGroupMerger.java:48)
>
>
> at
> org.eclipse.emf.compare.diff.merge.service.MergeService.doMe rge(MergeService.java:166)
>
>
> at
> org.eclipse.emf.compare.diff.merge.service.MergeService.merg e(MergeService.java:130)
>
>
> at
> org.eclipse.emf.compare.diff.internal.merge.impl.DiffGroupMe rger.undoInTarget(DiffGroupMerger.java:48)
>
>
> at
> org.eclipse.emf.compare.diff.merge.service.MergeService.doMe rge(MergeService.java:166)
>
>
> at
> org.eclipse.emf.compare.diff.merge.service.MergeService.merg e(MergeService.java:130)
>
>
> at
> org.eclipse.emf.compare.ui.ModelCompareInput.doCopy(ModelCom pareInput.java:485)
>
>
> at
> org.eclipse.emf.compare.ui.ModelCompareInput.copy(ModelCompa reInput.java:164)
>
>
> at
> org.eclipse.emf.compare.ui.viewer.content.ModelContentMergeV iewer.copy(ModelContentMergeViewer.java:380)
>
>
> at
> org.eclipse.compare.contentmergeviewer.ContentMergeViewer$8. run(ContentMergeViewer.java:881)
>
>
> at org.eclipse.jface.action.Action.runWithEvent(Action.java:498 )
>
> at
> org.eclipse.jface.action.ActionContributionItem.handleWidget Selection(ActionContributionItem.java:584)
>
>
> at
> org.eclipse.jface.action.ActionContributionItem.access$2(Act ionContributionItem.java:501)
>
>
> at
> org.eclipse.jface.action.ActionContributionItem$6.handleEven t(ActionContributionItem.java:452)
>
>
> at
> org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
>
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
>
> at
> org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja va:3880)
>
> at
> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3473)
>
> at
> org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2405)
>
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
>
> at
> org.eclipse.ui.internal.Workbench.access$4(Workbench.java:22 21)
>
> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
>
> at
> org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:332)
>
>
> at
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:493)
>
> at
> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
>
> at
> org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
>
>
> at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:194)
>
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
>
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
>
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:368)
>
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
>
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
>
> at java.lang.reflect.Method.invoke(Unknown Source)
>
> at
> org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 559)
>
> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
>
> at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
>
> at org.eclipse.equinox.launcher.Main.main(Main.java:1287)
>
> Is this a known bug ?
> Sabri.
--------------070501090304010300030401
Content-Type: text/x-vcard; charset=utf-8;
name="laurent_goubet.vcf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="laurent_goubet.vcf"
YmVnaW46dmNhcmQNCmZuOkxhdXJlbnQgR291YmV0DQpuOkdvdWJldDtMYXVy ZW50DQpvcmc6
PGEgaHJlZj0iaHR0cDovL3d3dy5vYmVvLmZyIj5PYmVvPC9hPg0KZW1haWw7 aW50ZXJuZXQ6
bGF1cmVudC5nb3ViZXRAb2Jlby5mcg0KdXJsOmh0dHA6Ly93d3cub2Jlby5m cg0KdmVyc2lv
bjoyLjENCmVuZDp2Y2FyZA0KDQo=
--------------070501090304010300030401--
|
|
|
Powered by
FUDForum. Page generated in 0.03111 seconds