working around the deprecation of public URL constructors (JDK-8294241)
Alan Bateman
Alan.Bateman at oracle.com
Thu Dec 15 20:24:42 UTC 2022
On 15/12/2022 19:14, Rick Hillegas wrote:
>
> I see many warnings when I build Apache Derby's code and javadoc with
> Open JDK build 20-ea+27-2213. In particular, I see a number of
> warnings introduced by the following change:
>
> - JDK-8294241: Deprecate URL public constructors
>
> I naively tried to fix these warnings by changing instances of
>
> new URL(urlString)
>
>
> to
>
> (new URI(urlString)).toURL()
>
>
> Unfortunately, this breaks the Derby code. When I test Derby, I see
> errors like the following:
>
> java.lang.IllegalArgumentException: URI is not absolute
> at java.base/java.net.URL.of(URL.java:854)
> at java.base/java.net.URI.toURL(URI.java:1144)
> at org.apache.derby.impl.store.raw.RawStore.backup(RawStore.java:641)
>
> Can you give me advice about the best way to workaround the
> deprecation of the public URL constructors? I am looking for a
> solution which handles relative URL strings.
>
URL::toURL is specified to throw if the URI is not absolute although the
IAE may be a bit surprising as there isn't any arguments.
Can you give an example of the "relative URL strings" so we can at least
see which URI scheme this is.
-Alan.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/net-dev/attachments/20221215/7a9ca338/attachment.htm>
More information about the net-dev
mailing list