On 14/12/2020 20:05, Benjamin Marwell wrote:
Hello all,
it caught my attention that doclint functionality was moved to the
jdk.javadoc module [1].
Now, when calling ToolProvider.getSystemJavaCompiler().getTask(…), the
presence of the option '-Xdoclint:-missing' and similar options will throw
this exception [2]:
java.lang.IllegalArgumentException: error: invalid flag:
-Xdoclint:-missing.
This call is being used in Apache Maven, and the Apache Zookeper project
already suffers from this issue and reported it upstream [3].
Adding the modules to the maven script 'mvn' did not help. But when calling
javac as an external tool (i.e. not via ToolProvider in the same process),
the options are being recognized.
I wonder how the doclint options can be made available to
the ToolProvider.getSystemJavaCompiler().getTask(…) call again.
Maven itself (and in this case: the compiler plugin) is, as you know, a
non-modular project.
I think the Plexus Classworlds launcher sets a funky TCCL that impacts
the ServiceLoader lookup of DocLint providers. Can the ServiceLoader
usage in DocLint be changed to use the system class loader rather than
the TCCL to see if that "fixes it"?
-Alan.