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.

Reply via email to