Hi Chris, > Am 10.05.2015 um 21:16 schrieb Chris Hegarty <chris.hega...@oracle.com>: > > 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 >> <mailto: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. >
I see. Seems that when I used a JDK 9 as boot JDK, it worked for me :-) Thanks for the input… >> 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. > Same as above… > -Chris. >