Index: C:/harmony/trunk_0427/modules/text/src/main/java/java/text/MessageFormat.java =================================================================== --- C:/harmony/trunk_0427/modules/text/src/main/java/java/text/MessageFormat.java (revision 423442) +++ C:/harmony/trunk_0427/modules/text/src/main/java/java/text/MessageFormat.java (working copy) @@ -506,9 +506,12 @@ } } if (maxOffset + 1 < strings.length) { - hashCode += strings[maxOffset + 1].hashCode(); + hashCode += strings[maxOffset + 1].hashCode(); } - return hashCode + locale.hashCode(); + if (locale != null) { + return hashCode + locale.hashCode(); + } + return hashCode; } /** Index: C:/harmony/trunk_0427/modules/text/src/test/java/org/apache/harmony/text/tests/java/text/MessageFormatTest.java =================================================================== --- C:/harmony/trunk_0427/modules/text/src/test/java/org/apache/harmony/text/tests/java/text/MessageFormatTest.java (revision 423442) +++ C:/harmony/trunk_0427/modules/text/src/test/java/org/apache/harmony/text/tests/java/text/MessageFormatTest.java (working copy) @@ -346,6 +346,15 @@ } /** + * @tests java.text.MessageFormat#hashCode() + */ + public void test_hashCode() { + // Test for method + // int java.text.MessageFormat.hashCode() + assertEquals("Should be equal", 3648, new MessageFormat("rr", null).hashCode()); + } + + /** * @tests java.text.MessageFormat#formatToCharacterIterator(java.lang.Object) */ //FIXME This test fails on Harmony ClassLibrary