diff --git a/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java b/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java index 205c80e484b..b80260407ca 100644 --- a/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java +++ b/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java @@ -567,42 +567,46 @@ public abstract class SSLContextImpl extends SSLContextSpi { } FileInputStream fs = null; - if (defaultKeyStore.length() != 0 && !NONE.equals(defaultKeyStore)) { - fs = AccessController.doPrivileged( - new PrivilegedExceptionAction() { - public FileInputStream run() throws Exception { - return new FileInputStream(defaultKeyStore); - } - }); - } - - String defaultKeyStorePassword = props.get("keyStorePasswd"); - char[] passwd = null; - if (defaultKeyStorePassword.length() != 0) { - passwd = defaultKeyStorePassword.toCharArray(); - } - - /** - * Try to initialize key store. - */ KeyStore ks = null; - if ((defaultKeyStoreType.length()) != 0) { - if (debug != null && Debug.isOn("defaultctx")) { - System.out.println("init keystore"); - } - if (defaultKeyStoreProvider.length() == 0) { - ks = KeyStore.getInstance(defaultKeyStoreType); - } else { - ks = KeyStore.getInstance(defaultKeyStoreType, - defaultKeyStoreProvider); + char[] passwd = null; + try { + if (defaultKeyStore.length() != 0 && + !NONE.equals(defaultKeyStore)) { + fs = AccessController.doPrivileged( + new PrivilegedExceptionAction() { + public FileInputStream run() throws Exception { + return new FileInputStream(defaultKeyStore); + } + }); } - // if defaultKeyStore is NONE, fs will be null - ks.load(fs, passwd); - } - if (fs != null) { - fs.close(); - fs = null; + String defaultKeyStorePassword = props.get("keyStorePasswd"); + if (defaultKeyStorePassword.length() != 0) { + passwd = defaultKeyStorePassword.toCharArray(); + } + + /** + * Try to initialize key store. + */ + if ((defaultKeyStoreType.length()) != 0) { + if (debug != null && Debug.isOn("defaultctx")) { + System.out.println("init keystore"); + } + if (defaultKeyStoreProvider.length() == 0) { + ks = KeyStore.getInstance(defaultKeyStoreType); + } else { + ks = KeyStore.getInstance(defaultKeyStoreType, + defaultKeyStoreProvider); + } + + // if defaultKeyStore is NONE, fs will be null + ks.load(fs, passwd); + } + } finally { + if (fs != null) { + fs.close(); + fs = null; + } } /* diff --git a/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java b/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java index ee2142c4f67..fbd680143f8 100644 --- a/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java +++ b/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java @@ -164,72 +164,75 @@ abstract class TrustManagerFactoryImpl extends TrustManagerFactorySpi { * If none exists, we use an empty keystore. */ - storeFileName = props.get("trustStore"); - if (!"NONE".equals(storeFileName)) { - if (storeFileName != null) { - storeFile = new File(storeFileName); - fis = getFileInputStream(storeFile); - } else { - String javaHome = props.get("javaHome"); - storeFile = new File(javaHome + sep + "lib" + sep - + "security" + sep + - "jssecacerts"); - if ((fis = getFileInputStream(storeFile)) == null) { - storeFile = new File(javaHome + sep + "lib" + sep - + "security" + sep + - "cacerts"); + try { + storeFileName = props.get("trustStore"); + if (!"NONE".equals(storeFileName)) { + if (storeFileName != null) { + storeFile = new File(storeFileName); fis = getFileInputStream(storeFile); + } else { + String javaHome = props.get("javaHome"); + storeFile = new File(javaHome + sep + "lib" + sep + + "security" + sep + + "jssecacerts"); + if ((fis = getFileInputStream(storeFile)) == null) { + storeFile = new File(javaHome + sep + "lib" + sep + + "security" + sep + + "cacerts"); + fis = getFileInputStream(storeFile); + } + } + + if (fis != null) { + storeFileName = storeFile.getPath(); + } else { + storeFileName = "No File Available, using empty keystore."; } } - if (fis != null) { - storeFileName = storeFile.getPath(); - } else { - storeFileName = "No File Available, using empty keystore."; - } - } - - defaultTrustStoreType = props.get("trustStoreType"); - defaultTrustStoreProvider = props.get("trustStoreProvider"); - if (debug != null && Debug.isOn(dbgname)) { - System.out.println("trustStore is: " + storeFileName); - System.out.println("trustStore type is : " + - defaultTrustStoreType); - System.out.println("trustStore provider is : " + - defaultTrustStoreProvider); - } - - /* - * Try to initialize trust store. - */ - if (defaultTrustStoreType.length() != 0) { + defaultTrustStoreType = props.get("trustStoreType"); + defaultTrustStoreProvider = props.get("trustStoreProvider"); if (debug != null && Debug.isOn(dbgname)) { - System.out.println("init truststore"); + System.out.println("trustStore is: " + storeFileName); + System.out.println("trustStore type is : " + + defaultTrustStoreType); + System.out.println("trustStore provider is : " + + defaultTrustStoreProvider); } - if (defaultTrustStoreProvider.length() == 0) { - ks = KeyStore.getInstance(defaultTrustStoreType); - } else { - ks = KeyStore.getInstance(defaultTrustStoreType, - defaultTrustStoreProvider); - } - char[] passwd = null; - String defaultTrustStorePassword = props.get("trustStorePasswd"); - if (defaultTrustStorePassword.length() != 0) - passwd = defaultTrustStorePassword.toCharArray(); - // if trustStore is NONE, fis will be null - ks.load(fis, passwd); + /* + * Try to initialize trust store. + */ + if (defaultTrustStoreType.length() != 0) { + if (debug != null && Debug.isOn(dbgname)) { + System.out.println("init truststore"); + } + if (defaultTrustStoreProvider.length() == 0) { + ks = KeyStore.getInstance(defaultTrustStoreType); + } else { + ks = KeyStore.getInstance(defaultTrustStoreType, + defaultTrustStoreProvider); + } + char[] passwd = null; + String defaultTrustStorePassword = + props.get("trustStorePasswd"); + if (defaultTrustStorePassword.length() != 0) + passwd = defaultTrustStorePassword.toCharArray(); - // Zero out the temporary password storage - if (passwd != null) { - for (int i = 0; i < passwd.length; i++) { - passwd[i] = (char)0; + // if trustStore is NONE, fis will be null + ks.load(fis, passwd); + + // Zero out the temporary password storage + if (passwd != null) { + for (int i = 0; i < passwd.length; i++) { + passwd[i] = (char)0; + } } } - } - - if (fis != null) { - fis.close(); + } finally { + if (fis != null) { + fis.close(); + } } return ks;