--- old/src/java.desktop/share/classes/java/awt/image/PackedColorModel.java 2016-04-25 14:51:32.918914154 +0530 +++ new/src/java.desktop/share/classes/java/awt/image/PackedColorModel.java 2016-04-25 14:51:32.726818161 +0530 @@ -27,6 +27,7 @@ import java.awt.Transparency; import java.awt.color.ColorSpace; +import java.util.Arrays; /** * The {@code PackedColorModel} class is an abstract @@ -393,16 +394,18 @@ * is an instance of {@code PackedColorModel} and equals this * {@code PackedColorModel}; {@code false} otherwise. */ + @Override public boolean equals(Object obj) { - if (!(obj instanceof PackedColorModel)) { - return false; + + PackedColorModel cm = (PackedColorModel) obj; + if (this == cm) { + return true; } if (!super.equals(obj)) { return false; } - PackedColorModel cm = (PackedColorModel) obj; int numC = cm.getNumComponents(); for(int i=0; i < numC; i++) { if (maskArray[i] != cm.getMask(i)) { @@ -412,6 +415,19 @@ return true; } + /** + * Returns the hash code for this PackedColorModel. + * + * @return a hash code for this PackedColorModel. + */ + @Override + public int hashCode() { + int hash = 3; + hash = 89 * hash + super.hashCode(); + hash = 89 * hash + Arrays.hashCode(this.maskArray); + return hash; + } + private static final int[] createBitsArray(int[]colorMaskArray, int alphaMask) { int numColors = colorMaskArray.length;