commit | b47f760ac81c67a0931ebd3e25aafd4f73073e55 | [log] [tgz] |
---|---|---|
author | Tim Ellison <tellison@apache.org> | Fri Dec 18 11:39:47 2009 +0000 |
committer | Tim Ellison <tellison@apache.org> | Fri Dec 18 11:39:47 2009 +0000 |
tree | a2d34ad38033566ea55be1c66ab25fa8005e26b3 | |
parent | b5c4c4330ef8f9030dae09c6bc236b5b400b7092 [diff] |
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) {