ICU-11976 test & fix ByteArrayWrapper.hashCode()
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/util/ByteArrayWrapper.java b/icu4j/main/classes/core/src/com/ibm/icu/util/ByteArrayWrapper.java
index e39fdd0..1c2c75c 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/util/ByteArrayWrapper.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/util/ByteArrayWrapper.java
@@ -237,7 +237,7 @@
      */
     @Override
     public int hashCode() {
-        int result = bytes.length;
+        int result = size;
         for (int i = 0; i < size; ++i) {
             result = 37*result + bytes[i];
         }
diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/util/UtilityTest.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/util/UtilityTest.java
index 7cfc981..0613c2d 100644
--- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/util/UtilityTest.java
+++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/util/UtilityTest.java
@@ -137,10 +137,10 @@
         }
 
         // test equality
-        if (!x.equals(y) || !x.equals(z))
-            errln("FAIL: test (operator ==): Failed!");
-        if (x.hashCode()!=y.hashCode())
-            errln("FAIL: identical objects have different hash codes.");
+        assertEquals("x==y", x, y);
+        assertEquals("y==z", y, z);
+        assertEquals("x.hashCode()==y.hashCode()", x.hashCode(), y.hashCode());
+        assertEquals("y.hashCode()==z.hashCode()", y.hashCode(), z.hashCode());
 
         // test non-equality
         y = new ByteArrayWrapper(bb, 4);