Initial webrev with changes for JDK 9

Peter Levart peter.levart at gmail.com
Wed Mar 16 17:30:13 UTC 2016


Hi Alan,

Just one nit.

On 03/16/2016 09:30 AM, Alan Bateman wrote:
>
> I've refreshed the webrevs here:
> http://cr.openjdk.java.net/~alanb/8142968/3
>

In java.lang.ClassLoader:

...the package-private definePackage(String name, Module m) is OK to use 
a single packages.compute(...) call performance-wise since it is 
pre-screened with packages.get() in public getDefinedPackage(String 
name) method. But there's also a package-private packages() method (a 
basis for public methods getPackages() and getDefinedPackages()) that 
constructs a Stream<Package> of defined Packages which unnecessarily 
calls definePackage() for each value of packages map:

     Stream<Package> packages() {
         return packages.values().stream()
                        .map(p -> definePackage(p.packageName(), 
p.module()));
     }


It would be nice performance-wise to avoid calling definePackage if the 
value is already a Package:

     Stream<Package> packages() {
         return packages.values().stream()
                        .map(p -> p instanceof Package
                                  ? (Package) p
                                  : definePackage(p.packageName(), 
p.module()));
     }


Regards, Peter



More information about the jigsaw-dev mailing list