RFR: 8256480: Refactor ObjectInputStream field reader implementation
Roger Riggs
rriggs at openjdk.java.net
Wed Nov 18 17:39:06 UTC 2020
ObjectInputStream has nearly identical but separate implementations to read values from the stream.
Both implementations read primitive and object values from the stream and return an object holding the values.
OIS.readFields() uses the internal class GetFieldImpl while OIS.defaultReadObject and reading records uses the internal class FieldValues.
The behavioral difference between the two is whether dependencies are tracked in the object handle table or not.
The classes are merged, retaining the internal FieldValues name and the behavior to track dependencies or not.
The constructor is passed the class descriptor and flag to track or not; it reads and saves the values from the stream.
The callers are updated to call the merge FieldValues methods.
There is no change in behavior; all current tests pass.
-------------
Commit messages:
- 8256480: Refactor ObjectInputStream field reader implementation
Changes: https://git.openjdk.java.net/jdk/pull/1296/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1296&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8256480
Stats: 157 lines in 1 file changed: 26 ins; 78 del; 53 mod
Patch: https://git.openjdk.java.net/jdk/pull/1296.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/1296/head:pull/1296
PR: https://git.openjdk.java.net/jdk/pull/1296
More information about the core-libs-dev
mailing list