Mario Salazar de Torres created GEODE-10276:
-----------------------------------------------
Summary: Refactor PDX (de)serialziation code to align it with Java
client
Key: GEODE-10276
URL: https://issues.apache.org/jira/browse/GEODE-10276
Project: Geode
Issue Type: Improvement
Components: native client
Reporter: Mario Salazar de Torres
Currently there are the following open issues regarding PDX (de)serialization:
* [GEODE-9968 - Fix deserialization for new fields in PdxSerializable
class|https://issues.apache.org/jira/browse/GEODE-9968]
* [GEODE-9753 - Coredump during PdxSerializable object
serialization|https://issues.apache.org/jira/browse/GEODE-9753]
* [GEODE-10220 - Coredump while initializing PdxType
remoteToLocal|https://issues.apache.org/jira/browse/GEODE-10220]
* [GEODE-10255 - PdxSerializable not working correctly for multiple versions
of the same class|https://issues.apache.org/jira/browse/GEODE-10255]
Also, the implementation on this ticket ([GEODE-8212: Reduce connections to
server to get type id|https://issues.apache.org/jira/browse/GEODE-8212]) poses
some issues with PDX entries which fields are a permutation. Thing is that
PdxTypes which fields are a permutation might use the wrong offsets, leading to
a corrupt serialization. This is something that was not taken into account at
the time of getting this PR merged.
So this ticket should be reverted and possibly an alternative solution proposed.
In order to tackle these issues, a code refactoring is needed to introduce the
following implementations:
* Single type of PdxWriter
* An implementation PdxReader that tracks unread data, and other that don't.
* An implementation for PdxInstances that guarantees that fields are actually
written in alphabetical order, independently of the writeFields call order.
This should tackle the issue described above regarding GEODE-8212.
* Also, it'd be ideal to make it so PDX code is cleaner and easier to
understand, though that's a complex matter, and also, subjective.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)