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);
 

Reply via email to