You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2020/02/12 22:15:00 UTC
[jira] [Commented] (GEODE-7794) __GEMFIRE_JSON PDX type has invalid
PdxType
[ https://issues.apache.org/jira/browse/GEODE-7794?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17035755#comment-17035755 ]
ASF subversion and git services commented on GEODE-7794:
--------------------------------------------------------
Commit 728c393150c2a83dad2ba00318561844520de55e in geode-native's branch refs/heads/develop from Matthew Reddington
[ https://gitbox.apache.org/repos/asf?p=geode-native.git;h=728c393 ]
GEODE-7794: Checking for null result and falling back to PdxInstance deserialization. (#575)
Fixes a bug where, when issuing two get() requests back-to-back for the same key, the second result returned is a PdxWrapper object with a shared pointer to null.
> __GEMFIRE_JSON PDX type has invalid PdxType
> -------------------------------------------
>
> Key: GEODE-7794
> URL: https://issues.apache.org/jira/browse/GEODE-7794
> Project: Geode
> Issue Type: Bug
> Components: native client
> Reporter: Matthew Reddington
> Priority: Major
> Time Spent: 50m
> Remaining Estimate: 0h
>
> The native client is built on the presumption that class name is unique. Since the introduction of __GEMFIRE_JSON, that is no longer the case. Where the logic presumes it can use cached deserialization rules in the form of a PdxType, looked up by name, this is no longer the case.
>
> What we have observed is if a cache instance does not have a PdxType for a __GEMFIRE_JSON class instance, the first get and deserialization will succeed, but all subsequent gets will result in an empty PdxWrapper.
>
> Steps to reproduce:
> 1) Instantiate an instance of Cache.
> 2) Put a PDX value with class name __GEMFIRE_JSON.
> 3) Instantiate a second instance of Cache.
> 4) Use this cache to make two consecutive gets of the PDX value. Inspect the results.
>
> Observations:
> 1) The first get will succeed in returning an instance of PdxInstance with the expected fields and values as per step #2.
> 2) The second get will return a PdxWrapper of class name __GEMFIRE_JSON and a user object of null.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)