RFR: JDK-8259530: Generated docs contain MIT/GPL-licenced works without reproducing the licence

Jonathan Gibbons jjg at openjdk.java.net
Wed May 12 23:47:01 UTC 2021


On Mon, 10 May 2021 19:57:41 GMT, Pavel Rappo <prappo at openjdk.org> wrote:

>> Please review a change for JavaDoc, for the Standard Doclet to copy legal header files into the generated docs from a default or designated directory.
>
> src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDoclet.java line 361:
> 
>> 359:                     try (OutputStream out = df.openOutputStream()) {
>> 360:                         Files.copy(entry, out);
>> 361:                     }
> 
> I'm surprised to see you using `Files.copy(Path source, OutputStream out)` instead of `DocFile.copyFile(DocFile)`.
> 
> Last time I suggested we use Files.copy instead of the DocFile.copyFile in jdk.javadoc, you argued that the latter is more helpful to an end-user:
> 
>> In terms of general philosophy, when any IO problem occurs, I think it is important to specify the file involved, to give the end-user the best information for that person to diagnose the external condition. To me, that is better and more specific than saying "error copying from A to B, something went wrong with one of them".

Yeah, good call.
It required some tweaks to `DocFile` and `DocFileFactory` to make it happen, but it's a move in the right direction.

`DocFileFactory` used to be new and clever and encapsulated the different kinds of file system. Now, NIO is accepted and standard. I would still keep `DocFile` to encapsulate `Path` vs. `FileObject`, but there is potential cleanup to improve this part of the code, and (most notably) convert command-line options to use `Path` instead of `String` where that is appropriate.  But that is a different PR.

-------------

PR: https://git.openjdk.java.net/jdk/pull/3954


More information about the javadoc-dev mailing list