void () { if (myClassPathManifestAttribute != null) return; synchronized (this) { try { if (myClassPathManifestAttribute != null) return; ZipFile zipFile = getZipFile(); try { Attributes manifestAttributes = null; ZipEntry entry = zipFile.getEntry(JarFile.MANIFEST_NAME); if (entry != null) { manifestAttributes = loadManifestAttributes(zipFile.getInputStream(entry)); } if (manifestAttributes == null) { manifestAttributes = new Attributes(0); } myAttributes = getAttributes(manifestAttributes); Object attribute = manifestAttributes.get(Attributes.Name.CLASS_PATH); myClassPathManifestAttribute = attribute instanceof String ? (String)attribute : NULL_STRING; } finally { releaseZipFile(zipFile); } } catch (IOException io) { throw new RuntimeException(io); } } }