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