I have not looked at the changes in detail yet, but I think it is going in the 
right direction. Just a few comments:

> On 9 May 2015, at 00:00, Patrick Reinhart <patr...@reini.net> wrote:
> 
> diff -r 7101bcceb43d make/src/classes/build/tools/module/ModuleArchive.java
> --- a/make/src/classes/build/tools/module/ModuleArchive.java  Thu May 07 
> 10:19:34 2015 -0700
> +++ b/make/src/classes/build/tools/module/ModuleArchive.java  Sat May 09 
> 00:45:32 2015 +0200
> @@ -186,7 +186,7 @@
>                     switch (section) {
>                         case CLASSES:
>                             if (!filename.startsWith("_the.") && 
> !filename.equals("javac_state"))
> -                                writeEntry(in);
> +                                in.transferTo(out);
>                             break;
>                         case LIBS:
>                             writeEntry(in, destFile(nativeDir(filename), 
> filename));
> @@ -218,13 +218,6 @@
>             Files.copy(in, dstFile);
>         }
> 
> -        private void writeEntry(InputStream in) throws IOException {
> -            byte[] buf = new byte[8192];
> -            int n;
> -            while ((n = in.read(buf)) > 0)
> -                out.write(buf, 0, n);
> -        }
> -
>         private static String nativeDir(String filename) {
>             if (System.getProperty("os.name").startsWith("Windows")) {
>                 if (filename.endsWith(".dll") || filename.endsWith(".diz”)

This is an internal build tool, and compiles with the boot JDK, 8, so cannot 
use a new 9 API.

> diff -r 7101bcceb43d 
> src/java.base/share/classes/jdk/internal/jrtfs/JrtPath.java
> --- a/src/java.base/share/classes/jdk/internal/jrtfs/JrtPath.java     Thu May 
> 07 10:19:34 2015 -0700
> +++ b/src/java.base/share/classes/jdk/internal/jrtfs/JrtPath.java     Sat May 
> 09 00:45:32 2015 +0200
> @@ -829,11 +829,7 @@
>             target.createDirectory();
>         } else {
>             try (InputStream is = jrtfs.newInputStream(getResolvedPath()); 
> OutputStream os = target.newOutputStream()) {
> -                byte[] buf = new byte[8192];
> -                int n;
> -                while ((n = is.read(buf)) != -1) {
> -                    os.write(buf, 0, n);
> -                }
> +                is.transferTo(os);
>             }
>         }
>         if (copyAttrs) {

The JRT file system needs to be able to run against 8, so should not use a new 
9 API.

-Chris.

Reply via email to