Repository navigation
fix(java): copy non-serializable JDK objects by reference - #4179
Open
itsCodeTide wants to merge 1 commit into
Open
itsCodeTide wants to merge 1 commit into
itsCodeTide wants to merge 1 commit into
Conversation
1 of 2 tasks
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why?
Fory.copycurrently fails when an object graph contains a non-serializable JDK object such asjava.lang.Package. Copy and serialization share serializer lookup, so the serializability guard rejects the type before the copy path can handle it.What does this PR do?
Packagecopies and for serialization still failing.Related issues
Fixes #2941
Related: #3797 is an open PR for the same issue with a field-copy approach. This PR instead preserves the opaque JDK object by identity.
AI Contribution Checklist
yes029ca6a834e1ca71c3c335594611b28c16740088; neither found actionable issues.AI Usage Disclosure
fory-coreresolver, serializer, GraalVM serializer metadata, and copy tests029ca6a834e1ca71c3c335594611b28c16740088reported no actionable findings./root/fory_review, reviewed029ca6a834e1ca71c3c335594611b28c16740088: “No actionable findings.”/root/independent_review, reviewed029ca6a834e1ca71c3c335594611b28c16740088: “No actionable correctness, edge-case, maintainability, or test-quality findings.”ForyCopyTest(12 passed), Spotless (passed), and Checkstyle (0 violations). The completefory-coresuite ran 2,348 tests and had 17 failures on JDK 24, in collection, ObjectStream, and URL-copy cases; these have not been checked against the base branch. Contributor review is still required.Does this PR introduce any user-facing change?
Fory.copynow succeeds for graphs containing non-serializable JDK objects by retaining those objects by reference.Benchmark
N/A