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.
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.