--- old/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/ImageLocationWriter.java 2017-02-27 14:02:27.980038349 +0100 +++ new/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/ImageLocationWriter.java 2017-02-27 14:02:27.736037139 +0100 @@ -108,24 +108,24 @@ int hash = seed; if (getModuleOffset() != 0) { - hash = ImageStringsReader.hashCode("/", hash); - hash = ImageStringsReader.hashCode(getModule(), hash); - hash = ImageStringsReader.hashCode("/", hash); + hash = ImageStringsReader.unmaskedHashCode("/", hash); + hash = ImageStringsReader.unmaskedHashCode(getModule(), hash); + hash = ImageStringsReader.unmaskedHashCode("/", hash); } if (getParentOffset() != 0) { - hash = ImageStringsReader.hashCode(getParent(), hash); - hash = ImageStringsReader.hashCode("/", hash); + hash = ImageStringsReader.unmaskedHashCode(getParent(), hash); + hash = ImageStringsReader.unmaskedHashCode("/", hash); } - hash = ImageStringsReader.hashCode(getBase(), hash); + hash = ImageStringsReader.unmaskedHashCode(getBase(), hash); if (getExtensionOffset() != 0) { - hash = ImageStringsReader.hashCode(".", hash); - hash = ImageStringsReader.hashCode(getExtension(), hash); + hash = ImageStringsReader.unmaskedHashCode(".", hash); + hash = ImageStringsReader.unmaskedHashCode(getExtension(), hash); } - return hash; + return hash & ImageStringsReader.POSITIVE_MASK; } @Override