RFR: 8147462: URI.toURL could be more efficient for most non-opaque URIs

Claes Redestad claes.redestad at oracle.com
Sun Jan 17 15:30:20 UTC 2016


Hi,

please review this patch which might make URI.toURL more efficient

Webrev: http://cr.openjdk.java.net/~redestad/8147462
Bug: https://bugs.openjdk.java.net/browse/JDK-8147462

This patch exploits the fact that URI will apply the same validation to 
the URI/URL specification for any valid non-opaque URL, thus it's safe 
to use the component-based URL constructor. Also, URIs representing 
malformed URLs will throw an exception as specified both before and 
after. A number of simple test cases to capture and document this was 
added to the existing java/net/URI/URItoURL jtreg test.

Microbenchmarks covering various URIs vary from neutral (for opaque) to 
1.5x (for the simplest URIs without query and fragment components), 
while also bringing in a small footprint improvement in jake builds.

While toURL() could arguably construct the URL file as 
path[?query][#fragment], the implementation I tried for this caused 
regressions in micros due to hitting C2 inlining limit.

Thanks!

/Claes


More information about the net-dev mailing list