Skip to main content



      Home
Home » Modeling » EMF » Reading ecore causes stack overflow(While creating a new Genmodel a StackOverflow exception is thrown)
Reading ecore causes stack overflow [message #505657] Mon, 04 January 2010 04:12 Go to next message
Eclipse UserFriend
Hi,

I have managed to break EMF, not the best of ways to start the new year ;-(

I have a set of ecore models that all of a sudden started to throw StackOverflowError exceptions when I ran the generator. I figured that the genmodel had become corrupted so I tried to generate a new one. I found out that that also throws a StackOverflowError when reading in the ecore.

While there are five ecore files, I have narrowed it down to a set of two that cause the problem, org.eclipse.ormf.model.base.ecore and org.eclipse.ormf.model.project.ecore; project depends on base.

I very much appreciate ideas on where to start in debugging this.

While these files can be checked out of the ORMF SVN repository, I have tried to make life simple making a zip of these available here ormf.design.model.zip.

Many thanks in advance,
Joel

The exception, note the I have truncated the message to trim the isBounded calls that repeat ad infinitum.

java.lang.reflect.InvocationTargetException
	at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:479)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
	at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:946)
	at org.eclipse.emf.importer.ui.contribution.base.ModelImporterDetailPage.refreshModel(ModelImporterDetailPage.java:374)
	at org.eclipse.emf.importer.ui.contribution.base.ModelImporterDetailPage.doHandleEvent(ModelImporterDetailPage.java:169)
	at org.eclipse.emf.converter.ui.contribution.base.ModelConverterPage.handleEvent(ModelConverterPage.java:145)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3697)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1314)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1337)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1322)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1136)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3557)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3215)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
	at org.eclipse.jface.window.Window.open(Window.java:801)
	at org.eclipse.ui.internal.handlers.WizardHandler$New.executeHandler(WizardHandler.java:253)
	at org.eclipse.ui.internal.handlers.WizardHandler.execute(WizardHandler.java:273)
	at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)
	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
	at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
	at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)
	at org.eclipse.ui.internal.actions.CommandAction.runWithEvent(CommandAction.java:157)
	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$5.handleEvent(ActionContributionItem.java:411)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3697)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1314)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1337)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1322)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1136)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3557)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3215)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2407)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2371)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2220)
	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:367)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:611)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:566)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1363)
Caused by: java.lang.StackOverflowError
	at org.eclipse.emf.ecore.util.EcoreValidator.isBounded(EcoreValidator.java:3392)
	at org.eclipse.emf.ecore.util.EcoreValidator.isBounded(EcoreValidator.java:3417)
	at org.eclipse.emf.ecore.util.EcoreValidator.isBounded(EcoreValidator.java:3392)
	at org.eclipse.emf.ecore.util.EcoreValidator.isBounded(EcoreValidator.java:3417)
	at org.eclipse.emf.ecore.util.EcoreValidator.isBounded(EcoreValidator.java:3392)
	at org.eclipse.emf.ecore.util.EcoreValidator.isBounded(EcoreValidator.java:3417)
	at org.eclipse.emf.ecore.util.EcoreValidator.isBounded(EcoreValidator.java:3392)
Re: Reading ecore causes stack overflow [message #505671 is a reply to message #505657] Mon, 04 January 2010 02:02 Go to previous messageGo to next message
Eclipse UserFriend
Joel,

I can reproduce the problem from the zip file you provided. Please open
a bugzilla with this information. I'll try to dig in deeper later today.


Joel Rosi-Schwartz wrote:
> Hi,
>
> I have managed to break EMF, not the best of ways to start the new
> year ;-(
>
> I have a set of ecore models that all of a sudden started to throw
> StackOverflowError exceptions when I ran the generator. I figured that
> the genmodel had become corrupted so I tried to generate a new one. I
> found out that that also throws a StackOverflowError when reading in
> the ecore.
>
> While there are five ecore files, I have narrowed it down to a set of
> two that cause the problem, org.eclipse.ormf.model.base.ecore and
> org.eclipse.ormf.model.project.ecore; project depends on base.
>
> I very much appreciate ideas on where to start in debugging this.
>
> While these files can be checked out of the ORMF SVN repository, I
> have tried to make life simple making a zip of these available here
> files.me.com/i.am.joel/x6uygb.
> Many thanks in advance,
> Joel
>
> The exception, note the I have truncated the message to trim the
> isBounded calls that repeat ad infinitum.
>
> java.lang.reflect.InvocationTargetException
> at
> org.eclipse.jface.operation.ModalContext.runInCurrentThread( ModalContext.java:479)
>
> at
> org.eclipse.jface.operation.ModalContext.run(ModalContext.ja va:372)
> at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java: 946)
> at
> org.eclipse.emf.importer.ui.contribution.base.ModelImporterD etailPage.refreshModel(ModelImporterDetailPage.java:374)
>
> at
> org.eclipse.emf.importer.ui.contribution.base.ModelImporterD etailPage.doHandleEvent(ModelImporterDetailPage.java:169)
>
> at
> org.eclipse.emf.converter.ui.contribution.base.ModelConverte rPage.handleEvent(ModelConverterPage.java:145)
>
> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
> at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3697)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1314)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1337)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1322)
> at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1 136)
> at
> org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja va:3557)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3215)
> at org.eclipse.jface.window.Window.runEventLoop(Window.java:825 )
> at org.eclipse.jface.window.Window.open(Window.java:801)
> at
> org.eclipse.ui.internal.handlers.WizardHandler$New.executeHa ndler(WizardHandler.java:253)
>
> at
> org.eclipse.ui.internal.handlers.WizardHandler.execute(Wizar dHandler.java:273)
>
> at
> org.eclipse.ui.internal.handlers.HandlerProxy.execute(Handle rProxy.java:293)
>
> at
> org.eclipse.core.commands.Command.executeWithChecks(Command. java:476)
> at
> org.eclipse.core.commands.ParameterizedCommand.executeWithCh ecks(ParameterizedCommand.java:508)
>
> at
> org.eclipse.ui.internal.handlers.HandlerService.executeComma nd(HandlerService.java:169)
>
> at
> org.eclipse.ui.internal.handlers.SlaveHandlerService.execute Command(SlaveHandlerService.java:241)
>
> at
> org.eclipse.ui.internal.actions.CommandAction.runWithEvent(C ommandAction.java:157)
>
> 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.Display.sendEvent(Display.java:3697)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1314)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1337)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1322)
> at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1 136)
> at
> org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja va:3557)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3215)
> at
> org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2407)
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2371)
> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:22 20)
> 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:367)
>
> 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:597)
> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 611)
> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:566)
> at org.eclipse.equinox.launcher.Main.run(Main.java:1363)
> Caused by: java.lang.StackOverflowError
> at
> org.eclipse.emf.ecore.util.EcoreValidator.isBounded(EcoreVal idator.java:3392)
>
> at
> org.eclipse.emf.ecore.util.EcoreValidator.isBounded(EcoreVal idator.java:3417)
>
> at
> org.eclipse.emf.ecore.util.EcoreValidator.isBounded(EcoreVal idator.java:3392)
>
> at
> org.eclipse.emf.ecore.util.EcoreValidator.isBounded(EcoreVal idator.java:3417)
>
> at
> org.eclipse.emf.ecore.util.EcoreValidator.isBounded(EcoreVal idator.java:3392)
>
> at
> org.eclipse.emf.ecore.util.EcoreValidator.isBounded(EcoreVal idator.java:3417)
>
> at
> org.eclipse.emf.ecore.util.EcoreValidator.isBounded(EcoreVal idator.java:3392)
>
>
Re: Reading ecore causes stack overflow [message #505735 is a reply to message #505671] Mon, 04 January 2010 12:40 Go to previous message
Eclipse UserFriend
I have opened Bug 298783 - Reading ecore causes stack overflow as requested. The zip is also attached to it.

Ed, many thanks for the assistance.

Cheers,
Joel

Ed Merks wrote on Mon, 04 January 2010 07:02
Joel,

I can reproduce the problem from the zip file you provided. Please open
a bugzilla with this information. I'll try to dig in deeper later today.



Previous Topic:Persistence of Multiplicity-Many Reference
Next Topic:how to install teneo
Goto Forum:
  


Current Time: Sat Jul 12 11:50:05 EDT 2025

Powered by FUDForum. Page generated in 0.03338 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top