hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Clinton Nielsen (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HTTPCLIENT-1152) org.apache.http.impl.client.cache.memcached.MemcachedHttpCacheStorage should verify class of returned object before casting
Date Wed, 21 Dec 2011 16:55:30 GMT

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

Clinton Nielsen commented on HTTPCLIENT-1152:

Could be that somebody is using the cache for other purposes as well, and just happens to
set an object with a URL as a key that conflicts with an object that is set by MemcachedHttpCacheStorage.
 -- this could (and also probably should) be mitigated by allowing the client of MemcachedHttpCacheStorage
to set a client-defined prefix String that will be prefixed to all keys, thus avoiding potential

In my case, it is that we are using jmemcacheddaemon for local testing purposes, and (unfortunately)
jmemcacheddaemon has a known bug where cache misses return an empty string instead of a null
object. This causes MemcachedHttpCacheStorage to throw a ClassCastException instead of just
returning null, because String cannot be cast to byte[].
> org.apache.http.impl.client.cache.memcached.MemcachedHttpCacheStorage should verify class
of returned object before casting
> ---------------------------------------------------------------------------------------------------------------------------
>                 Key: HTTPCLIENT-1152
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1152
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: Cache, HttpClient
>    Affects Versions: 4.1.1
>            Reporter: Clinton Nielsen
>            Assignee: Jon Moore
>             Fix For: 4.1.3, 4.2 Final
>         Attachments: HTTPCLIENT-1152.patch
> org.apache.http.impl.client.cache.memcached.MemcachedHttpCacheStorage
> Original (in getEntry function): 
>   byte[] data = (byte[]) client.get(url);
> Should be:
>   Object obj= client.get(url);
>   if (null == obj || !(objinstanceof byte[])) {
>     return null;
>   }
>   byte[] data = (byte[])obj;
> Original (in updateEntry function):
>   byte[] oldBytes = (v != null) ? (byte[]) v.getValue() : null;
> Should be:
>   byte[] oldBytes = (v != null && (v.getValue() instanceof byte[])) ? (byte[])
v.getValue() : null;

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
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