[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[news.eclipse.tools.ve] Another NPE and VE won't display my composite after some simple source editing.

Discovered a case of a simple source edit which will choke VE and prevent it 
from displaying the visuals for my composite.

I have a couple cases where I have a label associated with a scale control. 
Scales aren't too informative by themselves, so I set up an event handler so 
that a label can show the scale's value when it changes.  However, I want 
the label above the scale so it needs to be defined first.

Initially I use VE to define everything and get the following source code 
where m_probDirs is the Scale and m_probDirsDisplay is the label:

        m_probDirsDisplay = new CLabel(composite, SWT.NONE);
        m_probDirsDisplay.setText("some text");
        m_probDirs = new Scale(composite, SWT.NONE);
        m_probDirs.setSelection(0);
        m_probDirs.addSelectionListener(new 
org.eclipse.swt.events.SelectionAdapter() {
            public void widgetSelected(org.eclipse.swt.events.SelectionEvent 
e) {
                m_probDirsDisplay.setText("probability of dirs (vs. jars): " 
+
                        m_probDirs.getSelection() + "%");
            }
        });

I want the label value to be correct without having to wait until the scale 
is manipulated.  So, I move the inital setText call after the code to create 
the Scale:

        m_probDirsDisplay = new CLabel(composite, SWT.NONE);
        m_probDirs = new Scale(composite, SWT.NONE);
        m_probDirs.setSelection(0);
        m_probDirs.addSelectionListener(new 
org.eclipse.swt.events.SelectionAdapter() {
            public void widgetSelected(org.eclipse.swt.events.SelectionEvent 
e) {
                m_probDirsDisplay.setText("probability of dirs (vs. jars): " 
+
                        m_probDirs.getSelection() + "%");
            }
        });
      m_probDirsDisplay.setText("probability of dirs (vs. jars): " +
              m_probDirs.getSelection() + "%    ");

This has the added benefit of making the visual editor area display a real 
value and size things better.  The change works until I close and re-open 
the visual editor on that class.  (Might need to clean project to force a 
re-parse.)  Then I get the following message box:

    Error trying to set new file into editor:
    NPE (with no stack trace)

and some stack traces in the log (which follow later).

This seems an awfully simple change, and I would expect VE to handle it.

I can understand that visual editing might need to be an all-or-nothing 
deal.  But, it would be nice if there were a way to get a clue as to what 
was bothering VE.  I made a lucky guess and determined what the problem was. 
Otherwise, here was a class I'd spent a few hours time one, primarily using 
VE.  I'd even made quite a few changes since that fatal source edit, without 
VE complaining.  I would be upsetting for VE to all-of-a-sudden tell you it 
couldn't handle something which it had just been editing!



.log file contents:


!ENTRY org.eclipse.ve.java.core 4 0 2005-07-29 17:58:29.295
!MESSAGE Exception thrown.
!STACK 0
java.lang.NullPointerException
 at 
org.eclipse.ve.internal.swt.CompositeGraphicalEditPart.setupControl(CompositeGraphicalEditPart.java:96)
 at 
org.eclipse.ve.internal.swt.CompositeGraphicalEditPart.createChild(CompositeGraphicalEditPart.java:84)
 at 
org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(AbstractEditPart.java:733)
 at 
org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:684)
 at 
org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:554)
 at 
org.eclipse.gef.editparts.AbstractEditPart.addNotify(AbstractEditPart.java:232)
 at 
org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotify(AbstractGraphicalEditPart.java:212)
 at 
org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:195)
 at 
org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(AbstractEditPart.java:734)
 at 
org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:684)
 at 
org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:554)
 at 
org.eclipse.gef.editparts.AbstractEditPart.addNotify(AbstractEditPart.java:232)
 at 
org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotify(AbstractGraphicalEditPart.java:212)
 at 
org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:195)
 at 
org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(AbstractEditPart.java:734)
 at 
org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:684)
 at 
org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:554)
 at 
org.eclipse.gef.editparts.AbstractEditPart.addNotify(AbstractEditPart.java:232)
 at 
org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotify(AbstractGraphicalEditPart.java:212)
 at 
org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:195)
 at 
org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(AbstractEditPart.java:734)
 at 
org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:684)
 at 
org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:554)
 at 
org.eclipse.ve.internal.java.codegen.editorpart.JavaVisualEditorPart.setRootModel(JavaVisualEditorPart.java:506)
 at 
org.eclipse.ve.internal.java.codegen.editorpart.JavaVisualEditorPart.initializeViewers(JavaVisualEditorPart.java:987)
 at 
org.eclipse.ve.internal.java.codegen.editorpart.JavaVisualEditorPart$12.run(JavaVisualEditorPart.java:1977)
 at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
 at 
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
 at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3057)
 at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2716)
 at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1699)
 at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663)
 at 
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367)
 at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
 at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103)
 at 
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
 at 
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376)
 at 
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163)
 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.invokeFramework(Main.java:334)
 at org.eclipse.core.launcher.Main.basicRun(Main.java:278)
 at org.eclipse.core.launcher.Main.run(Main.java:973)
 at org.eclipse.core.launcher.Main.main(Main.java:948)

!ENTRY org.eclipse.ui 4 4 2005-07-29 17:58:29.311
!MESSAGE Unhandled event loop exception

!ENTRY org.eclipse.ui 4 0 2005-07-29 17:58:29.327
!MESSAGE Failed to execute runnable (java.lang.NullPointerException)
!STACK 0
org.eclipse.swt.SWTException: Failed to execute runnable 
(java.lang.NullPointerException)
 at org.eclipse.swt.SWT.error(SWT.java:2942)
 at org.eclipse.swt.SWT.error(SWT.java:2865)
 at 
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:126)
 at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3057)
 at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2716)
 at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1699)
 at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663)
 at 
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367)
 at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
 at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103)
 at 
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
 at 
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376)
 at 
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163)
 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.invokeFramework(Main.java:334)
 at org.eclipse.core.launcher.Main.basicRun(Main.java:278)
 at org.eclipse.core.launcher.Main.run(Main.java:973)
 at org.eclipse.core.launcher.Main.main(Main.java:948)
Caused by: java.lang.NullPointerException
 at 
org.eclipse.ve.internal.swt.CompositeGraphicalEditPart.setupControl(CompositeGraphicalEditPart.java:96)
 at 
org.eclipse.ve.internal.swt.CompositeGraphicalEditPart.createChild(CompositeGraphicalEditPart.java:84)
 at 
org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(AbstractEditPart.java:733)
 at 
org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:684)
 at 
org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:554)
 at 
org.eclipse.gef.editparts.AbstractEditPart.addNotify(AbstractEditPart.java:232)
 at 
org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotify(AbstractGraphicalEditPart.java:212)
 at 
org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:195)
 at 
org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(AbstractEditPart.java:734)
 at 
org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:684)
 at 
org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:554)
 at 
org.eclipse.gef.editparts.AbstractEditPart.addNotify(AbstractEditPart.java:232)
 at 
org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotify(AbstractGraphicalEditPart.java:212)
 at 
org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:195)
 at 
org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(AbstractEditPart.java:734)
 at 
org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:684)
 at 
org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:554)
 at 
org.eclipse.gef.editparts.AbstractEditPart.addNotify(AbstractEditPart.java:232)
 at 
org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotify(AbstractGraphicalEditPart.java:212)
 at 
org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:195)
 at 
org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(AbstractEditPart.java:734)
 at 
org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:684)
 at 
org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphicalEditPart.java:554)
 at 
org.eclipse.ve.internal.java.codegen.editorpart.JavaVisualEditorPart.setRootModel(JavaVisualEditorPart.java:506)
 at 
org.eclipse.ve.internal.java.codegen.editorpart.JavaVisualEditorPart.initializeViewers(JavaVisualEditorPart.java:987)
 at 
org.eclipse.ve.internal.java.codegen.editorpart.JavaVisualEditorPart$12.run(JavaVisualEditorPart.java:1977)
 at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
 at 
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
 ... 18 more

!ENTRY org.eclipse.jem.proxy 2 0 2005-07-29 17:58:29.795
!MESSAGE
+++ Warning +++: Fri Jul 29 17:58:29 EDT 2005    Project (Test1)-VM for 
Test1:err>
    org.eclipse.jem.internal.proxy.common.remote.CommandErrorException--  
Error code:7 Value data:"java.lang.NullPointerException:null";
     at 
org.eclipse.jem.internal.proxy.common.remote.Commands.readBackValue(Commands.java:1254)
     at 
org.eclipse.jem.internal.proxy.vm.remote.ConnectionHandler.run(ConnectionHandler.java:454)
     at 
org.eclipse.jem.internal.proxy.vm.remote.CallbackHandler.callbackWithParms(CallbackHandler.java:150)
     at 
org.eclipse.ve.internal.swt.targetvm.ControlManager$5.run(ControlManager.java:637)
     at 
org.eclipse.jem.internal.proxy.vm.remote.RemoteVMServerThread.doCallback(RemoteVMServerThread.java:541)
     at 
org.eclipse.ve.internal.swt.targetvm.ControlManager$ControlManagerFeedbackController.run(ControlManager.java:634)
     at 
org.eclipse.ve.internal.swt.targetvm.ControlManager$1.run(ControlManager.java:480)
     at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
     at 
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
     at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3057)
     at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2716)
     at 
org.eclipse.ve.internal.swt.targetvm.Environment$3.run(Environment.java:68)