Bug 172633

Summary: NPEs while starting my workspace
Product: [Eclipse Project] JDT Reporter: Frederic Fusier <frederic_fusier>
Component: CoreAssignee: Olivier Thomann <Olivier_Thomann>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: markus.kell.r, philippe_mulet
Version: 3.3   
Target Milestone: 3.2.2   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
Patch for HEAD
none
Patch for 3.2 maintenance
none
New patch for 3.3M5
none
New patch for 3.2 maintenance none

Description Frederic Fusier CLA 2007-02-02 02:53:35 EST
Using last I-build (both I20070130-0800 and I20070201-0800), I got following NPEs while starting my workspace:
!ENTRY org.eclipse.core.jobs 4 2 2007-02-02 08:50:14.927
!MESSAGE An internal error occurred during: "Override indicator installation job".
!STACK 0
java.lang.NullPointerException
        at org.eclipse.jdt.internal.corext.dom.Bindings.findOverriddenMethodInType(Bindings.java:423)
        at org.eclipse.jdt.internal.corext.dom.Bindings.findOverriddenMethodInHierarchy(Bindings.java:440)
        at org.eclipse.jdt.internal.corext.dom.Bindings.findOverriddenMethodInHierarchy(Bindings.java:451)
        at org.eclipse.jdt.internal.corext.dom.Bindings.findOverriddenMethodInHierarchy(Bindings.java:451)
        at org.eclipse.jdt.internal.corext.dom.Bindings.findOverriddenMethod(Bindings.java:474)
        at org.eclipse.jdt.internal.ui.javaeditor.OverrideIndicatorManager$1.visit(OverrideIndicatorManager.java:179)
        at org.eclipse.jdt.core.dom.MethodDeclaration.accept0(MethodDeclaration.java:486)
        at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
        at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546)
        at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:483)
        at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
        at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546)
        at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:213)
        at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
        at org.eclipse.jdt.internal.ui.javaeditor.OverrideIndicatorManager.updateAnnotations(OverrideIndicatorManager.java:172)
        at org.eclipse.jdt.internal.ui.javaeditor.OverrideIndicatorManager.reconciled(OverrideIndicatorManager.java:251)
        at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor$8.run(JavaEditor.java:3252)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)

!ENTRY org.eclipse.core.jobs 4 2 2007-02-02 08:50:17.000
!MESSAGE An internal error occurred during: "Override indicator installation job".
!STACK 0
java.lang.NullPointerException
        at org.eclipse.jdt.internal.corext.dom.Bindings.findOverriddenMethodInType(Bindings.java:423)
        at org.eclipse.jdt.internal.corext.dom.Bindings.findOverriddenMethodInHierarchy(Bindings.java:440)
        at org.eclipse.jdt.internal.corext.dom.Bindings.findOverriddenMethodInHierarchy(Bindings.java:451)
        at org.eclipse.jdt.internal.corext.dom.Bindings.findOverriddenMethodInHierarchy(Bindings.java:451)
        at org.eclipse.jdt.internal.corext.dom.Bindings.findOverriddenMethod(Bindings.java:474)
        at org.eclipse.jdt.internal.ui.javaeditor.OverrideIndicatorManager$1.visit(OverrideIndicatorManager.java:179)
        at org.eclipse.jdt.core.dom.MethodDeclaration.accept0(MethodDeclaration.java:486)
        at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
        at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546)
        at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:483)
        at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
        at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546)
        at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:213)
        at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
        at org.eclipse.jdt.internal.ui.javaeditor.OverrideIndicatorManager.updateAnnotations(OverrideIndicatorManager.java:172)
        at org.eclipse.jdt.internal.ui.javaeditor.OverrideIndicatorManager.reconciled(OverrideIndicatorManager.java:251)
        at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor$8.run(JavaEditor.java:3252)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
Comment 1 Markus Keller CLA 2007-02-02 04:44:34 EST
Must be a problem in core. Te relevant UI code is in Bindings.java:451 :

	ITypeBinding type= ...
...
	ITypeBinding[] interfaces= type.getInterfaces();
	for (int i= 0; i < interfaces.length; i++) {
		method= findOverriddenMethodInHierarchy(interfaces[i], binding);
		if (method != null)
			return method;
	}

The value in interfaces[i] turns out to be null.
Comment 2 Frederic Fusier CLA 2007-02-02 09:52:53 EST
Unfortunately, I lost the configuration of the workspace on which this problem occurred and I'm not able to reproduce these failures now...
Comment 3 Markus Keller CLA 2007-02-02 11:32:21 EST
Steps in N20070202-0010 (got them from trying to reproduce bug 172679):
- new workspace
- new plug-in "My", all defaults
- on "Dependencies" tab, add "org.eclipse.jface.databinding"
- open type "SpinnerObservableValue"
Comment 4 Olivier Thomann CLA 2007-02-06 10:03:06 EST
Reproduced.
I am investigating.
Comment 5 Olivier Thomann CLA 2007-02-06 10:40:13 EST
The problem comes from the missing binary type binding support.
They are not expected on the DOM binding side.
I'll prepare a fix for 3.3M5 and 3.2.2.
Comment 6 Olivier Thomann CLA 2007-02-06 12:31:37 EST
Should be backported to 3.2.2.
I am preparing a patch for 3.2.2 and 3.3M5.
Comment 7 Philipe Mulet CLA 2007-02-06 12:56:31 EST
To clarify, the situation may only arise in presence of missing binary types, i.e. consequences of build path errors (where buildpath is incomplete). Not the most frequent scenario, but bad enough that we should address this.
This is a regression.
Comment 8 Olivier Thomann CLA 2007-02-06 19:36:26 EST
Created attachment 58396 [details]
Patch for HEAD
Comment 9 Olivier Thomann CLA 2007-02-06 19:36:53 EST
Created attachment 58397 [details]
Patch for 3.2 maintenance
Comment 10 Olivier Thomann CLA 2007-02-06 19:38:10 EST
I am waiting for a 3.2.2 +1 in order to release in 3.2 maintenance stream and to update the map files.
Comment 11 Philipe Mulet CLA 2007-02-07 12:02:33 EST
+1 for 3.2.2. Pls coordinate with releng for triggering another 3.2.2 build iteration (early next week most likely).
Comment 12 Olivier Thomann CLA 2007-02-07 13:28:46 EST
Created attachment 58466 [details]
New patch for 3.3M5

This patch only fixes the null check. A more complete fix with caching inside the TypeBinding will be released post M5.
Comment 13 Olivier Thomann CLA 2007-02-07 15:20:05 EST
Released for 3.3M5.
Added regression tests org.eclipse.jdt.core.tests.dom.ASTConverter15Test#test0235/0236.

I leave it open to be released in 3.2 maintenance stream.
Comment 14 Olivier Thomann CLA 2007-02-07 22:43:07 EST
Created attachment 58522 [details]
New patch for 3.2 maintenance
Comment 15 Olivier Thomann CLA 2007-02-07 22:43:44 EST
Released for 3.2.2.
Same regression tests.
Comment 16 Olivier Thomann CLA 2007-02-09 08:26:44 EST
Verified for 3.3M5 using I20070208-0010