8297988: NPE in JavacTypes.getOverriddenMethods from doclint #11535
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.
There are a few cases where
javac
parses Java source code, reads some name from the AST, and throws it away. This is used e.g. when validatingexports
directive in themodule-info
, if there are no classfiles and no source files used in the current compilation from the given package,javac
will peek into the sources in the package, looking at their package clause[1]. The ASTs produced by such parses are thrown away/not part of the upcoming compilation.But, even parses like this are reported to the
TaskListener
s, and some of the listeners may expect that the AST is eventually attributed - but it is not, as it was used only to read some name from the source code. Specifically, for DocLint, this may lead to an NPE, but it may cause other issues as well.The proposal here is to simply avoid sending the "parse" event for parses that are not part of the actual compilation.
[1]
jdk/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java
Line 1040 in 84b927a
Progress
Issue
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk pull/11535/head:pull/11535
$ git checkout pull/11535
Update a local copy of the PR:
$ git checkout pull/11535
$ git pull https://git.openjdk.org/jdk pull/11535/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 11535
View PR using the GUI difftool:
$ git pr show -t 11535
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/11535.diff