You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by an...@apache.org on 2007/02/12 04:19:51 UTC

svn commit: r506248 - in /jakarta/slide/trunk: WHATSNEW contributors.xml webdavclient/clientlib/src/java/org/apache/webdav/lib/WebdavResource.java

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: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org