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)