NIFI-1073 fixed resource leak in SSLContextFactory
Project: http://git-wip-us.apache.org/repos/asf/nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/47b93d45 Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/47b93d45 Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/47b93d45 Branch: refs/heads/NIFI-1073 Commit: 47b93d45cb32e3d7655734538e07d02cb924cd24 Parents: 440e4c4 Author: Tony Kurc <[email protected]> Authored: Mon Oct 26 19:41:26 2015 -0400 Committer: Tony Kurc <[email protected]> Committed: Sun Nov 8 21:11:33 2015 -0500 ---------------------------------------------------------------------- .../org/apache/nifi/io/socket/SSLContextFactory.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi/blob/47b93d45/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SSLContextFactory.java ---------------------------------------------------------------------- diff --git a/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SSLContextFactory.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SSLContextFactory.java index 9c6cb82..eeaa299 100644 --- a/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SSLContextFactory.java +++ b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SSLContextFactory.java @@ -34,6 +34,7 @@ import javax.net.ssl.TrustManager; import javax.net.ssl.TrustManagerFactory; import org.apache.nifi.util.NiFiProperties; +import org.apache.nifi.util.file.FileUtils; public class SSLContextFactory { @@ -58,13 +59,23 @@ public class SSLContextFactory { // prepare the keystore final KeyStore keyStore = KeyStore.getInstance(keystoreType); - keyStore.load(new FileInputStream(keystore), keystorePass); + final FileInputStream keyStoreStream = new FileInputStream(keystore); + try{ + keyStore.load(keyStoreStream, keystorePass); + } finally{ + FileUtils.closeQuietly(keyStoreStream); + } final KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); keyManagerFactory.init(keyStore, keystorePass); // prepare the truststore final KeyStore trustStore = KeyStore.getInstance(truststoreType); - trustStore.load(new FileInputStream(truststore), truststorePass); + final FileInputStream trustStoreStream = new FileInputStream(truststore); + try{ + trustStore.load(trustStoreStream, truststorePass); + } finally{ + FileUtils.closeQuietly(trustStoreStream); + } final TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); trustManagerFactory.init(trustStore);
