Community
Participate
Working Groups
re: http://www.eclipse.org/forums/index.php?t=tree&th=172367&start=0& Using 2 guarded rules for 2 alternative cases and populating relevant containments by parameterised equivalent("rule") operations. It works fine if I only have one or other case but as soon as I have both cases I get an ArrayStoreException. (I also tried using the target type as the parameter instead of the rule name but this gives exactly the same problem). context.sets = tbuml_model.classes.equivalent("class2set"); //CORE!CarrierSet); context.constants = tbuml_model.classes.equivalent("class2constant"); //CORE!Constant); rule class2set transform class : TBUML!Class to set : CORE!CarrierSet { guard : not class.generalization.isDefined() set.name = class.name; } rule class2constant transform class : TBUML!Class to constant : CORE!Constant { guard : class.generalization.isDefined() constant.name = class.name; } Here is the exception: Internal error: java.lang.ArrayStoreException at org.eclipse.emf.common.util.BasicEList.assign[BasicEList.jav a:124] at org.eclipse.emf.common.util.BasicEList.addUnique[BasicEList. java:424] at org.eclipse.emf.common.notify.impl.NotifyingListImpl.doAddUn ique[NotifyingListImpl.java:331] at org.eclipse.emf.common.notify.impl.NotifyingListImpl.addUniq ue[NotifyingListImpl.java:288] at org.eclipse.emf.common.util.AbstractEList.add[AbstractEList. java:307] at org.eclipse.epsilon.emc.emf.EmfPropertySetter.copyCollection Values[EmfPropertySetter.java:80] at org.eclipse.epsilon.emc.emf.EmfPropertySetter.invoke[EmfProp ertySetter.java:63] at org.eclipse.epsilon.eol.execute.AssignExecutor.execute[Assig nExecutor.java:55] at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:178] at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33] at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:178] at org.eclipse.epsilon.eol.EolOperation.executeBody[EolOperatio n.java:262] at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja va:235] at org.eclipse.epsilon.eol.EolOperation.execute[EolOperation.ja va:193] at org.eclipse.epsilon.eol.EolOperations.execute[EolOperations. java:144] at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati on[PointExecutor.java:161] at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:67] at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:37] at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:123] at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:178] at org.eclipse.epsilon.eol.execute.ParametersExecutor.execute[P arametersExecutor.java:29] at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:178] at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati on[PointExecutor.java:155] at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:67] at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:37] at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointE xecutor.java:123] at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:178] at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te[StatementBlockExecutor.java:33] at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[E xecutorFactory.java:178] at org.eclipse.epsilon.etl.TransformRule.executeSuperRulesAndBo dy[TransformRule.java:314] at org.eclipse.epsilon.etl.TransformRule.transform[TransformRul e.java:257] at org.eclipse.epsilon.etl.strategy.FastTransformationStrategy. executeTransformations[FastTransformationStrategy.java:172] at org.eclipse.epsilon.etl.strategy.FastTransformationStrategy. transformModels[FastTransformationStrategy.java:164] at org.eclipse.epsilon.etl.EtlModule.execute[EtlModule.java:187 ] at ac.soton.eventb.importer.translations.AbstractETLTranslation .execute[AbstractETLTranslation.java:99] at ac.soton.eventb.importer.translations.AbstractETLTranslation .execute[AbstractETLTranslation.java:85] at ac.soton.eventb.importer.actions.UML2EventBAction.run[UML2Ev entBAction.java:49] at org.eclipse.ui.internal.PluginAction.runWithEvent[PluginActi on.java:251] 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$5.handleEven t[ActionContributionItem.java:411] at org.eclipse.swt.widgets.EventTable.sendEvent[EventTable.java :84] at org.eclipse.swt.widgets.Widget.sendEvent[Widget.java:1598] at org.eclipse.swt.widgets.Widget.sendEvent[Widget.java:1622] at org.eclipse.swt.widgets.Widget.sendEvent[Widget.java:1607] at org.eclipse.swt.widgets.Widget.notifyListeners[Widget.java:1 396] at org.eclipse.swt.widgets.Display.runDeferredEvents[Display.ja va:3484] at org.eclipse.swt.widgets.Display.readAndDispatch[Display.java :3068] 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[NativeMethodAcce ssorImpl.java:39] at sun.reflect.DelegatingMethodAccessorImpl.invoke[DelegatingMe thodAccessorImpl.java:25] at java.lang.reflect.Method.invoke[Method.java:592] 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] (/Volumes/Code/Galileo/CodeWorkspaces/INESS/ac.soton.eventb. importer/transformations/tbUML2EventB.etl@53:17) at org.eclipse.emf.common.util.BasicEList.assign(BasicEList.jav a:124) at org.eclipse.emf.common.util.BasicEList.addUnique(BasicEList. java:424) at org.eclipse.emf.common.notify.impl.NotifyingListImpl.doAddUn ique(NotifyingListImpl.java:331) at org.eclipse.emf.common.notify.impl.NotifyingListImpl.addUniq ue(NotifyingListImpl.java:288) at org.eclipse.emf.common.util.AbstractEList.add(AbstractEList. java:307) at org.eclipse.epsilon.emc.emf.EmfPropertySetter.copyCollection Values(EmfPropertySetter.java:80) at org.eclipse.epsilon.emc.emf.EmfPropertySetter.invoke(EmfProp ertySetter.java:63) at org.eclipse.epsilon.eol.execute.AssignExecutor.execute(Assig nExecutor.java:55) at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST(E xecutorFactory.java:178) at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te(StatementBlockExecutor.java:33) at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST(E xecutorFactory.java:178) at org.eclipse.epsilon.eol.EolOperation.executeBody(EolOperatio n.java:262) at org.eclipse.epsilon.eol.EolOperation.execute(EolOperation.ja va:235) at org.eclipse.epsilon.eol.EolOperation.execute(EolOperation.ja va:193) at org.eclipse.epsilon.eol.EolOperations.execute(EolOperations. java:144) at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati on(PointExecutor.java:161) at org.eclipse.epsilon.eol.execute.PointExecutor.execute(PointE xecutor.java:67) at org.eclipse.epsilon.eol.execute.PointExecutor.execute(PointE xecutor.java:37) at org.eclipse.epsilon.eol.execute.PointExecutor.execute(PointE xecutor.java:123) at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST(E xecutorFactory.java:178) at org.eclipse.epsilon.eol.execute.ParametersExecutor.execute(P arametersExecutor.java:29) at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST(E xecutorFactory.java:178) at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperati on(PointExecutor.java:155) at org.eclipse.epsilon.eol.execute.PointExecutor.execute(PointE xecutor.java:67) at org.eclipse.epsilon.eol.execute.PointExecutor.execute(PointE xecutor.java:37) at org.eclipse.epsilon.eol.execute.PointExecutor.execute(PointE xecutor.java:123) at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST(E xecutorFactory.java:178) at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execu te(StatementBlockExecutor.java:33) at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST(E xecutorFactory.java:178) at org.eclipse.epsilon.etl.TransformRule.executeSuperRulesAndBo dy(TransformRule.java:314) at org.eclipse.epsilon.etl.TransformRule.transform(TransformRul e.java:257) at org.eclipse.epsilon.etl.strategy.FastTransformationStrategy. executeTransformations(FastTransformationStrategy.java:172) at org.eclipse.epsilon.etl.strategy.FastTransformationStrategy. transformModels(FastTransformationStrategy.java:164) at org.eclipse.epsilon.etl.EtlModule.execute(EtlModule.java:187 ) at ac.soton.eventb.importer.translations.AbstractETLTranslation .execute(AbstractETLTranslation.java:99) at ac.soton.eventb.importer.translations.AbstractETLTranslation .execute(AbstractETLTranslation.java:85) at ac.soton.eventb.importer.actions.UML2EventBAction.run(UML2Ev entBAction.java:49) at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginActi on.java:251) 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$5.handleEven t(ActionContributionItem.java:411) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1598) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1622) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1607) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1 396) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja va:3484) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3068) 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(NativeMethodAcce ssorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:592) 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)
Thanks for reporting this. I'll have a look at it and provide a fix shortly.
Possibly related:- I also found a similar exception when adding a set of equivalents to a containment....e.g. machine.events.add(tbuml_model.signals.equivalent()); I did this instead which works... machine.events = tbuml_model.signals.equivalent(CORE!Event); machine.events.add(0,machine.initialisation(tbuml_model));
Fixed in the latest interim version.
Fixed in 1.1