StringKey hashCode inconsistent across VMs.
This is causing PersistentUnitCache to never re-use generated types. The deserialized ContentId hashCodes don't match the in-memory ContentId hashCodes because getClass().hashCode() isn't stable across VM instances.
http://gwt-code-reviews.appspot.com/1435801/
Review by: zundel@google.com
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@10149 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/util/StringKey.java b/dev/core/src/com/google/gwt/dev/util/StringKey.java
index c7ac19a..5236ca2 100644
--- a/dev/core/src/com/google/gwt/dev/util/StringKey.java
+++ b/dev/core/src/com/google/gwt/dev/util/StringKey.java
@@ -38,7 +38,7 @@
*/
protected StringKey(String value) {
this.value = value;
- this.hashCode = getClass().hashCode() * 13
+ this.hashCode = getClass().getName().hashCode() * 13
+ (value == null ? 0 : value.hashCode());
}
@@ -66,9 +66,6 @@
if (o == null) {
return false;
}
- if (getClass() != o.getClass()) {
- return false;
- }
return compareTo((StringKey) o) == 0 ? true : false;
}