< 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 >