jdk/src/share/classes/javax/management/ImmutableDescriptor.java
changeset 900 55c9c5a88bde
parent 2 90ce3da70b43
child 1004 5ba8217eb504
--- a/jdk/src/share/classes/javax/management/ImmutableDescriptor.java	Mon Jul 28 12:37:52 2008 -0700
+++ b/jdk/src/share/classes/javax/management/ImmutableDescriptor.java	Tue Jul 29 19:21:59 2008 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2004-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2004-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,7 @@
 
 package javax.management;
 
+import com.sun.jmx.mbeanserver.Util;
 import java.io.InvalidObjectException;
 import java.lang.reflect.Array;
 import java.util.Arrays;
@@ -362,6 +363,7 @@
      */
     // Note: this Javadoc is copied from javax.management.Descriptor
     //       due to 6369229.
+    @Override
     public boolean equals(Object o) {
         if (o == this)
             return true;
@@ -410,29 +412,15 @@
      */
     // Note: this Javadoc is copied from javax.management.Descriptor
     //       due to 6369229.
+    @Override
     public int hashCode() {
         if (hashCode == -1) {
-            int hash = 0;
-            for (int i = 0; i < names.length; i++) {
-                Object v = values[i];
-                int h;
-                if (v == null)
-                    h = 0;
-                else if (v instanceof Object[])
-                    h = Arrays.deepHashCode((Object[]) v);
-                else if (v.getClass().isArray()) {
-                    h = Arrays.deepHashCode(new Object[] {v}) - 31;
-                    // hashcode of a list containing just v is
-                    // v.hashCode() + 31, see List.hashCode()
-                } else
-                    h = v.hashCode();
-                hash += names[i].toLowerCase().hashCode() ^ h;
-            }
-            hashCode = hash;
+            hashCode = Util.hashCode(names, values);
         }
         return hashCode;
     }
 
+    @Override
     public String toString() {
         StringBuilder sb = new StringBuilder("{");
         for (int i = 0; i < names.length; i++) {
@@ -479,6 +467,7 @@
      * If the descriptor construction fails for any reason, this exception will
      * be thrown.
      */
+    @Override
     public Descriptor clone() {
         return this;
     }