[infinispan-issues] [JBoss JIRA] (ISPN-4467) keySet operation via HotRod in compatibility mode throws ClassCastException
Galder Zamarreño (JIRA)
issues at jboss.org
Wed Jul 2 11:58:28 EDT 2014
[ https://issues.jboss.org/browse/ISPN-4467?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12981510#comment-12981510 ]
Galder Zamarreño commented on ISPN-4467:
----------------------------------------
The reason this is failing now is due to ISPN-2284, which changed the way the cached entries are iterated. Before, cache.getAdvancedCache().withFlags(Flag.SKIP_CACHE_LOAD).keySet() was used which guaranteed that the correct transformations would happen as a result of keySet() going through the interceptor chain. Starting with ISPN-2284, the data container is hit directly passing in a task to iterate over the data container contents directly, avoiding the interceptor chain altogether.
> keySet operation via HotRod in compatibility mode throws ClassCastException
> ---------------------------------------------------------------------------
>
> Key: ISPN-4467
> URL: https://issues.jboss.org/browse/ISPN-4467
> Project: Infinispan
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Reporter: Martin Gencur
> Assignee: Galder Zamarreño
> Fix For: 7.0.0.Alpha5
>
>
> The HotRod client's keySet() operation throws ClassCastException due to the following reason:
> When Encoder2x.scala in its writeResponse() method decodes the operation as BulkGetKeysResponse, it runs a Map/Reduce job that returns a set of keys in the whole cluster.
> The operation returns a set of "unmarshalled" (cos we're in compatibility mode) entries. However, Scala infers the type of individual entries as "Bytes" which is an alias for Array[Byte].
> As a result, when this iterator from this key set is retrieved, it is not possible to iterate through the entries because Scala automatically tries to convert each (unmarshalled) entry into a byte array, which results in the exception.
> This line results in throwing CCE:
> https://github.com/infinispan/infinispan/blob/master/server/hotrod/src/main/scala/org/infinispan/server/hotrod/Encoder2x.scala#L231
>
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
More information about the infinispan-issues
mailing list