Do package-infos need to be reset between annotation processing rounds?
Liam Miller-Cushon
cushon at google.com
Tue Dec 5 23:39:18 UTC 2017
I have a question about the logic in JavacProcessingEnvironment's
treeCleaner that resets package-info state between annotation processing
rounds [1].
JDK-8193037 describes an issue where package-infos loaded from the
classpath are reset by treeCleaner. Those symbols doesn't get reinitialized
correctly, and package annotations are not visible during subsequent
annotation processing rounds.
I wondered if the logic was only meant to apply to package-infos being
compiled from source in the current compilation (similar to how
module-infos are handle by treeCleaner), but I'm having trouble
understanding when that logic is necessary. Commenting out
`node.packge.package_info.reset();` and `node.packge.reset();` in
treeCleaner doesn't break any jtreg tests. Does anyone have examples where
that code is needed? I'd like to add a regression test to ensure the fix
for JDK-8193037 doesn't interfere with the original purpose of that code.
Thanks,
[1]
http://hg.openjdk.java.net/jdk/jdk/file/a358ebcfacfb/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java#l1518
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/compiler-dev/attachments/20171205/f7cb6efa/attachment.html>
More information about the compiler-dev
mailing list