Summary: | NPE during reconcile | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | [Eclipse Project] JDT | Reporter: | David Audel <david_audel> | ||||||
Component: | Core | Assignee: | Jerome Lanneluc <jerome_lanneluc> | ||||||
Status: | VERIFIED FIXED | QA Contact: | |||||||
Severity: | normal | ||||||||
Priority: | P3 | CC: | mlists | ||||||
Version: | 3.0 | ||||||||
Target Milestone: | 3.1.1 | ||||||||
Hardware: | PC | ||||||||
OS: | Windows XP | ||||||||
Whiteboard: | |||||||||
Attachments: |
|
Description
David Audel
2005-06-17 12:17:43 EDT
Reduced test case (from David) public class X { void bar() throws BinSub { } <T> void foo() { } } where BinSub is a binary type with missing superclass (manually deleted classfile for supertype in classfolder). Kent - what about initializing type variable superInterfaces to NoSuperInterfaces when creating them ? We may never get a chance to connect them. But then, what about other sort of types... maybe null checks are preferrable in various places where it gets used. We cannot initialize them before since its part of the cycle detection that they are null. I think this case needs a null check. According to David, an AbortCompilation is thrown, but we catch it in the ASTConverter and still attempt to return a DOM AST with resolved bindings. We might consider not returning bindings at all in this case. Unfortunately, the AbortCompilation is not caught in the ASTConverter, but in the CompilationUnitProblemFinder (subclass of Compiler). So the best thing we can do is to add a null check. Created attachment 26299 [details]
Null checks added
Created attachment 26300 [details]
Regression test
+1 for 3.1.1 Released fix and regression test (renamed to test0197()) in both HEAD and R3_1_maintenance branch. Verified in I20050920-0010 for 3.2M2 Verified for 3.1.1 using M20050923-1430. |