--- 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;
}