--- a/jdk/src/share/classes/sun/security/x509/X509CertImpl.java Tue Feb 28 16:09:15 2012 +0200
+++ b/jdk/src/share/classes/sun/security/x509/X509CertImpl.java Wed Feb 29 14:06:00 2012 +0800
@@ -1214,7 +1214,7 @@
if (exts == null) {
return null;
}
- Set<String> extSet = new HashSet<String>();
+ Set<String> extSet = new TreeSet<>();
for (Extension ex : exts.getAllExtensions()) {
if (ex.isCritical()) {
extSet.add(ex.getExtensionId().toString());
@@ -1244,7 +1244,7 @@
if (exts == null) {
return null;
}
- Set<String> extSet = new HashSet<String>();
+ Set<String> extSet = new TreeSet<>();
for (Extension ex : exts.getAllExtensions()) {
if (!ex.isCritical()) {
extSet.add(ex.getExtensionId().toString());
@@ -1278,10 +1278,14 @@
if (extensions == null) {
return null;
} else {
- for (Extension ex : extensions.getAllExtensions()) {
- if (ex.getExtensionId().equals(oid)) {
+ Extension ex = extensions.getExtension(oid.toString());
+ if (ex != null) {
+ return ex;
+ }
+ for (Extension ex2: extensions.getAllExtensions()) {
+ if (ex2.getExtensionId().equals((Object)oid)) {
//XXXX May want to consider cloning this
- return ex;
+ return ex2;
}
}
/* no such extension in this certificate */
@@ -1480,10 +1484,10 @@
if (names.isEmpty()) {
return Collections.<List<?>>emptySet();
}
- Set<List<?>> newNames = new HashSet<List<?>>();
+ List<List<?>> newNames = new ArrayList<>();
for (GeneralName gname : names.names()) {
GeneralNameInterface name = gname.getName();
- List<Object> nameEntry = new ArrayList<Object>(2);
+ List<Object> nameEntry = new ArrayList<>(2);
nameEntry.add(Integer.valueOf(name.getType()));
switch (name.getType()) {
case GeneralNameInterface.NAME_RFC822:
@@ -1541,12 +1545,12 @@
}
}
if (mustClone) {
- Set<List<?>> namesCopy = new HashSet<List<?>>();
+ List<List<?>> namesCopy = new ArrayList<>();
for (List<?> nameEntry : altNames) {
Object nameObject = nameEntry.get(1);
if (nameObject instanceof byte[]) {
List<Object> nameEntryCopy =
- new ArrayList<Object>(nameEntry);
+ new ArrayList<>(nameEntry);
nameEntryCopy.set(1, ((byte[])nameObject).clone());
namesCopy.add(Collections.unmodifiableList(nameEntryCopy));
} else {