hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oleg Kalnichevski (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (HTTPCLIENT-1299) FileNotFoundException on Cached Variant
Date Thu, 28 Mar 2013 12:47:16 GMT

     [ 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.

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

View raw message