*** empty log message ***
diff --git a/org.eclipse.jdt.core/buildnotes_jdt-core.html b/org.eclipse.jdt.core/buildnotes_jdt-core.html
index 14f366c..cc9cd44 100644
--- a/org.eclipse.jdt.core/buildnotes_jdt-core.html
+++ b/org.eclipse.jdt.core/buildnotes_jdt-core.html
@@ -11,20 +11,26 @@
 <h1>

 Eclipse Platform Build Notes&nbsp;<br>

 Java Development Tooling/Core</h1>

-Eclipse SDK Build R1.0 ???

-<br>Project org.eclipse.jdt.core v_???

+Eclipse SDK Build R1.0 Rollup2 - 7th February 2002

+<br>Project org.eclipse.jdt.core v_140

 <h2>

 What's new in this drop</h2>

 

 <h3>

 Problem Reports Fixed</h3>

-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=7920">7920</a>

+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9169">9169</a>

+Wrong code generation for comparison of string constants 

+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7445">7445</a>

+char/string concat bug  

+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7455">7455</a>  

+Build problems when instance variable name matches constructor parameter name and assignment to this.name in try block  

+<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=7920">7920</a>

 JavaProject.canonicalizedPath  

    

 <h1>

 Eclipse Platform Build Notes&nbsp;<br>

 Java Development Tooling/Core</h1>

-Eclipse SDK Build R1.0 Rollup

+Eclipse SDK Build R1.0 Rollup1

 <br>Project org.eclipse.jdt.core v_139a

 <h2>

 What's new in this drop</h2>

diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/EqualExpression.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/EqualExpression.java
index 027cc07..29f43f2 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/EqualExpression.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/EqualExpression.java
@@ -197,13 +197,19 @@
 	return false;

 }

 public final void computeConstant(TypeBinding leftTb, TypeBinding rightTb){

-

-	if ( (left.constant != NotAConstant) && (right.constant != NotAConstant) )

-	{	constant = Constant.computeConstantOperationEQUAL_EQUAL(left.constant,rightTb.id,EQUAL_EQUAL,right.constant,rightTb.id);

+	if ((left.constant != NotAConstant) && (right.constant != NotAConstant)) {

+		constant =

+			Constant.computeConstantOperationEQUAL_EQUAL(

+				left.constant,

+				rightTb.id,

+				EQUAL_EQUAL,

+				right.constant,

+				rightTb.id);

 		if (((bits & OperatorMASK) >> OperatorSHIFT) == NOT_EQUAL)

-			constant = Constant.fromValue(! constant.booleanValue()) ;}

-	else

-		constant = NotAConstant ;

+			constant = Constant.fromValue(!constant.booleanValue());

+	} else {

+		constant = NotAConstant;

+	}

 }

 /**

  * Normal == or != code generation

diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/FieldReference.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/FieldReference.java
index 144cdec..7663582 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/FieldReference.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/FieldReference.java
@@ -29,7 +29,7 @@
 		//by default the position are the one of the field (not true for super access)

 		sourceStart = (int) (pos>>>32) ;

 		sourceEnd = (int) (pos & 0x00000000FFFFFFFFL);

-

+		bits |= BindingIds.FIELD;

 	

 }

 public FlowInfo analyseAssignment(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, Assignment assignment, boolean isCompound) {

diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SingleNameReference.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SingleNameReference.java
index e9fbd7f..3f9b1d6 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SingleNameReference.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SingleNameReference.java
@@ -197,7 +197,8 @@
 			&& ((operator == PLUS) || (operator == MULTIPLY)) // only commutative operations

 			&& ((variableReference = (SingleNameReference) operation.right).binding == binding)

 			&& (operation.left.constant != NotAConstant) // exclude non constant expressions, since could have side-effect

-			&& ((operation.implicitConversion >> 4) != T_String)) { // exclude string concatenation which would occur backwards

+			&& ((operation.left.implicitConversion >> 4) != T_String) // exclude string concatenation which would occur backwards

+			&& ((operation.right.implicitConversion >> 4) != T_String)) { // exclude string concatenation which would occur backwards

 			// i = value + i, then use the variable on the right hand side, since it has the correct implicit conversion

 			variableReference.generateCompoundAssignment(currentScope, codeStream, syntheticAccessors == null ? null : syntheticAccessors[WRITE], operation.left, operator, operation.right.implicitConversion /*should be equivalent to no conversion*/, valueRequired);

 			return;

diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/impl/StringConstant.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/impl/StringConstant.java
index fe197d4..88fdafc 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/impl/StringConstant.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/impl/StringConstant.java
@@ -12,10 +12,13 @@
 	this.value = value ;

 }

 public boolean compileTimeEqual(StringConstant right){

-	//String are intermed in th compiler==>thus if two string constant

+	//String are intermed in the compiler==>thus if two string constant

 	//get to be compared, it is an equal on the vale which is done

-

-	return true ;}

+	if (this.value == null) {

+		return right.value == null;

+	}

+	return this.value.equals(right.value);

+}

 public String stringValue() {

 	//spec 15.17.11