@Override public String getURL(String entry) { StringBuilder result = new StringBuilder("jar:"); result.append(getJarFileURL().toExternalForm()); result.append("!/"); result.append(entry); return result.toString(); }
@Override public InputStream getInputStream(String name) throws IOException { gotoEntry(name); if (entry == null) { return null; } else { // Clear the entry so that multiple calls to this method for the // same entry will result in a new InputStream for each call // (BZ 60798) entry = null; return jarInputStream; } }
@Override public void reset() throws IOException { closeStream(); entry = null; jarInputStream = createJarInputStream(); // Only perform multi-release processing on first access if (multiRelease == null) { if (JreCompat.isJre9Available()) { Manifest manifest = jarInputStream.getManifest(); if (manifest == null) { multiRelease = Boolean.FALSE; } else { String mrValue = manifest.getMainAttributes().getValue("Multi-Release"); if (mrValue == null) { multiRelease = Boolean.FALSE; } else { multiRelease = Boolean.valueOf(mrValue); } } } else { multiRelease = Boolean.FALSE; } if (multiRelease.booleanValue()) { if (mrMap == null) { populateMrMap(); } } } }
closeStream(); jarInputStream = createJarInputStream();
@Override public Manifest getManifest() throws IOException { reset(); return jarInputStream.getManifest(); }
@Override public void reset() throws IOException { closeStream(); entry = null; jarInputStream = createJarInputStream(); // Only perform multi-release processing on first access if (multiRelease == null) { if (JreCompat.isJre9Available()) { Manifest manifest = jarInputStream.getManifest(); if (manifest == null) { multiRelease = Boolean.FALSE; } else { String mrValue = manifest.getMainAttributes().getValue("Multi-Release"); if (mrValue == null) { multiRelease = Boolean.FALSE; } else { multiRelease = Boolean.valueOf(mrValue); } } } else { multiRelease = Boolean.FALSE; } if (multiRelease.booleanValue()) { if (mrMap == null) { populateMrMap(); } } } }
closeStream(); jarInputStream = createJarInputStream();
@Override public Manifest getManifest() throws IOException { reset(); return jarInputStream.getManifest(); }
@Override public boolean exists(String name) throws IOException { gotoEntry(name); return entry != null; }
@Override public String getURL(String entry) { StringBuilder result = new StringBuilder("jar:"); result.append(getJarFileURL().toExternalForm()); result.append("!/"); result.append(entry); return result.toString(); }
@Override public InputStream getInputStream(String name) throws IOException { gotoEntry(name); if (entry == null) { return null; } else { // Clear the entry so that multiple calls to this method for the // same entry will result in a new InputStream for each call // (BZ 60798) entry = null; return jarInputStream; } }
if (jarInputStream == null) { try { reset(); } catch (IOException e) { entry = null;
@Override public long getLastModified(String name) throws IOException { gotoEntry(name); if (entry == null) { return -1; } else { return entry.getTime(); } }
if (jarInputStream == null) { try { reset(); } catch (IOException e) { entry = null;
@Override public long getLastModified(String name) throws IOException { gotoEntry(name); if (entry == null) { return -1; } else { return entry.getTime(); } }