diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/flow/FlowContext.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/flow/FlowContext.java index 7df8a71..98caf30 100644 --- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/flow/FlowContext.java +++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/flow/FlowContext.java @@ -564,9 +564,10 @@ while (size <= nullCount) size *= 2; this.expectedTypes = new TypeBinding[size]; } - else if (nullCount == this.expectedTypes.length) { + else if (nullCount >= this.expectedTypes.length) { + int oldLen = this.expectedTypes.length; System.arraycopy(this.expectedTypes, 0, - this.expectedTypes = new TypeBinding[nullCount * 2], 0, nullCount); + this.expectedTypes = new TypeBinding[nullCount * 2], 0, oldLen); } this.expectedTypes[nullCount] = expectedType; }