RFR: 8152818: Javadoc must support module options supported by javac.
Martin Buchholz
martinrb at google.com
Sat Apr 16 22:51:07 UTC 2016
If I try to pull in @inheritDoc sources using -sourcepath instead of
-modulesourcepath, I get
java/util/ArrayPrefixHelpers.java:7: error: illegal combination of
-Xmodule and module-info on classpath
package java.util;
^
java.lang.AssertionError
at com.sun.tools.javac.util.Assert.error(jdk.compiler at 9-internal/Assert.java:155)
at com.sun.tools.javac.util.Assert.checkNull(jdk.compiler at 9-internal/Assert.java:54)
at com.sun.tools.javac.code.Symtab.enterModule(jdk.compiler at 9-internal/Symtab.java:755)
at com.sun.tools.javac.comp.Modules.enterModule(jdk.compiler at 9-internal/Modules.java:257)
at com.sun.tools.javac.comp.Modules.enterModules(jdk.compiler at 9-internal/Modules.java:235)
at com.sun.tools.javac.comp.Modules.enter(jdk.compiler at 9-internal/Modules.java:203)
at com.sun.tools.javac.main.JavaCompiler.readSourceFile(jdk.compiler at 9-internal/JavaCompiler.java:816)
at com.sun.tools.javac.main.JavaCompiler.readSourceFile(jdk.compiler at 9-internal/JavaCompiler.java:778)
at com.sun.tools.javac.main.JavaCompiler.access$100(jdk.compiler at 9-internal/JavaCompiler.java:97)
at com.sun.tools.javac.main.JavaCompiler$1.complete(jdk.compiler at 9-internal/JavaCompiler.java:339)
at com.sun.tools.javac.code.ClassFinder.fillIn(jdk.compiler at 9-internal/ClassFinder.java:362)
at com.sun.tools.javac.code.ModuleFinder.lambda$findSingleModule$0(jdk.compiler at 9-internal/ModuleFinder.java:206)
at com.sun.tools.javac.code.Symbol.complete(jdk.compiler at 9-internal/Symbol.java:602)
at com.sun.tools.javac.comp.Modules.setCompilationUnitModules(jdk.compiler at 9-internal/Modules.java:361)
at com.sun.tools.javac.comp.Modules.enter(jdk.compiler at 9-internal/Modules.java:205)
at jdk.javadoc.internal.tool.JavadocTool.getEnvironment(jdk.javadoc at 9-internal/JavadocTool.java:190)
at jdk.javadoc.internal.tool.Start.parseAndExecute(jdk.javadoc at 9-internal/Start.java:403)
at jdk.javadoc.internal.tool.Start.begin(jdk.javadoc at 9-internal/Start.java:276)
at jdk.javadoc.internal.tool.Start.begin(jdk.javadoc at 9-internal/Start.java:222)
at jdk.javadoc.internal.tool.Main.execute(jdk.javadoc at 9-internal/Main.java:70)
at jdk.javadoc.internal.tool.Main.main(jdk.javadoc at 9-internal/Main.java:52)
It's not completely clear to me that the combination should be a fatal error.
The module-info is found on the sourcepath, not the classpath; that
seems like a BUG in the message text.
Of course the AssertionError is also a BUG.
#!/bin/bash
set -eu
JDKSRC=/home/martin/ws/jdk9-dev
JDK=$JDKSRC/build/linux-x86_64-normal-server-release/images/jdk
DIR=bug3
rm -rf $DIR
cvs -Q -d ':pserver:anonymous:@gee.cs.oswego.edu/home/jsr166/jsr166'
checkout -d $DIR jsr166/src/main
cd $DIR
find -name '*.java' |
xargs perl -0777 -pi -e 's~sun\.(reflect|misc)~jdk.internal.$1~g'
exec $JDK/bin/javadoc \
-d docs \
-Xdoclint:all \
-Xmodule:java.base \
-sourcepath "$JDKSRC/jdk/src/java.base/share/classes" \
-Xdocrootparent http://docs.oracle.com/javase/9/docs \
-tag 'jls:a:See <cite> The Java™ Language Specification</cite>:' \
-tag 'implSpec:a:Implementation Requirements:' \
-tag 'implNote:a:Implementation Note:' \
$(find java -name '*.java')
More information about the javadoc-dev
mailing list