[ https://issues.apache.org/jira/browse/GEODE-10276?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17534346#comment-17534346 ]
ASF GitHub Bot commented on GEODE-10276: ---------------------------------------- gaussianrecurrence opened a new pull request, #969: URL: https://github.com/apache/geode-native/pull/969 - Code related to PDX de(serialization) has been refactored and aligned (in all possible means) to the Java client, solving the following issues: * GEODE-9968 - Fix deserialization for new fields in PdxSerializable class * GEODE-9753 - Coredump during PdxSerializable object serialization * GEODE-10220 - Coredump while initializing PdxType remoteToLocal * GEODE-10255 - PdxSerializable not working correctly for multiple versions of the same class - Reverted GEODE-8212, to solve potential issues during (de)serialization. This is due to the fact that the server orders PdxType fields sequentially, rather than alphabetically. - In order to achieve what was originally intended with GEODE-8212, now PdxInstances fields are written in alphabetical order, rather than in the order writeXX is called. - Also, code now should be easier to understand - Several tests modified to adapt to code changes - Added several UTs to further incrase coverage on PDX (de)serialization code. - Added several ITs to verify PDX (de)serialization scenarios. > 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 > Assignee: Mario Salazar de Torres > Priority: Major > > 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)