BETA_JAVA7 - Fixed bug 339250: [null] Incorrect redundant null check warning on a String
diff --git a/batch/org/eclipse/jdt/internal/compiler/batch/messages.properties b/batch/org/eclipse/jdt/internal/compiler/batch/messages.properties
index ac89c39..d82b9d2 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.B41, 3.7.0 M6 (beta java7)
+compiler.version = 0.B42, 3.7.0 M6 (beta java7)
 compiler.copyright = Copyright IBM Corp 2000, 2010. All rights reserved.
 
 ### progress
diff --git a/buildnotes_jdt-core.html b/buildnotes_jdt-core.html
index 6951f67..2ab286b 100644
--- a/buildnotes_jdt-core.html
+++ b/buildnotes_jdt-core.html
@@ -41,11 +41,24 @@
 	</td>
   </tr>
 </table>
+<a name="v_B42"></a>
+<hr><h1>
+Eclipse Platform Build Notes<br>
+Java development tools core</h1>
+Eclipse SDK 3.7M6 - March 9, 2011 - 3.7.0 M6
+<br>Project org.eclipse.jdt.core v_B42
+(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_B42">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=339250">339250</a>
+[null] Incorrect redundant null check warning on a String
+
 <a name="v_B41"></a>
 <hr><h1>
 Eclipse Platform Build Notes<br>
 Java development tools core</h1>
-Eclipse SDK 3.7M6 - March 8, 2011 - 3.7.0 M6
+Eclipse SDK 3.7M6 - March 8, 2011
 <br>Project org.eclipse.jdt.core v_B41
 (<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_B41">cvs</a>).
 <h2>What's new in this drop</h2>
diff --git a/compiler/org/eclipse/jdt/internal/compiler/ast/CompoundAssignment.java b/compiler/org/eclipse/jdt/internal/compiler/ast/CompoundAssignment.java
index e323760..03ab69a 100644
--- a/compiler/org/eclipse/jdt/internal/compiler/ast/CompoundAssignment.java
+++ b/compiler/org/eclipse/jdt/internal/compiler/ast/CompoundAssignment.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -42,7 +42,18 @@
 	if (this.resolvedType.id != T_JavaLangString) {
 		this.lhs.checkNPE(currentScope, flowContext, flowInfo);
 	}
-	return  ((Reference) this.lhs).analyseAssignment(currentScope, flowContext, flowInfo, this, true).unconditionalInits();
+	flowInfo = ((Reference) this.lhs).analyseAssignment(currentScope, flowContext, flowInfo, this, true).unconditionalInits();
+	if (this.resolvedType.id == T_JavaLangString) {
+		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=339250
+		LocalVariableBinding local = this.lhs.localVariableBinding();
+		if (local != null && this.resolvedType.id == T_JavaLangString) {
+			// compound assignment results in a definitely non null value for String
+			flowInfo.markAsDefinitelyNonNull(local);
+			if (flowContext.initsOnFinally != null)
+				flowContext.initsOnFinally.markAsDefinitelyNonNull(local);
+		}
+	}
+	return flowInfo;
 }
 
 	public boolean checkCastCompatibility() {