Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-4168

Can't get json object stored as PDX using the new protocol

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.4.0
    • client/server
    • None

    Description

      When trying to do a get for an json object using the new client protocol, users now receive this exception

      [error 2017/12/25 12:05:12.985 PST server1 <ServerConnection on port 40404 Thread 15> tid=0x83] Received Get request with unsupported encoding: {}
      org.apache.geode.internal.protocol.serialization.exception.EncodingException: No protobuf encoding for type org.apache.geode.pdx.internal.PdxInstanceImpl
             at org.apache.geode.internal.protocol.protobuf.v1.ProtobufSerializationService.encode(ProtobufSerializationService.java:86)
             at org.apache.geode.internal.protocol.protobuf.v1.operations.GetRequestOperationHandler.process(GetRequestOperationHandler.java:63)
             at org.apache.geode.internal.protocol.protobuf.v1.operations.GetRequestOperationHandler.process(GetRequestOperationHandler.java:38)
             at org.apache.geode.internal.protocol.protobuf.v1.ProtobufOpsProcessor.processOperation(ProtobufOpsProcessor.java:82)
             at org.apache.geode.internal.protocol.protobuf.v1.ProtobufOpsProcessor.process(ProtobufOpsProcessor.java:62)
             at org.apache.geode.internal.protocol.protobuf.v1.ProtobufStreamProcessor.processOneMessage(ProtobufStreamProcessor.java:79)
             at org.apache.geode.internal.protocol.protobuf.v1.ProtobufStreamProcessor.receiveMessage(ProtobufStreamProcessor.java:55)
             at org.apache.geode.internal.protocol.protobuf.v1.ProtobufCachePipeline.processMessage(ProtobufCachePipeline.java:53)
             at org.apache.geode.internal.cache.tier.sockets.GenericProtocolServerConnection.doOneMessage(GenericProtocolServerConnection.java:70)
             at org.apache.geode.internal.cache.tier.sockets.ServerConnection.run(ServerConnection.java:1179)
      

      This looks like a bug introduced by e24e038e69244cc655779634945896411e678080. ProtobufEncodingTypes.valueOf is trying to do a Class.equals between PdxInstance and PdxIntanceImpl.

      This is somewhat related to GEODE-4116 in that it's another failure to get a pdx serialized value, but the underlying cause is different in this case.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              upthewaterspout Dan Smith
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: