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

Ok.  Simple steps.

Create a new workspace.
Set editor preferences to show line numbers.
Create a new plugin project named Test.  Keep all defaults, but do not use a 
template.
In the test package, create a new visual class SWT->Composite named C.
Display palette and java bean views.
Drop a CLabel in upper left (use default field name).
Drop a Scale somewhere below it (use default field name).
Add a selection event handler to the Scale (via popup menu from visuals 
display).
delete line 21: cLabel.setText("CLabel");
now, between lines  28 and 29:
    28: });
    29: setSize(new Point(300, 200));

create a new line 29: cLabel.setText("CLabel " + scale.getSelection());

Save source file (using control-S).

Pause and unpause VE (using toolbar).  Get NPE.

entire C.java:
package test;

import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.custom.CLabel;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Scale;

public class C extends Composite {

 private CLabel cLabel = null;
 private Scale scale = null;

 public C(Composite parent, int style) {
  super(parent, style);
  initialize();
 }

 private void initialize() {
  cLabel = new CLabel(this, SWT.NONE);
  cLabel.setBounds(new org.eclipse.swt.graphics.Rectangle(29,30,38,19));
  scale = new Scale(this, SWT.NONE);
  scale.setBounds(new org.eclipse.swt.graphics.Rectangle(75,106,170,42));
  scale.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
   public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
    System.out.println("widgetSelected()"); // TODO Auto-generated Event 
stub widgetSelected()
   }
  });
  cLabel.setText("CLabel " + scale.getSelection());
  setSize(new Point(300, 200));
 }

}



.log file contains:
!SESSION 2005-08-01 
13:50:19.816 -----------------------------------------------
eclipse.buildId=I20050627-1435
java.version=1.5.0_04
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Framework arguments:  -showlocation
Command-line arguments:  -os win32 -ws win32 -arch x86 -showlocation

!ENTRY org.eclipse.ve.java.core 4 0 2005-08-01 13:55:10.201
!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.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-08-01 13:55:10.217
!MESSAGE Unhandled event loop exception

!ENTRY org.eclipse.ui 4 0 2005-08-01 13:55:10.217
!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.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




"Joe Winchester" <winchest@xxxxxxxxxx> wrote in message 
news:dcl5u7$lhg$1@xxxxxxxxxxxxxxxxxxx
> Hi Joel,
>
> From your description I have tried to re-create the error you got but 
> don't have enough information for me to encounter it.  Could you please 
> post an idiot proof description of how to get the error, e.g.
>
> 1 - Open file foo.java
> 2 - select the lines 30 to 40.  Cut and paste these so they are at line 
> 20.
> 3 - Close the editor.
> 4 - Clean the project
> 5 - Re-open and see the VE crash.
>
> Also post the full source code of the file(s) in error.  Don't include 
> that much narrative of why you are doing what you are doing with moving 
> the code around. To create a bug report all we need is a set of 
> re-creatable steps from a standing start where we can make it crash and 
> then see what's wrong.  If it crashes it's a bug.
>
> By the way - there are two bits of parsing that go on with the VE when you 
> edit source code.  One occurs each time you change the source and is a 
> snippit reload that tries to do intelligent delta on what has changed into 
> the model.  If this can't do its job (which sometimes legitimately occurs 
> if the sippit analyzer realizes the changes made are too big to delta in) 
> then a full reload occurs.  You can trigger this at any time by pushing 
> the pause button at the top and then unpausing.  Each time the VE closes a 
> file and re-opens it we used to always re-parse from scratch the source, 
> however now we have a cache that holds information that helps performance. 
> This cache is what is cleared by doing a Project>Clean.
>
> Best regards,
>
> Joe Winchester