# HG changeset patch # User xuelei # Date 1311088865 25200 # Node ID c70d99150c402204640760a55d7829b8e9751886 # Parent a00341fc41dbc5cc52ffb733a4d1504be5b024a6 7059709: close the IO in a final block Reviewed-by: smarks, mullan, wetmore diff -r a00341fc41db -r c70d99150c40 jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java --- a/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java Mon Jul 18 22:25:58 2011 +0100 +++ b/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java Tue Jul 19 08:21:05 2011 -0700 @@ -567,42 +567,46 @@ } 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"); + KeyStore ks = null; char[] passwd = null; - if (defaultKeyStorePassword.length() != 0) { - passwd = defaultKeyStorePassword.toCharArray(); - } + try { + if (defaultKeyStore.length() != 0 && + !NONE.equals(defaultKeyStore)) { + fs = AccessController.doPrivileged( + new PrivilegedExceptionAction() { + public FileInputStream run() throws Exception { + return new FileInputStream(defaultKeyStore); + } + }); + } - /** - * 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); + String defaultKeyStorePassword = props.get("keyStorePasswd"); + if (defaultKeyStorePassword.length() != 0) { + passwd = defaultKeyStorePassword.toCharArray(); } - // if defaultKeyStore is NONE, fs will be null - ks.load(fs, passwd); - } - if (fs != null) { - fs.close(); - fs = null; + /** + * 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 -r a00341fc41db -r c70d99150c40 jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java --- a/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java Mon Jul 18 22:25:58 2011 +0100 +++ b/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java Tue Jul 19 08:21:05 2011 -0700 @@ -164,72 +164,75 @@ * 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) { + 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 + - "cacerts"); - fis = getFileInputStream(storeFile); + + "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); } - } - - 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) { - 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(); + /* + * 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(); - // if trustStore is NONE, fis will be null - ks.load(fis, passwd); + // 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; + // 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;