< prev index next >

src/jdk.zipfs/share/classes/jdk/nio/zipfs/JarFileSystem.java

Print this page
rev 16859 : 8176709: JarFileSystem::isMultiReleaseJar is incorrect
Reviewed-by: mchung, psandoz, sherman

@@ -33,12 +33,11 @@
 import java.util.HashMap;
 import java.util.Map;
 import java.util.TreeMap;
 import java.util.function.Consumer;
 import java.util.function.Function;
-import java.util.jar.Attributes;
-import java.util.jar.Manifest;
+import jdk.internal.util.jar.JarAttributes;
 
 /**
  * Adds aliasing to ZipFileSystem to support multi-release jar files.  An alias map
  * is created by {@link JarFileSystem#createVersionedLinks(int)}.  The map is then
  * consulted when an entry is looked up in {@link JarFileSystem#getEntry(byte[])}

@@ -86,13 +85,12 @@
         }
     }
 
     private boolean isMultiReleaseJar() {
         try (InputStream is = newInputStream(getBytes("/META-INF/MANIFEST.MF"))) {
-            return (new Manifest(is)).getMainAttributes()
-                    .containsKey(new Attributes.Name("Multi-Release"));
-            // fixme change line above after JarFile integration to contain Attributes.Name.MULTI_RELEASE
+            byte[] manifest = is.readAllBytes();
+            return JarAttributes.isMultiRelease(manifest);
         } catch (IOException x) {
             return false;
         }
     }
 
< prev index next >