[
https://issues.apache.org/jira/browse/HTTPCLIENT-1299?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Oleg Kalnichevski resolved HTTPCLIENT-1299.
-------------------------------------------
Resolution: Fixed
I kind of hoped that someone with a better understanding of HTTP caching might
be able to fix this issue. Anyway, I did my best to figure out the correct
behavior with regards to resource deallocation and ended up removing the
offending call to Resource#dispose in this situation.
Oleg
> FileNotFoundException on Cached Variant
> ---------------------------------------
>
> Key: HTTPCLIENT-1299
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1299
> Project: HttpComponents HttpClient
> Issue Type: Bug
> Components: Cache
> Affects Versions: 4.2.3
> Environment: OpenJDK 64-Bit Server VM (6b24-1.11.5-0ubuntu1~12.04.1)
> Reporter: James Leigh
> Labels: regression
> Fix For: 4.2.4, 4.3 Alpha2
>
>
> This bug was introduced in org.apache.http.impl.client.cache.BasicHttpCache
> in 4.2.3.
> cacheAndReturnResponse takes the response and passes it to storeInCache. It
> then calls generateResponse with the *same* response resource. The problem is
> that storeInCache passes the resource to doGetUpdatedParentEntry, which makes
> a copy and *deletes* the resource it was passed (oldResource).
> This did not occur in 4.2.2 because in 4.2.2 doGetUpdatedParentEntry did not
> delete the resource. If the resource is being deleted after it is copied in
> 4.2.3, then it must not be used to generateResponse.
> Here is a stack trace with line numbers.
> BasicHttpCache.doGetUpdatedParentEntry(String, HttpCacheEntry,
> HttpCacheEntry, String, String) line: 202
> BasicHttpCache$1.update(HttpCacheEntry) line: 119
> ManagedHttpCacheStorage.updateEntry(String, HttpCacheUpdateCallback)
> line: 134
> BasicHttpCache.storeVariantEntry(HttpHost, HttpRequest, HttpCacheEntry)
> line: 128
> BasicHttpCache.storeInCache(HttpHost, HttpRequest, HttpCacheEntry)
> line: 96
> BasicHttpCache.cacheAndReturnResponse(HttpHost, HttpRequest,
> HttpResponse, Date, Date) line: 265
> CachingHttpClient.handleBackendResponse(HttpHost, HttpRequest, Date,
> Date, HttpResponse) line: 919
> CachingHttpClient.callBackend(HttpHost, HttpRequest, HttpContext) line:
> 731
> CachingHttpClient.handleCacheMiss(HttpHost, HttpRequest, HttpContext)
> line: 510
> CachingHttpClient.execute(HttpHost, HttpRequest, HttpContext) line: 436
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]