Repository: nifi Updated Branches: refs/heads/NIFI-1073 [created] 21983c157
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/21983c15 Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/21983c15 Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/21983c15 Branch: refs/heads/NIFI-1073 Commit: 21983c1571a51ebadfa3afb533fa5f4830645083 Parents: aec32a2 Author: Tony Kurc <[email protected]> Authored: Mon Oct 26 19:41:26 2015 -0400 Committer: Tony Kurc <[email protected]> Committed: Mon Oct 26 19:41:26 2015 -0400 ---------------------------------------------------------------------- .../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/21983c15/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);
