[ 
https://issues.apache.org/jira/browse/HTTPCLIENT-1347?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13870066#comment-13870066
 ] 

Adam Patacchiola commented on HTTPCLIENT-1347:
----------------------------------------------

This doesn't make sense to me. The "putEntry" method only ever gets called with 
the key "{Accept-Encoding=}http://localhost:8000/1";, then updateEntry gets 
called with the key "http://localhost:8000/1"; for which no cache entry exists 
(as putEntry has not been called for that key). The HttpCacheStorage 
updateEntry documentation states, "Atomically applies the given callback to 
update an existing cache entry under a given key." How can the cache update an 
entry that doesn't exist? 

getEntry only ever gets called with the key "http://localhost:8000/1"; for which 
it doesn't have an entry. How is the cache implementation supposed to know the 
two keys are related? Shouldn't the client be abstracting the variant keys from 
the underlying cache implementation? 

The only way to get it to work is to call putEntry for the "root" key in 
updateEntry as the test client is doing, which results in data being cached 
twice unnecessarily.



> gzip responses doubly cached
> ----------------------------
>
>                 Key: HTTPCLIENT-1347
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1347
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: HttpCache
>    Affects Versions: 4.2.5
>         Environment: ARCH Linux kernel 3.8.8-1
> node.js 0.8.22
>            Reporter: Adam Patacchiola
>             Fix For: 4.4 Final
>
>         Attachments: Screen Shot 2014-01-11 at 7.11.36 PM.png, Screen Shot 
> 2014-01-13 at 3.56.19 PM.png, Showing_entry_pointer.png, 
> httpClientCacheTest.tar.gz, httpClientTestServer.js
>
>
> Compressed responses are cached twice. 
> Run the attached server (node.js 0.8.22) and client tests. Create an "assets" 
> directory under where you are running the server and add two files named 1 
> and 2 ( < 1000000 bytes) . You will see that after the test is run the cache 
> dump output displays 2 sets of entries for each request, each containing the 
> full content length of the file.
> Changing the implementation of HttpCacheStorage updateEntry to not update non 
> existent entries (as I believe the correct implementation should do) throws 
> exceptions. 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to