Bug 172633 - NPEs while starting my workspace
Summary: NPEs while starting my workspace
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.3   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.2.2   Edit
Assignee: Olivier Thomann CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-02-02 02:53 EST by Frederic Fusier CLA
Modified: 2007-02-09 08:26 EST (History)
2 users (show)

See Also:


Attachments
Patch for HEAD (17.26 KB, patch)
2007-02-06 19:36 EST, Olivier Thomann CLA
no flags Details | Diff
Patch for 3.2 maintenance (19.01 KB, patch)
2007-02-06 19:36 EST, Olivier Thomann CLA
no flags Details | Diff
New patch for 3.3M5 (6.58 KB, patch)
2007-02-07 13:28 EST, Olivier Thomann CLA
no flags Details | Diff
New patch for 3.2 maintenance (11.74 KB, patch)
2007-02-07 22:43 EST, Olivier Thomann CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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