Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    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 09:12 Go to next message
Joel Rosi-Schwartz is currently offline Joel Rosi-SchwartzFriend
Messages: 624
Registered: July 2009
Location: London. England
Senior Member
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 07:02 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 30634
Registered: July 2009
Senior Member
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 17:40 Go to previous message
Joel Rosi-Schwartz is currently offline Joel Rosi-SchwartzFriend
Messages: 624
Registered: July 2009
Location: London. England
Senior Member
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: Fri Nov 15 10:47:27 GMT 2019

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

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

Back to the top