Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-4467

keySet operation via HotRod in compatibility mode throws ClassCastException

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Done
    • 7.0.0.Alpha1
    • 7.0.0.Alpha5
    • None
    • None

    Description

      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

      Attachments

        Issue Links

          Activity

            People

              gzamarre Galder Zamarreño
              mgencur Martin Gencur
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: