jdk/src/java.base/share/classes/jdk/internal/loader/URLClassPath.java
changeset 37593 824750ada3d6
parent 36745 51effd3e92d0
child 37781 71ed5645f17c
equal deleted inserted replaced
37592:c80f098887f4 37593:824750ada3d6
    50 import java.util.HashMap;
    50 import java.util.HashMap;
    51 import java.util.HashSet;
    51 import java.util.HashSet;
    52 import java.util.LinkedList;
    52 import java.util.LinkedList;
    53 import java.util.List;
    53 import java.util.List;
    54 import java.util.NoSuchElementException;
    54 import java.util.NoSuchElementException;
       
    55 import java.util.Properties;
    55 import java.util.Set;
    56 import java.util.Set;
    56 import java.util.Stack;
    57 import java.util.Stack;
    57 import java.util.StringTokenizer;
    58 import java.util.StringTokenizer;
    58 import java.util.jar.JarFile;
    59 import java.util.jar.JarFile;
    59 import java.util.zip.ZipEntry;
    60 import java.util.zip.ZipEntry;
    67 import jdk.internal.misc.SharedSecrets;
    68 import jdk.internal.misc.SharedSecrets;
    68 import jdk.internal.util.jar.InvalidJarIndexError;
    69 import jdk.internal.util.jar.InvalidJarIndexError;
    69 import jdk.internal.util.jar.JarIndex;
    70 import jdk.internal.util.jar.JarIndex;
    70 import sun.net.util.URLUtil;
    71 import sun.net.util.URLUtil;
    71 import sun.net.www.ParseUtil;
    72 import sun.net.www.ParseUtil;
       
    73 import sun.security.action.GetPropertyAction;
    72 
    74 
    73 /**
    75 /**
    74  * This class is used to maintain a search path of URLs for loading classes
    76  * This class is used to maintain a search path of URLs for loading classes
    75  * and resources from both JAR files and directories.
    77  * and resources from both JAR files and directories.
    76  *
    78  *
    77  * @author  David Connelly
    79  * @author  David Connelly
    78  */
    80  */
    79 public class URLClassPath {
    81 public class URLClassPath {
    80     private static final String USER_AGENT_JAVA_VERSION = "UA-Java-Version";
    82     private static final String USER_AGENT_JAVA_VERSION = "UA-Java-Version";
    81     private static final String JAVA_HOME;
       
    82     private static final String JAVA_VERSION;
    83     private static final String JAVA_VERSION;
    83     private static final boolean DEBUG;
    84     private static final boolean DEBUG;
    84     private static final boolean DISABLE_JAR_CHECKING;
    85     private static final boolean DISABLE_JAR_CHECKING;
    85 
    86 
    86     static {
    87     static {
    87         JAVA_HOME = java.security.AccessController.doPrivileged(
    88         Properties props = GetPropertyAction.getProperties();
    88             new sun.security.action.GetPropertyAction("java.home"));
    89         JAVA_VERSION = props.getProperty("java.version");
    89         JAVA_VERSION = java.security.AccessController.doPrivileged(
    90         DEBUG = (props.getProperty("sun.misc.URLClassPath.debug") != null);
    90             new sun.security.action.GetPropertyAction("java.version"));
    91         String p = props.getProperty("sun.misc.URLClassPath.disableJarChecking");
    91         DEBUG        = (java.security.AccessController.doPrivileged(
       
    92             new sun.security.action.GetPropertyAction("sun.misc.URLClassPath.debug")) != null);
       
    93         String p = java.security.AccessController.doPrivileged(
       
    94             new sun.security.action.GetPropertyAction("sun.misc.URLClassPath.disableJarChecking"));
       
    95         DISABLE_JAR_CHECKING = p != null ? p.equals("true") || p.equals("") : false;
    92         DISABLE_JAR_CHECKING = p != null ? p.equals("true") || p.equals("") : false;
    96     }
    93     }
    97 
    94 
    98     /* The original search path of URLs. */
    95     /* The original search path of URLs. */
    99     private ArrayList<URL> path = new ArrayList<>();
    96     private ArrayList<URL> path = new ArrayList<>();