[EMF] Exception when using remove/removeAll [message #1700813] |
Tue, 07 July 2015 07:36  |
Eclipse User |
|
|
|
Hey,
i always get an exception if i use remove or removeAll for a contained list.
I don't get it for every element in the list nor for the ones to be removed.
Sometimes i get it only for one (the first?) element..
Any ideas why this happens? Where is this ID stored? In EMF-Store and EMF-Forms everything works fine, the element is stored and reloaded correctly. The remove methods also work but i get these exceptions..
!ENTRY org.eclipse.emf.emfstore.client 4 4 2015-07-07 13:31:11.784
!MESSAGE Element in Project does not have an ID: design.impl.FactorModelImpl@7845f53d (name: Analysis.messageSize, variableUnit: null, variableType: Integer) (forceFullFactorial: false)
!STACK 0
java.lang.IllegalStateException: Element in Project does not have an ID: design.impl.FactorModelImpl@7845f53d (name: Analysis.messageSize, variableUnit: null, variableType: Integer) (forceFullFactorial: false)
at org.eclipse.emf.emfstore.internal.client.model.changeTracking.NotificationToOperationConverter.setCommonValues(NotificationToOperationConverter.java:405)
at org.eclipse.emf.emfstore.internal.client.model.changeTracking.NotificationToOperationConverter.createSingleReferenceOperation(NotificationToOperationConverter.java:337)
at org.eclipse.emf.emfstore.internal.client.model.changeTracking.NotificationToOperationConverter.handleSetReference(NotificationToOperationConverter.java:361)
at org.eclipse.emf.emfstore.internal.client.model.changeTracking.NotificationToOperationConverter.convert(NotificationToOperationConverter.java:82)
at org.eclipse.emf.emfstore.internal.client.model.impl.OperationRecorder.recordingFinished(OperationRecorder.java:365)
at org.eclipse.emf.emfstore.internal.client.model.impl.OperationRecorder.notify(OperationRecorder.java:943)
at org.eclipse.emf.emfstore.internal.client.model.impl.OperationManager.notify(OperationManager.java:252)
at org.eclipse.emf.emfstore.internal.common.model.impl.NotifiableIdEObjectCollectionImpl$3.run(NotifiableIdEObjectCollectionImpl.java:217)
at org.eclipse.emf.emfstore.internal.common.model.impl.NotifiableIdEObjectCollectionImpl$2.run(NotifiableIdEObjectCollectionImpl.java:142)
at org.eclipse.emf.emfstore.common.ESSafeRunner.run(ESSafeRunner.java:38)
at org.eclipse.emf.emfstore.internal.common.model.impl.NotifiableIdEObjectCollectionImpl.notifyIdEObjectCollectionChangeObservers(NotifiableIdEObjectCollectionImpl.java:165)
at org.eclipse.emf.emfstore.internal.common.model.impl.NotifiableIdEObjectCollectionImpl.notify(NotifiableIdEObjectCollectionImpl.java:230)
at org.eclipse.emf.emfstore.internal.common.model.util.EObjectChangeNotifier.notifyCollection(EObjectChangeNotifier.java:220)
at org.eclipse.emf.emfstore.internal.common.model.util.EObjectChangeNotifier.notifyChanged(EObjectChangeNotifier.java:208)
at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374)
at org.eclipse.emf.common.notify.impl.NotificationImpl.dispatch(NotificationImpl.java:1027)
at org.eclipse.emf.common.notify.impl.NotificationImpl.dispatch(NotificationImpl.java:1032)
at org.eclipse.emf.common.notify.impl.NotificationImpl.dispatch(NotificationImpl.java:1032)
at org.eclipse.emf.common.notify.impl.NotificationImpl.dispatch(NotificationImpl.java:1032)
at org.eclipse.emf.common.notify.impl.NotificationImpl.dispatch(NotificationImpl.java:1032)
at org.eclipse.emf.common.notify.impl.NotificationImpl.dispatch(NotificationImpl.java:1032)
at org.eclipse.emf.common.notify.impl.NotificationImpl.dispatch(NotificationImpl.java:1032)
at org.eclipse.emf.common.notify.impl.NotificationImpl.dispatch(NotificationImpl.java:1032)
at org.eclipse.emf.common.notify.impl.NotifyingListImpl.removeAll(NotifyingListImpl.java:954)
at de.fau.syntony.experiment.control.refresh.DesignValidator.removeWrongFactors(DesignValidator.java:138)
at de.fau.syntony.experiment.control.refresh.DesignValidator.validate(DesignValidator.java:35)
at de.fau.syntony.experiment.renderer.DesignValidationRenderer$1.widgetSelected(DesignValidationRenderer.java:77)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4170)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:140)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:611)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
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:354)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
!ENTRY org.eclipse.osgi 2 1 2015-07-07 13:31:11.793
!MESSAGE NLS missing message: NotifiableIdEObjectCollectionImpl_Exception in: org.eclipse.emf.emfstore.internal.common.model.impl.messages
!ENTRY org.eclipse.osgi 2 1 2015-07-07 13:31:11.804
!MESSAGE NLS missing message: NotifiableIdEObjectCollectionImpl_Exception_Detach in: org.eclipse.emf.emfstore.internal.common.model.impl.messages
!ENTRY org.eclipse.osgi 2 1 2015-07-07 13:31:11.809
!MESSAGE NLS missing message: NotifiableIdEObjectCollectionImpl_Exception_NoDetach in: org.eclipse.emf.emfstore.internal.common.model.impl.messages
|
|
|
Re: [EMF] Exception when using remove/removeAll [message #1701101 is a reply to message #1700813] |
Thu, 09 July 2015 06:24   |
Eclipse User |
|
|
|
Hi Tobias,
this errors occurs, if, for whatever reason, a model element that is
contained within the project, has no ID assigned. This must not happen,
since the operation recording mechanism then isn't capable anymore of
uniquely identifying an element.
What's causing the problem is hard to tell. If you always encounter this
exception, maybe you can provide me with more info about the data and
its shape? Please also consider opening a BR
(https://bugs.eclipse.org/bugs/enter_bug.cgi?product=EMFStore).
Thanks,
Edgar
> Hey,
>
> i always get an exception if i use remove or removeAll for a contained
> list.
> I don't get it for every element in the list nor for the ones to be
> removed.
> Sometimes i get it only for one (the first?) element..
>
> Any ideas why this happens? Where is this ID stored? In EMF-Store and
> EMF-Forms everything works fine, the element is stored and reloaded
> correctly. The remove methods also work but i get these exceptions..
>
> !ENTRY org.eclipse.emf.emfstore.client 4 4 2015-07-07 13:31:11.784
> !MESSAGE Element in Project does not have an ID:
> design.impl.FactorModelImpl@7845f53d (name: Analysis.messageSize,
> variableUnit: null, variableType: Integer) (forceFullFactorial: false)
> !STACK 0
> java.lang.IllegalStateException: Element in Project does not have an ID:
> design.impl.FactorModelImpl@7845f53d (name: Analysis.messageSize,
> variableUnit: null, variableType: Integer) (forceFullFactorial: false)
> at
> org.eclipse.emf.emfstore.internal.client.model.changeTracking.NotificationToOperationConverter.setCommonValues(NotificationToOperationConverter.java:405)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.changeTracking.NotificationToOperationConverter.createSingleReferenceOperation(NotificationToOperationConverter.java:337)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.changeTracking.NotificationToOperationConverter.handleSetReference(NotificationToOperationConverter.java:361)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.changeTracking.NotificationToOperationConverter.convert(NotificationToOperationConverter.java:82)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.impl.OperationRecorder.recordingFinished(OperationRecorder.java:365)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.impl.OperationRecorder.notify(OperationRecorder.java:943)
>
> at
> org.eclipse.emf.emfstore.internal.client.model.impl.OperationManager.notify(OperationManager.java:252)
>
> at
> org.eclipse.emf.emfstore.internal.common.model.impl.NotifiableIdEObjectCollectionImpl$3.run(NotifiableIdEObjectCollectionImpl.java:217)
>
> at
> org.eclipse.emf.emfstore.internal.common.model.impl.NotifiableIdEObjectCollectionImpl$2.run(NotifiableIdEObjectCollectionImpl.java:142)
>
> at
> org.eclipse.emf.emfstore.common.ESSafeRunner.run(ESSafeRunner.java:38)
> at
> org.eclipse.emf.emfstore.internal.common.model.impl.NotifiableIdEObjectCollectionImpl.notifyIdEObjectCollectionChangeObservers(NotifiableIdEObjectCollectionImpl.java:165)
>
> at
> org.eclipse.emf.emfstore.internal.common.model.impl.NotifiableIdEObjectCollectionImpl.notify(NotifiableIdEObjectCollectionImpl.java:230)
>
> at
> org.eclipse.emf.emfstore.internal.common.model.util.EObjectChangeNotifier.notifyCollection(EObjectChangeNotifier.java:220)
>
> at
> org.eclipse.emf.emfstore.internal.common.model.util.EObjectChangeNotifier.notifyChanged(EObjectChangeNotifier.java:208)
>
> at
> org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374)
>
> at
> org.eclipse.emf.common.notify.impl.NotificationImpl.dispatch(NotificationImpl.java:1027)
>
> at
> org.eclipse.emf.common.notify.impl.NotificationImpl.dispatch(NotificationImpl.java:1032)
>
> at
> org.eclipse.emf.common.notify.impl.NotificationImpl.dispatch(NotificationImpl.java:1032)
>
> at
> org.eclipse.emf.common.notify.impl.NotificationImpl.dispatch(NotificationImpl.java:1032)
>
> at
> org.eclipse.emf.common.notify.impl.NotificationImpl.dispatch(NotificationImpl.java:1032)
>
> at
> org.eclipse.emf.common.notify.impl.NotificationImpl.dispatch(NotificationImpl.java:1032)
>
> at
> org.eclipse.emf.common.notify.impl.NotificationImpl.dispatch(NotificationImpl.java:1032)
>
> at
> org.eclipse.emf.common.notify.impl.NotificationImpl.dispatch(NotificationImpl.java:1032)
>
> at
> org.eclipse.emf.common.notify.impl.NotifyingListImpl.removeAll(NotifyingListImpl.java:954)
>
> at
> de.fau.syntony.experiment.control.refresh.DesignValidator.removeWrongFactors(DesignValidator.java:138)
>
> at
> de.fau.syntony.experiment.control.refresh.DesignValidator.validate(DesignValidator.java:35)
>
> at
> de.fau.syntony.experiment.renderer.DesignValidationRenderer$1.widgetSelected(DesignValidationRenderer.java:77)
>
> at
> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
> at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4170)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
> at
> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
>
> at
> org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
>
> at
> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
>
> at
> org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:140)
>
> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:611)
> at
> org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
>
> at
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
> at
> org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
>
> at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
>
> 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:354)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>
> at java.lang.reflect.Method.invoke(Method.java:483)
> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
> at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
> at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
>
> !ENTRY org.eclipse.osgi 2 1 2015-07-07 13:31:11.793
> !MESSAGE NLS missing message:
> NotifiableIdEObjectCollectionImpl_Exception in:
> org.eclipse.emf.emfstore.internal.common.model.impl.messages
>
> !ENTRY org.eclipse.osgi 2 1 2015-07-07 13:31:11.804
> !MESSAGE NLS missing message:
> NotifiableIdEObjectCollectionImpl_Exception_Detach in:
> org.eclipse.emf.emfstore.internal.common.model.impl.messages
>
> !ENTRY org.eclipse.osgi 2 1 2015-07-07 13:31:11.809
> !MESSAGE NLS missing message:
> NotifiableIdEObjectCollectionImpl_Exception_NoDetach in:
> org.eclipse.emf.emfstore.internal.common.model.impl.messages
--
Edgar Mueller
Get Professional Eclipse Support:
http://eclipsesource.com/en/services/developer-support/
|
|
|
|
Re: [EMF] Exception when using remove/removeAll [message #1701570 is a reply to message #1701124] |
Tue, 14 July 2015 04:26   |
Eclipse User |
|
|
|
Hi Tobias,
this seems strange and I haven't been able yet to reproduce this.
Nevertheless I've opened a BR for this
(https://bugs.eclipse.org/bugs/show_bug.cgi?id=472584). It would be
great if you could comment on that.
I tried to do something along the lines of the following (this is based
on our test suite, where a league contains players):
final League leagueWithPlayers = Create.league("league");
final Player player1 = Create.player();
final Player player2 = Create.player();
final Player player3 = Create.player();
leagueWithPlayers.getPlayers().addAll(
Arrays.asList(player1, player2, player3)
);
getLocalProject().getModelElements().add(leagueWithPlayers);
assertTrue(getLocalProject().isShared());
assertEquals(getLocalProject().getAllModelElements().size(), 4);
leagueWithPlayers.getPlayers().removeAll(
Arrays.asList(player1, player2)
); assertEquals(getLocalProject().getAllModelElements().size(), 2);
and this works for me, but I guess there must be a difference how you
delete elements programatically?
Thanks,
Edgar
> Hey,
>
> thanks for your fast response!
>
> In the EMFStore project.ecp file the models all have IDs, e.g.:
> <factors xmi:id="_rCqR8SSbEeWss5lEVCi61A" name="Analysis.messageSize"
> variableType="Integer">
>
> And as i already mentioned everything else works perfectly fine. I can
> add and remove model elements without any problem in the generated form
> and i can also do it programmatically but with these exceptions.
> So the ID should be set and stored correctly right?
>
> The funny thing is that i get the exception only for one model.. so if
> my list contains 5 models i can remove them but i get the exception for
> only one of them and it is always the same unless ich remove the one
> with the exception, then it is the "next" one. (and the one with the
> exception is not the first one in the list)
>
> Greetings,
> Tobi
--
Edgar Mueller
Get Professional Eclipse Support:
http://eclipsesource.com/en/services/developer-support/
|
|
|
|
|
Re: [EMF] Exception when using remove/removeAll [message #1703371 is a reply to message #1703328] |
Fri, 31 July 2015 03:38  |
Eclipse User |
|
|
|
Hi Tobias,
Edgar is on vacation until the end of next week. He will get back to you
after that.
Best regards
Jonas
Am 30.07.2015 um 18:23 schrieb Tobias Zangl:
> Hi Edgar,
>
> sorry i was on vacation last week but im working on it. It is a little
> bit difficult because my model is larger and i have no clue where to
> start looking for differences.
>
> This is one of the methods which creates the exceptions:
>
> public void removeWrongFactors() {
> EList<FactorModel> removeModels = new BasicEList<FactorModel>();
>
> for(FactorModel m : design.getFactors()) {
> if(!containsInput(m.getName())) {
> removeModels.add(m);
> }
> }
>
> design.getFactors().removeAll(removeModels);
> }
>
>
> As you can see it is rather simple. I will put some more effort into it
> the next days.
>
> Greetings,
> Tobias
--
--
Jonas Helming
Get professional Eclipse developer support:
http://eclipsesource.com/en/services/developer-support/
|
|
|
Powered by
FUDForum. Page generated in 0.03782 seconds