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

Bug 317557

Summary: AbstractMethodError when painting 2D children
Product: z_Archived Reporter: Jens Von Pilgrim <developer>
Component: Gef3dAssignee: Jens Von Pilgrim <developer>
Status: ASSIGNED --- QA Contact:
Severity: normal    
Priority: P3    
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:
Attachments:
Description Flags
mylyn/context/zip none

Description Jens Von Pilgrim CLA 2010-06-22 05:46:39 EDT
Under some circumstances, an AbstractMethodError may occur when painting 2D children:

java.lang.AbstractMethodError
	at org.eclipse.draw2d.Figure.hasFocus(Figure.java:893)
	at org.eclipse.draw2d.Clickable.paintBorder(Clickable.java:296)
...
	at org.eclipse.draw3d.Figure3DHelper.doPaintChildren2D(Figure3DHelper.java:395)
...

that is, at: dispatcher.getFocusOwner() causes this error. I do not understand that error, since dispatcher is an instance of EventDispatcher3D, which implements this method.

Reproduce that error:
- open Ecore diagram in 3D
- create two classes, make one class (rectangle) pretty small (compartments are barley visible)
- create an attribute in the larger class
- drag and drop newly created attribute to smaller class

Seems as if the error occurs when scroll bars should be rendered.
Comment 1 Jens Von Pilgrim CLA 2010-06-22 05:56:55 EDT
Not fixed, but moderated: catch errors in Figure3DHelper. 
According to the JDK documentation, an AbstractMethodError
"is caught by the compiler; this error can only occur at run time if the definition of some class has incompatibly changed since the currently executing method was last compiled."
Cleaning the project didn't helped and the compiler did not caught the error. 

I assume the error may be gone with GEF 3.6, as this method is one of the problematic package visible methods (#315887).
Comment 2 Jens Von Pilgrim CLA 2010-06-22 05:56:58 EDT
Created attachment 172402 [details]
mylyn/context/zip