#1089013 javadoc: API documentation builds are not always reproducible

Package:
openjdk-21-jdk-headless
Source:
openjdk-21-jdk-headless
Description:
OpenJDK Development Kit (JDK) (headless)
Submitter:
Julien Plissonneau Duquène
Date:
2026-07-06 17:45:43 UTC
Severity:
normal
Tags:
#1089013#5
Date:
2024-12-04 10:22:36 UTC
From:
To:
Dear Maintainers,

While investigating reprotest failures [1] on the -java-doc package of a
proposed package update I discovered that:
- libmaven-javadoc-plugin-java generates a package list (@packages argument to
javadoc) with an ordering that varies depending on filesystem ordering; as that
file is not included in the resulting package that alone would not be an issue
- javadoc output may vary depending on the ordering of the package list.

These variations are less frequent with the JDK 21 than they used to be with
older JDKs, but will still happen:

5f4ad089a54c30206c989b2fe73f48f6  ttt/04/index-all.html
5f4ad089a54c30206c989b2fe73f48f6  ttt/08/index-all.html
5f4ad089a54c30206c989b2fe73f48f6  ttt/16/index-all.html
5f4ad089a54c30206c989b2fe73f48f6  ttt/19/index-all.html
a13049d2cfbbc2e4bb0024c69ae3530b  ttt/01/index-all.html
a13049d2cfbbc2e4bb0024c69ae3530b  ttt/02/index-all.html
a13049d2cfbbc2e4bb0024c69ae3530b  ttt/03/index-all.html
a13049d2cfbbc2e4bb0024c69ae3530b  ttt/05/index-all.html
a13049d2cfbbc2e4bb0024c69ae3530b  ttt/06/index-all.html
a13049d2cfbbc2e4bb0024c69ae3530b  ttt/07/index-all.html
a13049d2cfbbc2e4bb0024c69ae3530b  ttt/10/index-all.html
a13049d2cfbbc2e4bb0024c69ae3530b  ttt/11/index-all.html
a13049d2cfbbc2e4bb0024c69ae3530b  ttt/13/index-all.html
a13049d2cfbbc2e4bb0024c69ae3530b  ttt/17/index-all.html
a13049d2cfbbc2e4bb0024c69ae3530b  ttt/18/index-all.html
a13049d2cfbbc2e4bb0024c69ae3530b  ttt/20/index-all.html
b204a6cd656213ca48115e5b65cde52f  ttt/09/index-all.html
b204a6cd656213ca48115e5b65cde52f  ttt/12/index-all.html
b204a6cd656213ca48115e5b65cde52f  ttt/14/index-all.html
b204a6cd656213ca48115e5b65cde52f  ttt/15/index-all.html
--- ttt/04/index-all.html       2024-12-04 09:23:51.542350370 +0000
+++ ttt/01/index-all.html       2024-12-04 09:23:31.906425220 +0000
@@ -176,7 +176,7 @@
 </dd>
 <dt><a href="com/esotericsoftware/kryo/io/ByteBufferInput.html#%3Cinit%3E()"
class="member-name-link">ByteBufferInput()</a> - Constructor for class
com.esotericsoftware.kryo.io.<a
href="com/esotericsoftware/kryo/io/ByteBufferInput.html" title="class in
com.esotericsoftware.kryo.io">ByteBufferInput</a></dt>
 <dd>
-<div class="block">Creates an uninitialized Input, <a
href="com/esotericsoftware/kryo/io/ByteBufferInput.html#setBuffer(java.nio.ByteBuffer)"><code>setBuffer(ByteBuffer)</code></a>
must be called before the Input is used.</div>
+<div class="block">Creates an uninitialized Input, <a
href="com/esotericsoftware/kryo/io/ByteBufferInput.html#setBuffer(java.nio.ByteBuffer)"><code>ByteBufferInput.setBuffer(ByteBuffer)</code></a>
must be called before the Input is used.</div>
 </dd>
 <dt><a
href="com/esotericsoftware/kryo/io/ByteBufferInput.html#%3Cinit%3E(byte%5B%5D)"
class="member-name-link">ByteBufferInput(byte[])</a> - Constructor for class
com.esotericsoftware.kryo.io.<a
href="com/esotericsoftware/kryo/io/ByteBufferInput.html" title="class in
com.esotericsoftware.kryo.io">ByteBufferInput</a></dt>
 <dd>

This issue can be reproduced using disorderfs, or just shuffling the packages
list before invoking javadoc.

I believe that this issue should be fixed in javadoc rather than the maven
plugin, but that the maven plugin should be fixed as well just in case (as this
will improve reproducibility with other unpatched JDKs). I will also file or
link upstream issues on both projects.

Best regards,

[1]: https://salsa.debian.org/jpd/libkryo-java/-/jobs/6672917

#1089013#12
Date:
2024-12-04 16:49:02 UTC
From:
To:
argument to
as that
issue
with
href="com/esotericsoftware/kryo/io/ByteBufferInput.html#%3Cinit%3E()"
href="com/esotericsoftware/kryo/io/ByteBufferInput.html#setBuffer(java.nio.ByteBuffer)"><code>setBuffer(ByteBuffer)</code></a>
href="com/esotericsoftware/kryo/io/ByteBufferInput.html#setBuffer(java.nio.ByteBuffer)"><code>ByteBufferInput.setBuffer(ByteBuffer)</code></a>
href="com/esotericsoftware/kryo/io/ByteBufferInput.html#%3Cinit%3E(byte%5B%5D)"
class
 Please give me win lottery for next lottery coming 🙏 Thank you so much ❤️

#1089013#17
Date:
2024-12-04 18:31:41 UTC
From:
To:
Forwarded to:
- dev@maven.apache.org:
https://lists.apache.org/thread/h4m2lfrvdj9tj92rjckclx8sxvbx6jth
- bugreport.java.com: internal review ID : 9077888 (not published yet).