Fix for HARMONY-6405 ([classlib][luni] String.equals() is not thread-safe)


git-svn-id: https://svn.apache.org/repos/asf/harmony/enhanced/classlib/trunk@892226 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/modules/luni/src/main/java/java/lang/String.java b/modules/luni/src/main/java/java/lang/String.java
index 0f14a1c..1040eda 100644
--- a/modules/luni/src/main/java/java/lang/String.java
+++ b/modules/luni/src/main/java/java/lang/String.java
@@ -778,8 +778,9 @@
         }
         if (object instanceof String) {
             String s = (String) object;
-            if (count != s.count
-                    || (hashCode != s.hashCode && hashCode != 0 && s.hashCode != 0)) {
+            int hash = hashCode;  // Single read on hashCodes as they may change
+            int shash = s.hashCode;
+            if (count != s.count || (hash != shash && hash != 0 && shash != 0)) {
                 return false;
             }
             for (int i = 0; i < count; ++i) {