RFR 8144355: JDK 9 changes to ZipFileSystem to support multi-release jar files

Steve Drach steve.drach at oracle.com
Fri Dec 18 02:20:05 UTC 2015


Hi,

jprt found a bug in one of my tests when run on windows.  The fix is simple as you can see in the patch below.  I also took the opportunity to add a comment to a line in the source code.  Please let me know if these patches can be added to the changeset.

Thanks
Steve

diff --git a/src/jdk.zipfs/share/classes/jdk/nio/zipfs/JarFileSystem.java b/src/jdk.zipfs/share/classes/jdk/nio/zipfs/JarFileSystem.java
--- a/src/jdk.zipfs/share/classes/jdk/nio/zipfs/JarFileSystem.java
+++ b/src/jdk.zipfs/share/classes/jdk/nio/zipfs/JarFileSystem.java
@@ -55,7 +55,8 @@
 
     JarFileSystem(ZipFileSystemProvider provider, Path zfpath, Map<String,?> env) throws IOException {
         super(provider, zfpath, env);
-        lookup = path -> path;
+        lookup = path -> path;  // lookup needs to be set before isMultiReleaseJar is called because
+                                // it eventually calls getEntry0
         if (isMultiReleaseJar()) {
             int version;
             Object o = env.get("multi-release");
diff --git a/test/jdk/nio/zipfs/MultiReleaseJarTest.java b/test/jdk/nio/zipfs/MultiReleaseJarTest.java
--- a/test/jdk/nio/zipfs/MultiReleaseJarTest.java
+++ b/test/jdk/nio/zipfs/MultiReleaseJarTest.java
@@ -65,9 +65,15 @@
         creator.buildUnversionedJar();
         creator.buildMultiReleaseJar();
         creator.buildShortMultiReleaseJar();
-        uvuri = new URI("jar:file:" + userdir + "/unversioned.jar");
-        mruri = new URI("jar:file:" + userdir + "/multi-release.jar");
-        smruri = new URI("jar:file:" + userdir + "/short-multi-release.jar");
+        String udir;
+        if (System.getProperty("os.name").startsWith("Windows")) {
+            udir = "/" + userdir.replace('\\','/');
+        } else {
+            udir = userdir;
+        }
+        uvuri = new URI("jar:file:" + udir + "/unversioned.jar");
+        mruri = new URI("jar:file:" + udir + "/multi-release.jar");
+        smruri = new URI("jar:file:" + udir + "/short-multi-release.jar");
         entryName = className.replace('.', '/') + ".class";
     }

> Issue: https://bugs.openjdk.java.net/browse/JDK-8144355
> 
> Change to modules.xml: http://cr.openjdk.java.net/~sdrach/8144355/top/webrev.01/index.html
> 
> Changes to ZipFileSystem: http://cr.openjdk.java.net/~sdrach/8144355/jdk/webrev.01/index.html

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/nio-dev/attachments/20151217/21fbf4e4/attachment.html>


More information about the nio-dev mailing list