[
https://issues.apache.org/jira/browse/GEODE-4168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16310164#comment-16310164
]
ASF subversion and git services commented on GEODE-4168:
--------------------------------------------------------
Commit d0a6394d318aa486f50264e90a834dc8ccf76303 in geode's branch
refs/heads/feature/GEODE-4009 from [~bschuchardt]
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=d0a6394 ]
GEODE-4168 Can't get json object stored as PDX using the new protocol
GEODE-4116 Can't get PDX objects using the new protocol
Added a distributed test to ensure end-to-end handling of JSON documents
is functioning correctly. For GEODE-4168 I changed the class-check from
equals() to isAssignableFrom(). For GEODE-4116 I modified the Get and
GetAll operation handlers to inhibit deserialization of PdxInstances
when reading values from the cache. The test for 4116 ensures that
the value is in serialized form by putting it into a distributed Region
in another JVM.
There are unrelated javadoc changes in this commit for DM.java and
a couple of classes in the protobuf Driver module. I also added
constraints to the Regions in the Driver's unit test to get rid of
compilation warnings.
This closes #1209
> Can't get json object stored as PDX using the new protocol
> ----------------------------------------------------------
>
> Key: GEODE-4168
> URL: https://issues.apache.org/jira/browse/GEODE-4168
> Project: Geode
> Issue Type: Bug
> Components: client/server
> Reporter: Dan Smith
> Fix For: 1.4.0
>
>
> When trying to do a get for an json object using the new client protocol,
> users now receive this exception
> {noformat}
> [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)
> {noformat}
> 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.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)