[
https://issues.jboss.org/browse/ISPN-4467?page=com.atlassian.jira.plugin....
]
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/ma...
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)