View abstract syntax viewer gives exception popup
java.lang.IllegalStateException: Tree not initialized using RootAstNode.create()
at org.strategoxt.imp.runtime.parser.ast.AstNode.getRoot(AstNode.java:119)
at org.strategoxt.imp.runtime.parser.ast.AstNode.getParseController(AstNode.java:76)
at org.strategoxt.imp.runtime.parser.ast.AstNodeLocator.getStartOffset(AstNodeLocator.java:58)
at org.eclipse.imp.editor.internal.PresentationController.aggregateTextPresentation(PresentationController.java:171)
at org.eclipse.imp.editor.internal.PresentationController.changeTextPresentationForRegion(PresentationController.java:159)
at org.eclipse.imp.editor.internal.PresentationController.update(PresentationController.java:135)
at org.eclipse.imp.editor.ParserScheduler.notifyModelListeners(ParserScheduler.java:134)
at org.eclipse.imp.editor.ParserScheduler.run(ParserScheduler.java:87)
at org.eclipse.imp.editor.UniversalEditor.initiateServiceControllers(UniversalEditor.java:1021)
at org.eclipse.imp.editor.UniversalEditor.createPartControl(UniversalEditor.java:715)
at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:662)
at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:462)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
at org.eclipse.ui.internal.EditorAreaHelper.setVisibleEditor(EditorAreaHelper.java:271)
at org.eclipse.ui.internal.EditorManager.setVisibleEditor(EditorManager.java:1417)
at org.eclipse.ui.internal.EditorManager$5.runWithException(EditorManager.java:942)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3468)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3115)
at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803)
at org.eclipse.ui.internal.Workbench$28.runWithException(Workbench.java:1384)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3468)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3115)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2316)
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(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: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)Submitted on 12 March 2010 at 15:21
java.lang.IllegalStateException: Tree not initialized using RootAstNode.create()
at org.strategoxt.imp.runtime.parser.ast.AstNode.getRoot(AstNode.java:119)
at org.strategoxt.imp.runtime.parser.ast.AstNode.getParseController(AstNode.java:76)
at org.strategoxt.imp.runtime.parser.ast.AstNodeLocator.getStartOffset(AstNodeLocator.java:58)
at org.eclipse.imp.editor.internal.PresentationController.aggregateTextPresentation(PresentationController.java:171)
at org.eclipse.imp.editor.internal.PresentationController.changeTextPresentationForRegion(PresentationController.java:159)
at org.eclipse.imp.editor.internal.PresentationController.update(PresentationController.java:135)
at org.eclipse.imp.editor.UniversalEditor$PresentationRepairer.createPresentation(UniversalEditor.java:1822)
at org.eclipse.jface.text.presentation.PresentationReconciler.createPresentation(PresentationReconciler.java:453)
at org.eclipse.jface.text.presentation.PresentationReconciler.processDamage(PresentationReconciler.java:566)
at org.eclipse.jface.text.presentation.PresentationReconciler.access$3(PresentationReconciler.java:564)
at org.eclipse.jface.text.presentation.PresentationReconciler$InternalListener.textChanged(PresentationReconciler.java:225)
at org.eclipse.jface.text.TextViewer.updateTextListeners(TextViewer.java:2806)
at org.eclipse.jface.text.TextViewer.invalidateTextPresentation(TextViewer.java:3449)
at org.eclipse.jface.text.source.AnnotationPainter.invalidateTextPresentation(AnnotationPainter.java:961)
at org.eclipse.jface.text.source.AnnotationPainter.updatePainting(AnnotationPainter.java:943)
at org.eclipse.jface.text.source.AnnotationPainter.access$1(AnnotationPainter.java:937)
at org.eclipse.jface.text.source.AnnotationPainter$1.run(AnnotationPainter.java:1076)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3468)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3115)
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(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: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)
Issue Log
I added a workaround to 0.4.1 so at least it won’t show a popup for this exception.
This seems to be caused by using an ast(…) in stead of a cons(…) in the production rule.
Hm, that would make sense. Those are handled very differently from cons(…) annotations, especially when dealing with lists. I’ll have a look at the imploder class that handles them later.
Should be fixed in 0.4.something.
Log in to post comments