HEAD - Fix for 325567
diff --git a/batch/org/eclipse/jdt/internal/compiler/batch/messages.properties b/batch/org/eclipse/jdt/internal/compiler/batch/messages.properties
index 6f44683..1b404fc 100644
--- a/batch/org/eclipse/jdt/internal/compiler/batch/messages.properties
+++ b/batch/org/eclipse/jdt/internal/compiler/batch/messages.properties
@@ -15,7 +15,7 @@
 #Format: compiler.name = word1 word2 word3
 compiler.name = Eclipse Compiler for Java(TM)
 #Format: compiler.version = 0.XXX[, other words (don't forget the comma if adding other words)]
-compiler.version = 0.B13a, 3.7.0 M2
+compiler.version = 0.B14a, 3.7.0 M3
 compiler.copyright = Copyright IBM Corp 2000, 2010. All rights reserved.
 
 ### progress
diff --git a/buildnotes_jdt-core.html b/buildnotes_jdt-core.html
index 39a3a4f..7137c5e 100644
--- a/buildnotes_jdt-core.html
+++ b/buildnotes_jdt-core.html
@@ -40,6 +40,19 @@
 	</td>
   </tr>
 </table>
+<a name="v_B14a"></a>
+<hr><h1>
+Eclipse Platform Build Notes<br>
+Java development tools core</h1>
+Eclipse SDK 3.7M3 - September 21, 2010 - 3.7.0 M3
+<br>Project org.eclipse.jdt.core v_B14a
+(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_B14a">cvs</a>).
+<h2>What's new in this drop</h2>
+
+<h3>Problem Reports Fixed</h3>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=325567">325567</a>
+A blocking &quot;java.lang.IllegalArgumentException: info cannot be null&quot; exception
+
 <a name="v_B13a"></a>
 <hr><h1>
 Eclipse Platform Build Notes<br>
diff --git a/compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedNameReference.java b/compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedNameReference.java
index 988b53a..57e9d38 100644
--- a/compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedNameReference.java
+++ b/compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedNameReference.java
@@ -779,6 +779,10 @@
 	if ((this.bits & ASTNode.RestrictiveFlagMASK) == Binding.LOCAL) {
 		LocalVariableBinding localVariableBinding = (LocalVariableBinding) this.binding;
 		if (localVariableBinding != null) {
+			if ((localVariableBinding.tagBits & TagBits.NotInitialized) != 0) {
+				// local was tagged as uninitialized
+				return;
+			}
 			switch(localVariableBinding.useFlag) {
 				case LocalVariableBinding.FAKE_USED :
 				case LocalVariableBinding.USED :
diff --git a/compiler/org/eclipse/jdt/internal/compiler/ast/SingleNameReference.java b/compiler/org/eclipse/jdt/internal/compiler/ast/SingleNameReference.java
index 0deeeeb..6d9efdf 100644
--- a/compiler/org/eclipse/jdt/internal/compiler/ast/SingleNameReference.java
+++ b/compiler/org/eclipse/jdt/internal/compiler/ast/SingleNameReference.java
@@ -727,6 +727,10 @@
 	if ((this.bits & ASTNode.RestrictiveFlagMASK) == Binding.LOCAL) {
 		LocalVariableBinding localVariableBinding = (LocalVariableBinding) this.binding;
 		if (localVariableBinding != null) {
+			if ((localVariableBinding.tagBits & TagBits.NotInitialized) != 0) {
+				// local was tagged as uninitialized
+				return;
+			}
 			switch(localVariableBinding.useFlag) {
 				case LocalVariableBinding.FAKE_USED :
 				case LocalVariableBinding.USED :
diff --git a/compiler/org/eclipse/jdt/internal/compiler/lookup/TagBits.java b/compiler/org/eclipse/jdt/internal/compiler/lookup/TagBits.java
index 466362a..fc4e099 100644
--- a/compiler/org/eclipse/jdt/internal/compiler/lookup/TagBits.java
+++ b/compiler/org/eclipse/jdt/internal/compiler/lookup/TagBits.java
@@ -33,6 +33,9 @@
 	// for method
 	long HasUncheckedTypeArgumentForBoundCheck = ASTNode.Bit9;
 	
+	// local variable
+	long NotInitialized = ASTNode.Bit9;
+
 	// set when method has argument(s) that couldn't be resolved
 	long HasUnresolvedArguments = ASTNode.Bit10;
 	
diff --git a/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java b/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java
index 8bcb154..6552a93 100644
--- a/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java
+++ b/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java
@@ -6777,6 +6777,7 @@
 		nodeSourceEnd(field, location));
 }
 public void uninitializedLocalVariable(LocalVariableBinding binding, ASTNode location) {
+	binding.tagBits |= TagBits.NotInitialized;
 	String[] arguments = new String[] {new String(binding.readableName())};
 	this.handle(
 		IProblem.UninitializedLocalVariable,