RFR: 8248001: javadoc generates invalid HTML pages whose ftp:// links are broken

Daniel Fuchs dfuchs at openjdk.java.net
Fri Aug 20 11:44:25 UTC 2021


On Fri, 20 Aug 2021 11:22:07 GMT, Daniel Fuchs <dfuchs at openjdk.org> wrote:

>> src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java line 1703:
>> 
>>> 1701:             return text;
>>> 1702:         }
>>> 1703:         if (text.matches("^[^:/?#]+:.+$")) {
>> 
>> Why not use `java.net.URI` API to determine if the link contains a scheme?
>
> I assume the link is in an HTML document and goes in an HTML document. If you wanted to use java.net.URI, depending on where from `text` comes from and whereto it goes, you might need first to decode it using URLDecoder, and then you might need to re-encode it before spitting it out... That's a lot of operations where things could go wrong, especially if the link contains a query string.

That said a stricter regexp (unless I'm mistaken) could be: `^[a-zA-Z][a-zA-Z0-9+-.]*:.*$`
[ from RFC 2396:     scheme        = alpha *( alpha | digit | "+" | "-" | "." ) ]

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

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


More information about the javadoc-dev mailing list