This looks good.
Did you consider adding asserts to the package private constructor?
> On 17 Oct 2016, at 04:17, Claes Redestad <claes.redes...@oracle.com> wrote:
> one partial cause for startup regressions due to jigsaw is related to creating
> URIs for the location of each module.
> By providing a package-private constructor we can avoid the time to scan and
> validate the URI, which takes a little time (executes ~80K bytecodes) but also
> pushes various methods over compilation thresholds during early startup,
> which more notably interferes with perceived startup.
> When looking at this I discovered that the existing methods in JavaNetAccess
> is no longer in use, and keeping the initialization in URLClassLoader forces
> added classloading and costly initialization no longer needed during normal
> bootstrap. Moving JavaNetAccess to URI seems like the natural choice.
> By exploiting the lazyness of URI.toString(), this patch also saves a few Kbs
> retained heap.