### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: compiler/org/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo.java,v retrieving revision 1.71 diff -u -r1.71 UnconditionalFlowInfo.java --- compiler/org/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo.java 16 Dec 2010 13:02:30 -0000 1.71 +++ compiler/org/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo.java 22 Dec 2010 19:55:14 -0000 @@ -1367,8 +1367,13 @@ this.nullBit4 &= mask; } else { // use extra vector - int vectorIndex ; - this.extra[2][vectorIndex = (position / BitCacheSize) - 1] + int vectorIndex = (position / BitCacheSize) - 1; + if (this.extra == null || vectorIndex >= this.extra[2].length) { + // in case we attempt to reset the null info of a variable that has not been encountered + // before and for which no null bits exist. + return; + } + this.extra[2][vectorIndex] &= (mask = ~(1L << (position % BitCacheSize))); this.extra[3][vectorIndex] &= mask; this.extra[4][vectorIndex] &= mask;