Bug#893547: ant: please do not emit --ignore-source-errors on Java 9
tony mancill
tmancill at debian.org
Wed Mar 21 05:48:14 UTC 2018
On Tue, Mar 20, 2018 at 08:51:32AM +0100, Ole Streicher wrote:
Hello Ole,
> On 20.03.2018 05:20, tony mancill wrote:
> > I'm in the midst of preparing an update for ant. Is there any context
> > in which we want to add "--ignore-source-errors" to the ant javadoc
> > task, or should this patch [1] be removed entirely?
> >
>
> I am not familar with ant, so I can't recommend here. The failure seems
> to not generally appear, but only on specific targets.
>
> This is the snippet that produces the error:
>
> <javadoc doclet="uk.ac.starlink.ttools.build.HtmlDoclet"
> docletpathref="classpath"
> failonerror="true"
> public="true"
> additionalparam="-headings"
> destdir="${build.javadocs}"
> sourcepath="${java.dir}"
> packagenames="uk.ac.starlink.ttools.func"
> classpathref="classpath"
> encoding="cp1252"/>
>
> while this one (from another package, starjava-pal) works fine:
>
> <javadoc useexternalfile="yes"
> destdir="${dist.javadocs}"
> author="true"
> version="true"
> locale="en"
> windowtitle="${Name} API"
> doctitle="${Name}"
> defaultexcludes="yes"
> source="${source.version}"
> classpathref="classpath">
>
> So, it may have something to do with the doclet.
You're definitely onto something here - thank you for the research. I
enabled debug logging for maven and built checkstyle to get the full
invocation of javadoc command that fails, and it also uses doclet.
If I run those same command arguments sans the options related to doclet
(-doclet, -docletpath, and -destfile), but still including
--ignore-source-errors, and the javadoc invocation is successful.
So, the bug seems to belong to the JDK and not to ant, very possibly in
here [1]. I haven't tracked it down entirely yet, but I can reproduce
the same behavior with --dump-on-error, which is another "HIDDEN"
option. I think ToolOption.get() [2] probably returns null (because the
option is hidden) and so we end up here [3], passing false for
isToolOption to handleDocletOptions() when we need for it to be true.
Perhaps the developer who added --ignore-source-errors and
--dump-on-error didn't realize that the parser can't handle hidden
options that don't start with '-XD'?
In any event, that's all based on static analysis of the code. It'll
take me a bit of time to verify and come up with a patch for the JDK.
In the meantime, I don't know how many FTBFS problems it might cause if
we reverted the --ignore-source-errors patch from ant, so I'm not sure
whether we should change the current behavior or not.
Cheers,
tony
[1] https://github.com/dmlloyd/openjdk/blob/zlib-bytebuffer-v9/src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/Start.java#L795-L820
[2] https://github.com/dmlloyd/openjdk/blob/zlib-bytebuffer-v9/src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/Start.java#L795-L796
[3] https://github.com/dmlloyd/openjdk/blob/zlib-bytebuffer-v9/src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/Start.java#L819-L820
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-java-maintainers/attachments/20180320/bc91d6dd/attachment-0001.sig>
More information about the pkg-java-maintainers
mailing list