8344188: Cleanup sun.net.www.protocol.jar.JarFileFactory after JEP 486 integration
Reviewed-by: jpai, dfuchs
This commit is contained in:
parent
ba39321902
commit
5e2760856c
@ -31,7 +31,6 @@ import java.net.URL;
|
|||||||
import java.net.URLConnection;
|
import java.net.URLConnection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.jar.JarFile;
|
import java.util.jar.JarFile;
|
||||||
import java.security.Permission;
|
|
||||||
|
|
||||||
import jdk.internal.util.OperatingSystem;
|
import jdk.internal.util.OperatingSystem;
|
||||||
import sun.net.util.URLUtil;
|
import sun.net.util.URLUtil;
|
||||||
@ -219,35 +218,7 @@ class JarFileFactory implements URLJarFile.URLJarFileCloseController {
|
|||||||
|
|
||||||
private JarFile getCachedJarFile(URL url) {
|
private JarFile getCachedJarFile(URL url) {
|
||||||
assert Thread.holdsLock(instance);
|
assert Thread.holdsLock(instance);
|
||||||
JarFile result = fileCache.get(urlKey(url));
|
return fileCache.get(urlKey(url));
|
||||||
|
|
||||||
/* if the JAR file is cached, the permission will always be there */
|
|
||||||
if (result != null) {
|
|
||||||
@SuppressWarnings("removal")
|
|
||||||
SecurityManager sm = System.getSecurityManager();
|
|
||||||
if (sm != null) {
|
|
||||||
Permission perm = getPermission(result);
|
|
||||||
if (perm != null) {
|
|
||||||
try {
|
|
||||||
sm.checkPermission(perm);
|
|
||||||
} catch (SecurityException se) {
|
|
||||||
// fallback to checkRead/checkConnect for pre 1.2
|
|
||||||
// security managers
|
|
||||||
if ((perm instanceof java.io.FilePermission) &&
|
|
||||||
perm.getActions().contains("read")) {
|
|
||||||
sm.checkRead(perm.getName());
|
|
||||||
} else if ((perm instanceof
|
|
||||||
java.net.SocketPermission) &&
|
|
||||||
perm.getActions().contains("connect")) {
|
|
||||||
sm.checkConnect(url.getHost(), url.getPort());
|
|
||||||
} else {
|
|
||||||
throw se;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private String urlKey(URL url) {
|
private String urlKey(URL url) {
|
||||||
@ -255,16 +226,4 @@ class JarFileFactory implements URLJarFile.URLJarFileCloseController {
|
|||||||
if ("runtime".equals(url.getRef())) urlstr += "#runtime";
|
if ("runtime".equals(url.getRef())) urlstr += "#runtime";
|
||||||
return urlstr;
|
return urlstr;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Permission getPermission(JarFile jarFile) {
|
|
||||||
try {
|
|
||||||
URLConnection uc = getConnection(jarFile);
|
|
||||||
if (uc != null)
|
|
||||||
return uc.getPermission();
|
|
||||||
} catch (IOException ioe) {
|
|
||||||
// gulp
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user