hc-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ol...@apache.org
Subject svn commit: r1088614 - /httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/EntityUtils.java
Date Mon, 04 Apr 2011 13:22:49 GMT
Author: olegk
Date: Mon Apr  4 13:22:48 2011
New Revision: 1088614

URL: http://svn.apache.org/viewvc?rev=1088614&view=rev
Log:
EntityUtils#toString() and EntityUtils#toByteArray fail to close content stream in case of
content length check failure

Modified:
    httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/EntityUtils.java

Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/EntityUtils.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/EntityUtils.java?rev=1088614&r1=1088613&r2=1088614&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/EntityUtils.java
(original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/EntityUtils.java
Mon Apr  4 13:22:48 2011
@@ -86,24 +86,24 @@ public final class EntityUtils {
         if (instream == null) {
             return null;
         }
-        if (entity.getContentLength() > Integer.MAX_VALUE) {
-            throw new IllegalArgumentException("HTTP entity too large to be buffered in memory");
-        }
-        int i = (int)entity.getContentLength();
-        if (i < 0) {
-            i = 4096;
-        }
-        ByteArrayBuffer buffer = new ByteArrayBuffer(i);
         try {
+            if (entity.getContentLength() > Integer.MAX_VALUE) {
+                throw new IllegalArgumentException("HTTP entity too large to be buffered
in memory");
+            }
+            int i = (int)entity.getContentLength();
+            if (i < 0) {
+                i = 4096;
+            }
+            ByteArrayBuffer buffer = new ByteArrayBuffer(i);
             byte[] tmp = new byte[4096];
             int l;
             while((l = instream.read(tmp)) != -1) {
                 buffer.append(tmp, 0, l);
             }
+            return buffer.toByteArray();
         } finally {
             instream.close();
         }
-        return buffer.toByteArray();
     }
 
     /**
@@ -177,32 +177,32 @@ public final class EntityUtils {
         if (instream == null) {
             return null;
         }
-        if (entity.getContentLength() > Integer.MAX_VALUE) {
-            throw new IllegalArgumentException("HTTP entity too large to be buffered in memory");
-        }
-        int i = (int)entity.getContentLength();
-        if (i < 0) {
-            i = 4096;
-        }
-        String charset = getContentCharSet(entity);
-        if (charset == null) {
-            charset = defaultCharset;
-        }
-        if (charset == null) {
-            charset = HTTP.DEFAULT_CONTENT_CHARSET;
-        }
-        Reader reader = new InputStreamReader(instream, charset);
-        CharArrayBuffer buffer = new CharArrayBuffer(i);
         try {
+            if (entity.getContentLength() > Integer.MAX_VALUE) {
+                throw new IllegalArgumentException("HTTP entity too large to be buffered
in memory");
+            }
+            int i = (int)entity.getContentLength();
+            if (i < 0) {
+                i = 4096;
+            }
+            String charset = getContentCharSet(entity);
+            if (charset == null) {
+                charset = defaultCharset;
+            }
+            if (charset == null) {
+                charset = HTTP.DEFAULT_CONTENT_CHARSET;
+            }
+            Reader reader = new InputStreamReader(instream, charset);
+            CharArrayBuffer buffer = new CharArrayBuffer(i);
             char[] tmp = new char[1024];
             int l;
             while((l = reader.read(tmp)) != -1) {
                 buffer.append(tmp, 0, l);
             }
+            return buffer.toString();
         } finally {
-            reader.close();
+            instream.close();
         }
-        return buffer.toString();
     }
 
     /**



Mime
View raw message