### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core.tests.compiler Index: src/org/eclipse/jdt/core/tests/compiler/regression/NullReferenceTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/NullReferenceTest.java,v retrieving revision 1.58 diff -u -r1.58 NullReferenceTest.java --- src/org/eclipse/jdt/core/tests/compiler/regression/NullReferenceTest.java 2 Apr 2007 11:05:54 -0000 1.58 +++ src/org/eclipse/jdt/core/tests/compiler/regression/NullReferenceTest.java 2 May 2007 08:32:13 -0000 @@ -4350,6 +4350,8 @@ // null analysis -- try/finally // https://bugs.eclipse.org/bugs/show_bug.cgi?id=128547 // variant +// https://bugs.eclipse.org/bugs/show_bug.cgi?id=184546 +// variant public void test0516_try_finally() { this.runConformTest( new String[] { @@ -4371,7 +4373,6 @@ ""); } - // null analysis -- try/finally // https://bugs.eclipse.org/bugs/show_bug.cgi?id=132072 // AIOOBE in null check compiling com.sun.org.apache.xalan.internal.res.XSLTErrorResources from JDK 1.5 source @@ -4413,7 +4414,6 @@ ""); } - // null analysis -- try/finally // https://bugs.eclipse.org/bugs/show_bug.cgi?id=132120 // [compiler][null] NPE batch compiling JDT/Core from HEAD @@ -4891,6 +4891,30 @@ ""); } +// null analysis -- try/finally +// https://bugs.eclipse.org/bugs/show_bug.cgi?id=184546 +public void test0533_try_finally_field() { + this.runConformTest( + new String[] { + "X.java", + "public class X {\n" + + " static char SHOULD_NOT_MATTER = '?';\n" + + " Object foo() {\n" + + " X x = null;\n" + + " try {\n" + + " x = new X();\n" + + " return x;\n" + + " }\n" + + " finally {\n" + + " if (x != null) {\n" + + " x.toString();\n" + + " }\n" + + " }\n" + + " }\n" + + "}\n"}, + ""); +} + // null analysis -- try/catch public void test0550_try_catch() { this.runConformTest( #P org.eclipse.jdt.core Index: compiler/org/eclipse/jdt/internal/compiler/flow/NullInfoRegistry.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/flow/NullInfoRegistry.java,v retrieving revision 1.4 diff -u -r1.4 NullInfoRegistry.java --- compiler/org/eclipse/jdt/internal/compiler/flow/NullInfoRegistry.java 26 Apr 2006 09:17:30 -0000 1.4 +++ compiler/org/eclipse/jdt/internal/compiler/flow/NullInfoRegistry.java 2 May 2007 08:32:17 -0000 @@ -38,6 +38,7 @@ * not modified by this constructor */ public NullInfoRegistry(UnconditionalFlowInfo upstream) { + this.maxFieldCount = upstream.maxFieldCount; if ((upstream.tagBits & NULL_FLAG_MASK) != 0) { long u1, u2, u3, u4, nu2, nu3, nu4; this.nullBit2 = (u1 = upstream.nullBit1)