diff -r 05c1e4d50f9a -r 2f3c0bd6b987 src/java.base/share/classes/java/security/PKCS12Attribute.java --- a/src/java.base/share/classes/java/security/PKCS12Attribute.java Sat Apr 07 17:07:13 2018 -0700 +++ b/src/java.base/share/classes/java/security/PKCS12Attribute.java Sun Apr 08 11:32:46 2018 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2018, Oracle and/or its affiliates. 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 @@ -44,7 +44,7 @@ Pattern.compile("^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2})+$"); private String name; private String value; - private byte[] encoded; + private final byte[] encoded; private int hashValue = -1; /** @@ -199,7 +199,7 @@ if (!(obj instanceof PKCS12Attribute)) { return false; } - return Arrays.equals(encoded, ((PKCS12Attribute) obj).getEncoded()); + return Arrays.equals(encoded, ((PKCS12Attribute) obj).encoded); } /** @@ -210,10 +210,11 @@ */ @Override public int hashCode() { - if (hashValue == -1) { - Arrays.hashCode(encoded); + int h = hashValue; + if (h == -1) { + hashValue = h = Arrays.hashCode(encoded); } - return hashValue; + return h; } /**