Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 103732

Summary: Hover component on an empty RCPView results in NPE
Product: z_Archived Reporter: Srimanth <sgunturi>
Component: VEAssignee: Srimanth <sgunturi>
Status: CLOSED DUPLICATE QA Contact:
Severity: major    
Priority: P1    
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Srimanth CLA 2005-07-13 18:06:06 EDT
On linux Create an empty RCP View and after opening in VE try to drop a Button
on top - the message shows up as feedback, but the following exception is in the
logs.

--------------------------------------------------
java.lang.NullPointerException
	at org.eclipse.draw2d.FigureUtilities.setFont(FigureUtilities.java:369)
	at org.eclipse.draw2d.FigureUtilities.getTextDimension(FigureUtilities.java:87)
	at org.eclipse.draw2d.FigureUtilities.getTextExtents(FigureUtilities.java:167)
	at org.eclipse.draw2d.Label.calculateTextSize(Label.java:244)
	at org.eclipse.draw2d.Label.getTextSize(Label.java:457)
	at org.eclipse.draw2d.Label.getPreferredSize(Label.java:329)
	at org.eclipse.draw2d.StackLayout.calculatePreferredSize(StackLayout.java:71)
	at org.eclipse.draw2d.AbstractLayout.getPreferredSize(AbstractLayout.java:93)
	at
org.eclipse.draw2d.AbstractHintLayout.getPreferredSize(AbstractHintLayout.java:85)
	at org.eclipse.draw2d.Figure.getPreferredSize(Figure.java:737)
	at org.eclipse.draw2d.text.FlowAdapter.layout(FlowAdapter.java:64)
	at org.eclipse.draw2d.text.FlowAdapter.validate(FlowAdapter.java:137)
	at
org.eclipse.draw2d.text.FlowContainerLayout.layoutChildren(FlowContainerLayout.java:112)
	at org.eclipse.draw2d.text.FlowContainerLayout.layout(FlowContainerLayout.java:98)
	at org.eclipse.draw2d.text.FlowFigureLayout.layout(FlowFigureLayout.java:101)
	at org.eclipse.draw2d.Figure.layout(Figure.java:1033)
	at org.eclipse.draw2d.Figure.validate(Figure.java:1736)
	at org.eclipse.draw2d.text.BlockFlow.validate(BlockFlow.java:300)
	at org.eclipse.draw2d.text.FlowPage.validate(FlowPage.java:132)
	at
org.eclipse.draw2d.DeferredUpdateManager.validateFigures(DeferredUpdateManager.java:271)
	at
org.eclipse.draw2d.DeferredUpdateManager.performUpdate(DeferredUpdateManager.java:143)
	at
org.eclipse.draw2d.DeferredUpdateManager.performUpdate(DeferredUpdateManager.java:165)
	at org.eclipse.draw2d.LightweightSystem.paint(LightweightSystem.java:225)
	at org.eclipse.draw2d.LightweightSystem$2.handleEvent(LightweightSystem.java:116)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1021)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1045)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1030)
	at org.eclipse.swt.widgets.Control.gtk_expose_event(Control.java:1906)
	at org.eclipse.swt.widgets.Composite.gtk_expose_event(Composite.java:528)
	at org.eclipse.swt.widgets.Canvas.gtk_expose_event(Canvas.java:105)
	at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1361)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:3442)
	at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
	at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:4777)
	at org.eclipse.swt.widgets.Display.eventProc(Display.java:1067)
	at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
	at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:1158)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2570)
	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(NativeMethodAccessorImpl.java:39)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	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)
Comment 1 Srimanth CLA 2005-07-13 18:33:15 EDT
The same thing happens when you drop a JSplitPane on an empty file. So might not
be RCP related. 
Comment 2 Srimanth CLA 2005-07-20 14:30:28 EDT
No recreatable testcase. Moving to 1.2
Comment 3 Richard Kulp CLA 2005-07-27 15:02:26 EDT
Sri, please verify still a problem. If not please close.
Comment 4 Srimanth CLA 2005-08-08 11:29:17 EDT
This is a duplicate of GEF bug 77941. The problem was that FlowPage was being
added to the feedback layer, and a setsize() was being done on it. setsize()
adds the flowpage to the update manager. before the update manager could
process, we remove the flowpage from the feedback layer. Because of which NPE
occurs when laying out flowpage as not parent is available to get Font.
According to bug 77941, flowpage (which added itself to update manager on
setsize) will remove itself from the update manager whenever it realizes it is
being removed.
This was released in GEF 3.1.1 which VE hasnt caught up to.

*** This bug has been marked as a duplicate of 77941 ***
Comment 5 Richard Kulp CLA 2005-08-24 18:24:21 EDT
closing