You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2013/04/17 12:19:13 UTC

svn commit: r1468824 - in /httpcomponents/httpclient/branches/4.2.x: ./ httpclient-cache/src/main/java/org/apache/http/impl/client/cache/

Author: olegk
Date: Wed Apr 17 10:19:13 2013
New Revision: 1468824

URL: http://svn.apache.org/r1468824
Log:
HTTPCLIENT-1299: (regression) cache incorrectly disposes of the underlying cache resource when storing variant entry (follow-up)
Contributed by James Leigh <james at 3roundstones.com>

Modified:
    httpcomponents/httpclient/branches/4.2.x/RELEASE_NOTES.txt
    httpcomponents/httpclient/branches/4.2.x/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCache.java
    httpcomponents/httpclient/branches/4.2.x/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntryUpdater.java

Modified: httpcomponents/httpclient/branches/4.2.x/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.2.x/RELEASE_NOTES.txt?rev=1468824&r1=1468823&r2=1468824&view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.2.x/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpclient/branches/4.2.x/RELEASE_NOTES.txt Wed Apr 17 10:19:13 2013
@@ -1,6 +1,10 @@
 Changes since Release 4.2.4
 -------------------
 
+* [HTTPCLIENT-1299] (regression) cache incorrectly disposes of the underlying cache resource 
+  when storing variant entry.
+  Contributed by James Leigh <james at 3roundstones.com> 
+
 * [HTTPCLIENT-1342] Redirects with underscore character in the location hostname cause
   "java.lang.IllegalArgumentException: Host name may not be null".  
   Contributed by Oleg Kalnichevski <olegk at apache.org>

Modified: httpcomponents/httpclient/branches/4.2.x/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCache.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.2.x/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCache.java?rev=1468824&r1=1468823&r2=1468824&view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.2.x/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCache.java (original)
+++ httpcomponents/httpclient/branches/4.2.x/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/BasicHttpCache.java Wed Apr 17 10:19:13 2013
@@ -196,10 +196,9 @@ class BasicHttpCache implements HttpCach
             src = entry;
         }
 
-        Resource oldResource = entry.getResource();
         Resource resource = null;
-        if (oldResource != null) {
-            resource = resourceFactory.copy(requestId, entry.getResource());
+        if (src.getResource() != null) {
+            resource = resourceFactory.copy(requestId, src.getResource());
         }
         Map<String,String> variantMap = new HashMap<String,String>(src.getVariantMap());
         variantMap.put(variantKey, variantCacheKey);

Modified: httpcomponents/httpclient/branches/4.2.x/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntryUpdater.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.2.x/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntryUpdater.java?rev=1468824&r1=1468823&r2=1468824&view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.2.x/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntryUpdater.java (original)
+++ httpcomponents/httpclient/branches/4.2.x/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CacheEntryUpdater.java Wed Apr 17 10:19:13 2013
@@ -87,11 +87,9 @@ class CacheEntryUpdater {
         if (response.getStatusLine().getStatusCode() != HttpStatus.SC_NOT_MODIFIED)
             throw new IllegalArgumentException("Response must have 304 status code");
         Header[] mergedHeaders = mergeHeaders(entry, response);
-        Resource oldResource = entry.getResource();
         Resource resource = null;
-        if (oldResource != null) {
+        if (entry.getResource() != null) {
             resource = resourceFactory.copy(requestId, entry.getResource());
-            oldResource.dispose();
         }
         return new HttpCacheEntry(
                 requestDate,