Author: antoine
Date: Sun Feb 11 19:19:51 2007
New Revision: 506248

URL: http://svn.apache.org/viewvc?view=rev&rev=506248
Log:
closing streams properly in putMethod(String path, File file)

Modified:
    jakarta/slide/trunk/WHATSNEW
    jakarta/slide/trunk/contributors.xml
    
jakarta/slide/trunk/webdavclient/clientlib/src/java/org/apache/webdav/lib/WebdavResource.java

Modified: jakarta/slide/trunk/WHATSNEW
URL: 
http://svn.apache.org/viewvc/jakarta/slide/trunk/WHATSNEW?view=diff&rev=506248&r1=506247&r2=506248
==============================================================================
--- jakarta/slide/trunk/WHATSNEW (original)
+++ jakarta/slide/trunk/WHATSNEW Sun Feb 11 19:19:51 2007
@@ -13,7 +13,9 @@
   Bugzilla 40835.
 
 * Potentially unclosed InputStream and FileOutputStream in 
WebdavResource.getMethod(String path, File file)
-  Bugzilla 41574. 
+  Bugzilla 41574.
+
+* Potentially unclosed FileInputStream in WebdavResource.putMethod(String 
path, File file) 
 
 Other changes:
 --------------

Modified: jakarta/slide/trunk/contributors.xml
URL: 
http://svn.apache.org/viewvc/jakarta/slide/trunk/contributors.xml?view=diff&rev=506248&r1=506247&r2=506248
==============================================================================
--- jakarta/slide/trunk/contributors.xml (original)
+++ jakarta/slide/trunk/contributors.xml Sun Feb 11 19:19:51 2007
@@ -18,5 +18,9 @@
     <first>Eric</first>
     <last>Van</last>
   </name>
+  <name>
+    <first>Michael</first>
+    <last>Christoff</last>
+  </name>
 </contributors>
 

Modified: 
jakarta/slide/trunk/webdavclient/clientlib/src/java/org/apache/webdav/lib/WebdavResource.java
URL: 
http://svn.apache.org/viewvc/jakarta/slide/trunk/webdavclient/clientlib/src/java/org/apache/webdav/lib/WebdavResource.java?view=diff&rev=506248&r1=506247&r2=506248
==============================================================================
--- 
jakarta/slide/trunk/webdavclient/clientlib/src/java/org/apache/webdav/lib/WebdavResource.java
 (original)
+++ 
jakarta/slide/trunk/webdavclient/clientlib/src/java/org/apache/webdav/lib/WebdavResource.java
 Sun Feb 11 19:19:51 2007
@@ -2820,25 +2820,30 @@
     public boolean putMethod(String path, File file)
         throws HttpException, IOException {
 
-        setClient();
-        PutMethod method = new PutMethod(URIUtil.encodePathQuery(path));
-        generateIfHeader(method);
-        if (getGetContentType() != null && !getGetContentType().equals(""))
-            method.setRequestHeader("Content-Type", getGetContentType());
-        long fileLength = file.length();
-        method.setRequestContentLength(fileLength <= Integer.MAX_VALUE
-                                       ? (int) fileLength
-                                       : PutMethod.CONTENT_LENGTH_CHUNKED);
-        FileInputStream fis = new FileInputStream(file);
-        method.setRequestBody(fis);
-        generateTransactionHeader(method);
-        generateAdditionalHeaders(method);
-        int statusCode = client.executeMethod(method);
+        FileInputStream fis = null;
+        try {
+            setClient();
+            PutMethod method = new PutMethod(URIUtil.encodePathQuery(path));
+            generateIfHeader(method);
+            if (getGetContentType() != null && !getGetContentType().equals(""))
+                method.setRequestHeader("Content-Type", getGetContentType());
+            long fileLength = file.length();
+            method.setRequestContentLength(fileLength <= Integer.MAX_VALUE
+                                           ? (int) fileLength
+                                           : PutMethod.CONTENT_LENGTH_CHUNKED);
+            fis = new FileInputStream(file);
+            method.setRequestBody(fis);
+            generateTransactionHeader(method);
+            int statusCode = client.executeMethod(method);
 
-        setStatusCode(statusCode);
+            setStatusCode(statusCode);
+            return (statusCode >= 200 && statusCode < 300) ? true : false;
+
+        } finally {
+            if(fis != null)
+                fis.close();
+        }
 
-        fis.close();  // <--- simple update to code
-        return (statusCode >= 200 && statusCode < 300) ? true : false;
     }
 
 



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

Reply via email to