Skip to content

Commit af60ff9

Browse files
committed
avoid creating list instance when extraChainCert filled
1 parent 3aceaab commit af60ff9

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/main/java/org/jruby/ext/openssl/SSLContext.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -969,12 +969,13 @@ public String chooseServerAlias(String keyType, java.security.Principal[] issuer
969969
public java.security.cert.X509Certificate[] getCertificateChain(String alias) {
970970
if ( internalContext == null ) return null;
971971

972-
final ArrayList<java.security.cert.X509Certificate> chain =
973-
new ArrayList<java.security.cert.X509Certificate>();
972+
final List<java.security.cert.X509Certificate> chain;
974973
if ( internalContext.extraChainCert != null ) {
975-
chain.addAll(internalContext.extraChainCert);
974+
chain = (List) internalContext.extraChainCert;
976975
}
977976
else if ( internalContext.cert != null ) {
977+
chain = new ArrayList<java.security.cert.X509Certificate>(8);
978+
978979
StoreContext storeCtx = internalContext.createStoreContext(null);
979980
X509AuxCertificate x = internalContext.cert;
980981
while (true) {
@@ -1001,6 +1002,9 @@ else if ( internalContext.cert != null ) {
10011002
}
10021003
}
10031004
}
1005+
else {
1006+
chain = Collections.EMPTY_LIST;
1007+
}
10041008
return chain.toArray( new java.security.cert.X509Certificate[chain.size()] );
10051009
}
10061010

0 commit comments

Comments
 (0)