[ https://issues.apache.org/jira/browse/HTTPCLIENT-990?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12907259#action_12907259 ]
Vianney Carel commented on HTTPCLIENT-990: ------------------------------------------ Just a last comment: there's still a little issue at the end. If the content is not to be cached, then the CachingClient shouldn't store it in the cache... shouldn't it ? > Allow heuristic freshness caching > --------------------------------- > > Key: HTTPCLIENT-990 > URL: https://issues.apache.org/jira/browse/HTTPCLIENT-990 > Project: HttpComponents HttpClient > Issue Type: Improvement > Components: Cache > Affects Versions: 4.1 Alpha2 > Reporter: Vianney Carel > Priority: Minor > Attachments: debug.log > > > I noticed that the CachingHttpClient behaves strangely when it receives > responses with only the public cache-control directive, e.g.: > HTTP/1.0 200 OK > Server: My test server > Cache-control: public > Content-Length: 1 > 1 > Using a debugger, I could see that the response is cached. But when the > response is queried from the cache, it is not considered as "fresh". > According to the HTTP RFC, such responses "may" be cached (I understand it as > a "should" in our case)... but there's no reason to put responses in the > cache if we don't use them later one. > The "freshness of the response is analysed after the response is queried from > the cache, thanks to: > CachedResponseSuitabilityChecker#canCachedResponseBeUsed() > ... calling CacheEntry#isResponseFresh() > ... returning true if the response date (getCurrentAgeSecs()) is lower than > its use-by date (getFreshnessLifetimeSecs()) > The issue is that getFreshnessLifetimeSecs() returns 0 when there is no > max-age directive. > This could be fixed by replacing the code of CacheEntry#isResponseFresh() by: > public boolean isResponseFresh() { > final long freshnessLifetime = getFreshnessLifetimeSecs(); > if (freshnessLifetime == 0) { > return true; > } > return (getCurrentAgeSecs() < getFreshnessLifetimeSecs()); > } > But i'm not 100% confident about not producing some bad side-effects... -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org For additional commands, e-mail: dev-h...@hc.apache.org