Initializing the Grpahical Viewer leads to an exception [message #159790] |
Tue, 30 November 2004 11:29  |
Eclipse User |
|
|
|
Originally posted by: rgitzel.wifo3.uni-mannheim.de
Hi,
My GEF editor class has the following method which is similar to the one
found in the example programs:
protected void initializeGraphicalViewer()
{
initToolBar();
model = project.getModels()[0];
try
{
getGraphicalViewer().setContents(model);
} catch (Exception e)
{
System.out.println("Caught exception");
e.printStackTrace();
}
}
Surprisingly enough, I get the following output:
Caught exception
java.lang.IndexOutOfBoundsException: Figure.add(...) invalid index
at org.eclipse.draw2d.Figure.add(Figure.java:110)
at org.eclipse.draw2d.Figure.add(Figure.java:157)
at
org.eclipse.gef.editparts.AbstractGraphicalEditPart.addChild Visual(AbstractGraphicalEditPart.java:198)
at
org.eclipse.gef.editparts.AbstractEditPart.addChild(Abstract EditPart.java:195)
at
org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(A bstractEditPart.java:750)
at
org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractE ditPart.java:700)
at
org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh( AbstractGraphicalEditPart.java:554)
at
org.eclipse.gef.editparts.AbstractEditPart.addNotify(Abstrac tEditPart.java:233)
at
org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotif y(AbstractGraphicalEditPart.java:212)
at
org.eclipse.gef.editparts.AbstractEditPart.addChild(Abstract EditPart.java:196)
at
org.eclipse.gef.editparts.ScalableRootEditPart.setContents(S calableRootEditPart.java:379)
at
org.eclipse.gef.ui.parts.AbstractEditPartViewer.setContents( AbstractEditPartViewer.java:581)
at
org.eclipse.gef.ui.parts.AbstractEditPartViewer.setContents( AbstractEditPartViewer.java:590)
at
omega.test.plugin.editors.OMEGAGraphicalEditor.initializeGra phicalViewer(OMEGAGraphicalEditor.java:67)
at
org.eclipse.gef.ui.parts.GraphicalEditor.createGraphicalView er(GraphicalEditor.java:138)
at
org.eclipse.gef.ui.parts.GraphicalEditor.createPartControl(G raphicalEditor.java:148)
at org.eclipse.ui.internal.PartPane$2.run(PartPane.java:137)
at
org.eclipse.core.internal.runtime.InternalPlatform.run(Inter nalPlatform.java:616)
at org.eclipse.core.runtime.Platform.run(Platform.java:747)
at org.eclipse.ui.internal.PartPane.createChildControl(PartPane .java:133)
at org.eclipse.ui.internal.PartPane.createControl(PartPane.java :205)
at
org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.java:939)
at org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:921)
at org.eclipse.ui.internal.EditorStack.setSelection(EditorStack .java:196)
at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:10 20)
at org.eclipse.ui.internal.PartStack.add(PartStack.java:290)
at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:121 )
at
org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.java:59)
at
org.eclipse.ui.internal.EditorAreaHelper.openEditor(EditorAr eaHelper.java:266)
at org.eclipse.ui.internal.EditorManager$4.run(EditorManager.ja va:694)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:69)
at
org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:683)
at
org.eclipse.ui.internal.EditorManager.openInternalEditor(Edi torManager.java:779)
at
org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:582)
at org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:570)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2244)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2177)
at org.eclipse.ui.internal.WorkbenchPage.access$6(WorkbenchPage .java:2169)
at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2156)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:69)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2151)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:299)
at org.eclipse.ui.actions.OpenFileAction.openFile(OpenFileActio n.java:96)
at
org.eclipse.ui.actions.OpenSystemEditorAction.run(OpenSystem EditorAction.java:94)
at
org.eclipse.ui.views.navigator.OpenActionGroup.runDefaultAct ion(OpenActionGroup.java:111)
at
org.eclipse.ui.views.navigator.MainActionGroup.runDefaultAct ion(MainActionGroup.java:293)
at
org.eclipse.ui.views.navigator.ResourceNavigator.handleOpen( ResourceNavigator.java:624)
at
org.eclipse.ui.views.navigator.ResourceNavigator$6.open(Reso urceNavigator.java:388)
at
org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredV iewer.java:429)
at
org.eclipse.core.internal.runtime.InternalPlatform.run(Inter nalPlatform.java:616)
at org.eclipse.core.runtime.Platform.run(Platform.java:747)
at
org.eclipse.jface.viewers.StructuredViewer.fireOpen(Structur edViewer.java:427)
at
org.eclipse.jface.viewers.StructuredViewer.handleOpen(Struct uredViewer.java:635)
at
org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(Stru cturedViewer.java:731)
at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrate gy.java:211)
at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.ja va:206)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrate gy.java:238)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :82)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja va:2772)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :2431)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:1377)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:254)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:141)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplicatio n.java:96)
at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:335)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:273)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:129)
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.core.launcher.Main.basicRun(Main.java:185)
at org.eclipse.core.launcher.Main.run(Main.java:704)
at org.eclipse.core.launcher.Main.main(Main.java:688)
When I do not catch the exception (which seem to occur only
*sometimes*(?)), the editor is not created, producing an entry in the
log. However, when I catch the exception, everything seems to work fine.
Yet, removing the offending command leads to an empty editor (as
expected). I have no idea what this is all about and any pointers would
be greatly appreciated.
Thanks,
Ralf
|
|
|
|
Re: Initializing the Grpahical Viewer leads to an exception [message #159938 is a reply to message #159928] |
Wed, 01 December 2004 02:28  |
Eclipse User |
|
|
|
Originally posted by: rgitzel.wifo3.uni-mannheim.de
Pratik Shah wrote:
> What does the getModelChildren() method of your EditPart (the one that's
> experiencing the NPE) look like? You should be able to figure out the
> problem if you step through the AbstractEditPart#refreshChildren() method.
protected List getModelChildren()
{
IProjectElement temp = (IProjectElement) getModel();
List ret = new ArrayList();
IProjectSubElement[] elem = temp.getSubElements();
if (elem == null) return ret; // just in case...
for (int i=0; i < elem.length; i++)
{
ret.add(elem[i]);
}
return ret;
}
Some intensive debugging gave me the impression that there might be a
connection to the Edges in my graph. Seems like the
sourceConnections/targetCOnnections collections are null in
AbstractGraphicalEditPart but the addNotify() (?) method seems to assume
something else.
> "Ralf Gitzel" <rgitzel@wifo3.uni-mannheim.de> wrote in message
> news:coi739$eh$1@www.eclipse.org...
>
>>Hi,
>>
>>My GEF editor class has the following method which is similar to the one
>>found in the example programs:
>>
>> protected void initializeGraphicalViewer()
>> {
>> initToolBar();
>> model = project.getModels()[0];
>> try
>> {
>> getGraphicalViewer().setContents(model);
>> } catch (Exception e)
>> {
>> System.out.println("Caught exception");
>> e.printStackTrace();
>> }
>> }
>>
>>Surprisingly enough, I get the following output:
>>
>>Caught exception
>>java.lang.IndexOutOfBoundsException: Figure.add(...) invalid index
>>at org.eclipse.draw2d.Figure.add(Figure.java:110)
>>at org.eclipse.draw2d.Figure.add(Figure.java:157)
>>at
>>
>
> org.eclipse.gef.editparts.AbstractGraphicalEditPart.addChild Visual(AbstractG
> raphicalEditPart.java:198)
>
>>at
>>
>
> org.eclipse.gef.editparts.AbstractEditPart.addChild(Abstract EditPart.java:19
> 5)
>
>>at
>>
>
> org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(A bstractEditPart.
> java:750)
>
>>at
>>
>
> org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractE ditPart.java:700
> )
>
>>at
>>
>
> org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh( AbstractGraphica
> lEditPart.java:554)
>
>>at
>>
>
> org.eclipse.gef.editparts.AbstractEditPart.addNotify(Abstrac tEditPart.java:2
> 33)
>
>>at
>>
>
> org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotif y(AbstractGraphi
> calEditPart.java:212)
>
>>at
>>
>
> org.eclipse.gef.editparts.AbstractEditPart.addChild(Abstract EditPart.java:19
> 6)
>
>>at
>>
>
> org.eclipse.gef.editparts.ScalableRootEditPart.setContents(S calableRootEditP
> art.java:379)
>
>>at
>>
>
> org.eclipse.gef.ui.parts.AbstractEditPartViewer.setContents( AbstractEditPart
> Viewer.java:581)
>
>>at
>>
>
> org.eclipse.gef.ui.parts.AbstractEditPartViewer.setContents( AbstractEditPart
> Viewer.java:590)
>
>>at
>>
>
> omega.test.plugin.editors.OMEGAGraphicalEditor.initializeGra phicalViewer(OME
> GAGraphicalEditor.java:67)
>
>>at
>>
>
> org.eclipse.gef.ui.parts.GraphicalEditor.createGraphicalView er(GraphicalEdit
> or.java:138)
>
>>at
>>
>
> org.eclipse.gef.ui.parts.GraphicalEditor.createPartControl(G raphicalEditor.j
> ava:148)
>
>>at org.eclipse.ui.internal.PartPane$2.run(PartPane.java:137)
>>at
>>
>
> org.eclipse.core.internal.runtime.InternalPlatform.run(Inter nalPlatform.java
> :616)
>
>>at org.eclipse.core.runtime.Platform.run(Platform.java:747)
>>at org.eclipse.ui.internal.PartPane.createChildControl(PartPane .java:133)
>>at org.eclipse.ui.internal.PartPane.createControl(PartPane.java :205)
>>at
>>
>
> org.eclipse.ui.internal.PartStack.refreshPresentationSelecti on(PartStack.jav
> a:939)
>
>>at org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:921)
>>at org.eclipse.ui.internal.EditorStack.setSelection(EditorStack .java:196)
>>at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:10 20)
>>at org.eclipse.ui.internal.PartStack.add(PartStack.java:290)
>>at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:121 )
>>at
>>
>
> org.eclipse.ui.internal.EditorSashContainer.addEditor(Editor SashContainer.ja
> va:59)
>
>>at
>>
>
> org.eclipse.ui.internal.EditorAreaHelper.openEditor(EditorAr eaHelper.java:26
> 6)
>
>>at org.eclipse.ui.internal.EditorManager$4.run(EditorManager.ja va:694)
>>at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:69)
>>at
>>
>
> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:683
> )
>
>>at
>>
>
> org.eclipse.ui.internal.EditorManager.openInternalEditor(Edi torManager.java:
> 779)
>
>>at
>>
>
> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager
> .java:582)
>
>>at
>
> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:570)
>
>>at
>>
>
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.ja
> va:2244)
>
>>at
>>
>
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2177
> )
>
>>at org.eclipse.ui.internal.WorkbenchPage.access$6(WorkbenchPage .java:2169)
>>at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2156)
>>at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:69)
>>at
>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2151)
>>at org.eclipse.ui.ide.IDE.openEditor(IDE.java:299)
>>at org.eclipse.ui.actions.OpenFileAction.openFile(OpenFileActio n.java:96)
>>at
>>
>
> org.eclipse.ui.actions.OpenSystemEditorAction.run(OpenSystem EditorAction.jav
> a:94)
>
>>at
>>
>
> org.eclipse.ui.views.navigator.OpenActionGroup.runDefaultAct ion(OpenActionGr
> oup.java:111)
>
>>at
>>
>
> org.eclipse.ui.views.navigator.MainActionGroup.runDefaultAct ion(MainActionGr
> oup.java:293)
>
>>at
>>
>
> org.eclipse.ui.views.navigator.ResourceNavigator.handleOpen( ResourceNavigato
> r.java:624)
>
>>at
>>
>
> org.eclipse.ui.views.navigator.ResourceNavigator$6.open(Reso urceNavigator.ja
> va:388)
>
>>at
>>
>
> org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredV iewer.java:429)
>
>>at
>>
>
> org.eclipse.core.internal.runtime.InternalPlatform.run(Inter nalPlatform.java
> :616)
>
>>at org.eclipse.core.runtime.Platform.run(Platform.java:747)
>>at
>>
>
> org.eclipse.jface.viewers.StructuredViewer.fireOpen(Structur edViewer.java:42
> 7)
>
>>at
>>
>
> org.eclipse.jface.viewers.StructuredViewer.handleOpen(Struct uredViewer.java:
> 635)
>
>>at
>>
>
> org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(Stru cturedViewer.jav
> a:731)
>
>>at
>
> org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrate gy.java:211)
>
>>at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.ja va:206)
>>at
>
> org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrate gy.java:238)
>
>>at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :82)
>>at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
>>at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja va:2772)
>>at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :2431)
>>at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:1377)
>>at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
>>at
>>
>
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:254)
>
>>at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:141)
>>at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplicatio n.java:96)
>>at
>>
>
> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.
> java:335)
>
>>at
>>
>
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:273)
>
>>at
>>
>
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:129)
>
>>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.core.launcher.Main.basicRun(Main.java:185)
>>at org.eclipse.core.launcher.Main.run(Main.java:704)
>>at org.eclipse.core.launcher.Main.main(Main.java:688)
>>
>>
>>When I do not catch the exception (which seem to occur only
>>*sometimes*(?)), the editor is not created, producing an entry in the
>>log. However, when I catch the exception, everything seems to work fine.
>>Yet, removing the offending command leads to an empty editor (as
>>expected). I have no idea what this is all about and any pointers would
>>be greatly appreciated.
>>
>>Thanks,
>> Ralf
>
>
>
|
|
|
Powered by
FUDForum. Page generated in 0.03398 seconds