Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » TMF (Xtext) » How to create an additional outline node with xtext?
How to create an additional outline node with xtext? [message #654177] Mon, 14 February 2011 13:52 Go to next message
Eckle  is currently offline Eckle Friend
Messages: 41
Registered: September 2009
Member
Since xtext 1.00, outline-view isn't working any more, because i add virtual nodes to the outline that are not part of the real model.

The Error Log shows a Unhandled event loop exception (see stacktrace below).

So how do i add virtual nodes to the outline correctly?

org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.StringIndexOutOfBoundsException: String index out of range: -1)
	at org.eclipse.swt.SWT.error(SWT.java:4083)
	at org.eclipse.swt.SWT.error(SWT.java:3998)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	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:369)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
	at java.lang.String.charAt(Unknown Source)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eObjectForURIFragmentSegment(BasicEObjectImpl.java:514)
	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.getEObject(ResourceImpl.java:782)
	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.getEObject(ResourceImpl.java:758)
	at org.eclipse.xtext.resource.XtextResource.access$1(XtextResource.java:1)
	at org.eclipse.xtext.resource.XtextResource$1.getEObject(XtextResource.java:92)
	at org.eclipse.xtext.resource.DefaultFragmentProvider.getEObject(DefaultFragmentProvider.java:26)
	at org.eclipse.xtext.resource.XtextResource.getEObject(XtextResource.java:260)
	at org.eclipse.xtext.linking.lazy.LazyLinkingResource.getEObject(LazyLinkingResource.java:123)
	at org.eclipse.xtext.resource.EObjectHandleImpl$ResourceAccess.exec(EObjectHandleImpl.java:55)
	at org.eclipse.xtext.resource.EObjectHandleImpl$ResourceAccess.exec(EObjectHandleImpl.java:1)
	at org.eclipse.xtext.util.concurrent.IStateAccess$AbstractImpl.readOnly(IStateAccess.java:40)
	at org.eclipse.xtext.ui.editor.model.XtextDocument.readOnly(XtextDocument.java:70)
	at org.eclipse.xtext.resource.EObjectHandleImpl.readOnly(EObjectHandleImpl.java:39)
	at org.eclipse.xtext.ui.editor.outline.ContentOutlineNode.processHandleForChildren(ContentOutlineNode.java:126)
	at org.eclipse.xtext.ui.editor.outline.ContentOutlineNode.computeChildren(ContentOutlineNode.java:121)
	at org.eclipse.xtext.ui.editor.outline.ContentOutlineNode.getChildren(ContentOutlineNode.java:104)
	at org.eclipse.xtext.ui.editor.outline.ContentOutlineNode.getChildrenAsArray(ContentOutlineNode.java:136)
	at org.eclipse.xtext.ui.editor.outline.ContentOutlineNode.hasChildren(ContentOutlineNode.java:147)
	at org.eclipse.xtext.ui.editor.outline.transformer.TransformingTreeProvider.hasChildren(TransformingTreeProvider.java:84)
	at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(AbstractTreeViewer.java:2086)
	at org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer.java:588)
	at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(AbstractTreeViewer.java:2112)
	at org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(AbstractTreeViewer.java:2794)
	at org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.java:852)
	at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:830)
	at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:804)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:778)
	at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:644)
	at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpandToLevel(AbstractTreeViewer.java:1714)
	at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpandToLevel(AbstractTreeViewer.java:1724)
	at org.eclipse.jface.viewers.AbstractTreeViewer.internalInitializeTree(AbstractTreeViewer.java:1493)
	at org.eclipse.jface.viewers.TreeViewer.internalInitializeTree(TreeViewer.java:833)
	at org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractTreeViewer.java:1476)
	at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1422)
	at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:403)
	at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1383)
	at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:1469)
	at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:274)
	at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1664)
	at org.eclipse.xtext.ui.editor.outline.XtextContentOutlinePage.internalSetInput(XtextContentOutlinePage.java:269)
	at org.eclipse.xtext.ui.editor.outline.XtextContentOutlinePage.access$2(XtextContentOutlinePage.java:263)
	at org.eclipse.xtext.ui.editor.outline.XtextContentOutlinePage$3.run(XtextContentOutlinePage.java:432)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
	... 23 more
Re: How to create an additional outline node with xtext? [message #654341 is a reply to message #654177] Tue, 15 February 2011 09:39 Go to previous message
Jan Koehnlein is currently offline Jan KoehnleinFriend
Messages: 760
Registered: July 2009
Location: Hamburg
Senior Member
Could either be a regression or you're referring to stale model. The
latter could happen if you build your outline with references to the
EObjects of your model from outside a document transaction
(IXtextDocument.readOnly() / .modify()). The Xtext 1.0 API makes this
very easy that's one reason why we fully redesigned it in Xtext 2.0.

Could you file a bug with
- the version number you're using now
- a reproducible example?

Am 14.02.11 14:52, schrieb Eckle:
> Since xtext 1.00, outline-view isn't working any more, because i add
> virtual nodes to the outline that are not part of the real model.
>
> The Error Log shows a Unhandled event loop exception (see stacktrace
> below).
>
> So how do i add virtual nodes to the outline correctly?
>
> org.eclipse.swt.SWTException: Failed to execute runnable
> (java.lang.StringIndexOutOfBoundsException: String index out of range: -1)
> at org.eclipse.swt.SWT.error(SWT.java:4083)
> at org.eclipse.swt.SWT.error(SWT.java:3998)
> at
> org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr onizer.java:137)
>
> at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:4041)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3660)
> at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2640)
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:24 38)
> at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
> at
> org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:332)
>
> at
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:664)
> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
> at
> org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:115)
>
> at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.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(EclipseS tarter.java:369)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 619)
> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
> at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
> at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
> Caused by: java.lang.StringIndexOutOfBoundsException: String index out
> of range: -1
> at java.lang.String.charAt(Unknown Source)
> at
> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eObjectForURIFra gmentSegment(BasicEObjectImpl.java:514)
>
> at
> org.eclipse.emf.ecore.resource.impl.ResourceImpl.getEObject( ResourceImpl.java:782)
>
> at
> org.eclipse.emf.ecore.resource.impl.ResourceImpl.getEObject( ResourceImpl.java:758)
>
> at org.eclipse.xtext.resource.XtextResource.access$1(XtextResou rce.java:1)
> at
> org.eclipse.xtext.resource.XtextResource$1.getEObject(XtextR esource.java:92)
>
> at
> org.eclipse.xtext.resource.DefaultFragmentProvider.getEObjec t(DefaultFragmentProvider.java:26)
>
> at
> org.eclipse.xtext.resource.XtextResource.getEObject(XtextRes ource.java:260)
> at
> org.eclipse.xtext.linking.lazy.LazyLinkingResource.getEObjec t(LazyLinkingResource.java:123)
>
> at
> org.eclipse.xtext.resource.EObjectHandleImpl$ResourceAccess. exec(EObjectHandleImpl.java:55)
>
> at
> org.eclipse.xtext.resource.EObjectHandleImpl$ResourceAccess. exec(EObjectHandleImpl.java:1)
>
> at
> org.eclipse.xtext.util.concurrent.IStateAccess$AbstractImpl. readOnly(IStateAccess.java:40)
>
> at
> org.eclipse.xtext.ui.editor.model.XtextDocument.readOnly(Xte xtDocument.java:70)
>
> at
> org.eclipse.xtext.resource.EObjectHandleImpl.readOnly(EObjec tHandleImpl.java:39)
>
> at
> org.eclipse.xtext.ui.editor.outline.ContentOutlineNode.proce ssHandleForChildren(ContentOutlineNode.java:126)
>
> at
> org.eclipse.xtext.ui.editor.outline.ContentOutlineNode.compu teChildren(ContentOutlineNode.java:121)
>
> at
> org.eclipse.xtext.ui.editor.outline.ContentOutlineNode.getCh ildren(ContentOutlineNode.java:104)
>
> at
> org.eclipse.xtext.ui.editor.outline.ContentOutlineNode.getCh ildrenAsArray(ContentOutlineNode.java:136)
>
> at
> org.eclipse.xtext.ui.editor.outline.ContentOutlineNode.hasCh ildren(ContentOutlineNode.java:147)
>
> at
> org.eclipse.xtext.ui.editor.outline.transformer.Transforming TreeProvider.hasChildren(TransformingTreeProvider.java:84)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2086)
>
> at org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer .java:588)
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(Ab stractTreeViewer.java:2112)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(Abst ractTreeViewer.java:2794)
>
> at org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.j ava:852)
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem( AbstractTreeViewer.java:830)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractT reeViewer.java:804)
>
> at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.createChildren( AbstractTreeViewer.java:778)
>
> at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeView er.java:644)
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.internalExpandT oLevel(AbstractTreeViewer.java:1714)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.internalExpandT oLevel(AbstractTreeViewer.java:1724)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.internalInitial izeTree(AbstractTreeViewer.java:1493)
>
> at
> org.eclipse.jface.viewers.TreeViewer.internalInitializeTree( TreeViewer.java:833)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractT reeViewer.java:1476)
>
> at
> org.eclipse.jface.viewers.StructuredViewer.preservingSelecti on(StructuredViewer.java:1422)
>
> at
> org.eclipse.jface.viewers.TreeViewer.preservingSelection(Tre eViewer.java:403)
>
> at
> org.eclipse.jface.viewers.StructuredViewer.preservingSelecti on(StructuredViewer.java:1383)
>
> at
> org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(Ab stractTreeViewer.java:1469)
>
> at org.eclipse.jface.viewers.ContentViewer.setInput(ContentView er.java:274)
> at
> org.eclipse.jface.viewers.StructuredViewer.setInput(Structur edViewer.java:1664)
>
> at
> org.eclipse.xtext.ui.editor.outline.XtextContentOutlinePage. internalSetInput(XtextContentOutlinePage.java:269)
>
> at
> org.eclipse.xtext.ui.editor.outline.XtextContentOutlinePage. access$2(XtextContentOutlinePage.java:263)
>
> at
> org.eclipse.xtext.ui.editor.outline.XtextContentOutlinePage$ 3.run(XtextContentOutlinePage.java:432)
>
> at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
> at
> org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr onizer.java:134)
>
> ... 23 more
>


--
Need professional support for Eclipse Modeling?
Go visit: http://xtext.itemis.com


---
Get professional support from the Xtext committers at www.typefox.io
Previous Topic:Interface IExportedEObjectsProvider is missing in the IDE
Next Topic:xtext + maven
Goto Forum:
  


Current Time: Fri Apr 26 12:40:03 GMT 2024

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

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

Back to the top