Rewrite Java Doc logic with JDK 17 compatible APIs#902
Open
JoeJoe1989 wants to merge 5 commits intolinkedin:masterfrom
Open
Rewrite Java Doc logic with JDK 17 compatible APIs#902JoeJoe1989 wants to merge 5 commits intolinkedin:masterfrom
JoeJoe1989 wants to merge 5 commits intolinkedin:masterfrom
Conversation
… spec. Fixing it to not override the content-length if the request is HEADER type.
It is possible to cause a `ConcurrentModificationException` in the `RequestContext` because we synchronize it by using `Collections.synchronizedMap()`, which only synchronizes individual reads/writes. When making a `RequestContext` copy we must iterate over the collection, allowing other threads to interrupt it by modifying the map during the operation. This fix synchronizes the whole copy operation as well. The default mutex used for synchronizing in a `SynchronizedMap` is `this`, so synchronizing on the map itself guards against modification.
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.
Currently RestLi is using com.sun.javadoc APIs to generate Java Doc. However these APIs are removed in JDK 17, making RestLi and its consumers incompatible with JDK 17. This PR aims to address the issue by rewriting Java Doc related logic with JDK 17 compatible APIs based on migration doc.
Given that the current RestLi is built in JDK 8 while the replacement APIs were introduced in JDK 9 (and remain compatible through JDK 17), we would need to build RestLi in newer JDK version to leverage the replacement APIs. More specifically, JDK 11 is chosen for the build since it is the next LTS version after JDK 9. This would also require a major version bump of RestLi because of the use of APIs after JDK 8 and the resulting compatibility with JDK 8 consumers.
Build passed locally:
Also tested the local snapshot of RestLi against Java 11 and Java 17 consumers.