Author: oglueck
Date: Sun Mar  4 04:37:15 2007
New Revision: 514390

URL: http://svn.apache.org/viewvc?view=rev&rev=514390
Log:
Fixed resource leaks
PR: HTTPCLIENT-641
Contributed by Hanson Char
Reviewed by Ortwin Glück

Modified:
    jakarta/commons/proper/httpclient/trunk/release_notes.txt
    
jakarta/commons/proper/httpclient/trunk/src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLProtocolSocketFactory.java
    
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/ssl/SimpleSSLSocketFactory.java
    
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/ssl/SimpleSSLTestProtocolSocketFactory.java

Modified: jakarta/commons/proper/httpclient/trunk/release_notes.txt
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/httpclient/trunk/release_notes.txt?view=diff&rev=514390&r1=514389&r2=514390
==============================================================================
--- jakarta/commons/proper/httpclient/trunk/release_notes.txt (original)
+++ jakarta/commons/proper/httpclient/trunk/release_notes.txt Sun Mar  4 
04:37:15 2007
@@ -1,4 +1,7 @@
 Changes since Release 3.1 Beta 1:
+* [HTTPCLIENT-641] - Resource Leakage when loading keystore in 
AuthSSLProtocolSocketFactory.
+           Contributed by Hanson Char
+
 * [HTTPCLIENT-634] - Default host config can override scheme of absolute URL.
            Contributed by John Kristian
 

Modified: 
jakarta/commons/proper/httpclient/trunk/src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLProtocolSocketFactory.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/httpclient/trunk/src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLProtocolSocketFactory.java?view=diff&rev=514390&r1=514389&r2=514390
==============================================================================
--- 
jakarta/commons/proper/httpclient/trunk/src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLProtocolSocketFactory.java
 (original)
+++ 
jakarta/commons/proper/httpclient/trunk/src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLProtocolSocketFactory.java
 Sun Mar  4 04:37:15 2007
@@ -31,6 +31,7 @@
 package org.apache.commons.httpclient.contrib.ssl;
 
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.Socket;
@@ -215,7 +216,13 @@
         }
         LOG.debug("Initializing key store");
         KeyStore keystore  = KeyStore.getInstance("jks");
-        keystore.load(url.openStream(), password != null ? 
password.toCharArray(): null);
+        InputStream is = null;
+        try {
+               is = url.openStream(); 
+            keystore.load(is, password != null ? password.toCharArray(): null);
+        } finally {
+               if (is != null) is.close();
+        }
         return keystore;
     }
     

Modified: 
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/ssl/SimpleSSLSocketFactory.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/ssl/SimpleSSLSocketFactory.java?view=diff&rev=514390&r1=514389&r2=514390
==============================================================================
--- 
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/ssl/SimpleSSLSocketFactory.java
 (original)
+++ 
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/ssl/SimpleSSLSocketFactory.java
 Sun Mar  4 04:37:15 2007
@@ -31,6 +31,7 @@
 package org.apache.commons.httpclient.ssl;
 
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.ServerSocket;
 import java.net.URL;
 import java.security.KeyStore;
@@ -61,7 +62,13 @@
             ClassLoader cl = SimpleSocketFactory.class.getClassLoader();
             URL url = 
cl.getResource("org/apache/commons/httpclient/ssl/simpleserver.keystore");
             KeyStore keystore  = KeyStore.getInstance("jks");
-            keystore.load(url.openStream(), "nopassword".toCharArray());
+            InputStream is = null;
+            try {
+                   is = url.openStream();
+                   keystore.load(is, "nopassword".toCharArray());
+            } finally {
+               if (is != null) is.close();
+            }
             KeyManagerFactory kmfactory = KeyManagerFactory.getInstance(
                     KeyManagerFactory.getDefaultAlgorithm());
             kmfactory.init(keystore, "nopassword".toCharArray());

Modified: 
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/ssl/SimpleSSLTestProtocolSocketFactory.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/ssl/SimpleSSLTestProtocolSocketFactory.java?view=diff&rev=514390&r1=514389&r2=514390
==============================================================================
--- 
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/ssl/SimpleSSLTestProtocolSocketFactory.java
 (original)
+++ 
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/ssl/SimpleSSLTestProtocolSocketFactory.java
 Sun Mar  4 04:37:15 2007
@@ -31,6 +31,7 @@
 package org.apache.commons.httpclient.ssl;
 
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.InetAddress;
 import java.net.Socket;
 import java.net.URL;
@@ -60,7 +61,13 @@
             ClassLoader cl = SimpleSocketFactory.class.getClassLoader();
             URL url = 
cl.getResource("org/apache/commons/httpclient/ssl/simpleserver.keystore");
             KeyStore keystore  = KeyStore.getInstance("jks");
-            keystore.load(url.openStream(), "nopassword".toCharArray());
+            InputStream is = null;
+            try {
+               is = url.openStream();
+               keystore.load(is, "nopassword".toCharArray());
+            } finally {
+               if (is != null) is.close();
+            }
             TrustManagerFactory tmfactory = TrustManagerFactory.getInstance(
                     TrustManagerFactory.getDefaultAlgorithm());
             tmfactory.init(keystore);



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to