public final class org.glassfish.web.loader.WebappClassLoader extends org.glassfish.common.util.GlassfishUrlClassLoader implements org.glassfish.web.loader.Reloader, org.glassfish.api.deployment.InstrumentableClassLoader, com.sun.enterprise.security.integration.DDPermissionsLoader, org.apache.naming.resources.JarFileResourcesProvider
{
public static final boolean DELEGATE_DEFAULT;
private static final java.lang.System$Logger LOG;
private static final java.util.function.Function PACKAGE_TO_PATH;
private static final java.lang.String WEB_INF_LIB;
private static final java.util.Set DELEGATED_PACKAGES;
private static final java.util.Set DELEGATED_RESOURCE_PATHS;
private static final java.lang.ThreadLocal BYTECODE_PREPROCESSING;
private static final java.lang.SecurityManager SECURITY_MANAGER;
private final org.glassfish.web.loader.ReferenceCleaner cleaner;
private final java.util.concurrent.ConcurrentHashMap resourceEntryCache;
private final java.util.Set notFoundResources;
private javax.naming.directory.DirContext jndiResources;
private boolean delegate;
private boolean antiJARLocking;
private final org.glassfish.web.loader.RepositoryManager repositoryManager;
private final org.glassfish.web.loader.JarFileManager jarFiles;
private final java.util.concurrent.ConcurrentLinkedQueue pathTimestamps;
private java.util.List jarNames;
private boolean packageDefinitionSecurityEnabled;
private final java.util.concurrent.ConcurrentLinkedQueue permissionList;
private com.sun.enterprise.security.integration.PermsHolder permissionsHolder;
private java.io.File loaderDir;
private final java.util.concurrent.ConcurrentHashMap loaderPC;
private final java.lang.ClassLoader system;
private org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus status;
private boolean hasExternalRepositories;
private final java.util.concurrent.ConcurrentLinkedQueue byteCodePreprocessors;
private boolean useMyFaces;
private java.util.Set overridablePackages;
private boolean clearReferencesStatic;
private java.lang.String contextName;
private java.util.List repositoryURLs;
public void <init>(java.lang.ClassLoader)
{
org.glassfish.web.loader.JarFileManager v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
java.util.ArrayList v;
java.net.URL[] v;
org.glassfish.web.loader.ReferenceCleaner v;
org.glassfish.web.loader.RepositoryManager v;
java.util.concurrent.ConcurrentHashMap v, v;
java.util.Set v;
java.lang.SecurityManager v;
java.util.concurrent.ConcurrentHashMap$KeySetView v;
com.sun.enterprise.security.integration.PermsHolder v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.Class v;
java.lang.ClassLoader v, v;
java.util.concurrent.ConcurrentLinkedQueue v, v, v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.ClassLoader;
v = newarray (java.net.URL)[0];
specialinvoke v.<org.glassfish.common.util.GlassfishUrlClassLoader: void <init>(java.net.URL[],java.lang.ClassLoader)>(v, v);
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentHashMap resourceEntryCache> = v;
v = staticinvoke <java.util.concurrent.ConcurrentHashMap: java.util.concurrent.ConcurrentHashMap$KeySetView newKeySet()>();
v.<org.glassfish.web.loader.WebappClassLoader: java.util.Set notFoundResources> = v;
v.<org.glassfish.web.loader.WebappClassLoader: boolean delegate> = 1;
v = new org.glassfish.web.loader.RepositoryManager;
specialinvoke v.<org.glassfish.web.loader.RepositoryManager: void <init>()>();
v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.RepositoryManager repositoryManager> = v;
v = new org.glassfish.web.loader.JarFileManager;
specialinvoke v.<org.glassfish.web.loader.JarFileManager: void <init>()>();
v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.JarFileManager jarFiles> = v;
v = new java.util.concurrent.ConcurrentLinkedQueue;
specialinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: void <init>()>();
v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentLinkedQueue pathTimestamps> = v;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<org.glassfish.web.loader.WebappClassLoader: java.util.List jarNames> = v;
v = new java.util.concurrent.ConcurrentLinkedQueue;
specialinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: void <init>()>();
v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentLinkedQueue permissionList> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentHashMap loaderPC> = v;
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus NEW>;
v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus status> = v;
v = new java.util.concurrent.ConcurrentLinkedQueue;
specialinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: void <init>()>();
v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentLinkedQueue byteCodePreprocessors> = v;
v = staticinvoke <java.util.Set: java.util.Set of()>();
v.<org.glassfish.web.loader.WebappClassLoader: java.util.Set overridablePackages> = v;
v.<org.glassfish.web.loader.WebappClassLoader: java.lang.String contextName> = "unknown";
v = new org.glassfish.web.loader.ReferenceCleaner;
specialinvoke v.<org.glassfish.web.loader.ReferenceCleaner: void <init>(org.glassfish.web.loader.WebappClassLoader)>(v);
v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.ReferenceCleaner cleaner> = v;
v = class "Lorg/glassfish/web/loader/WebappClassLoader;";
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
v.<org.glassfish.web.loader.WebappClassLoader: java.lang.ClassLoader system> = v;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.SecurityManager SECURITY_MANAGER>;
if v == null goto label;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void refreshPolicy()>();
label:
v = new com.sun.enterprise.security.integration.PermsHolder;
specialinvoke v.<com.sun.enterprise.security.integration.PermsHolder: void <init>()>();
v.<org.glassfish.web.loader.WebappClassLoader: com.sun.enterprise.security.integration.PermsHolder permissionsHolder> = v;
return;
}
public void setDelegate(boolean)
{
java.lang.System$Logger v;
java.lang.Object[] v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v, v;
java.lang.System$Logger$Level v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
java.lang.Boolean v;
org.glassfish.web.loader.WebappClassLoader v;
boolean v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: boolean;
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[2];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus NEW>;
v[0] = v;
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[1] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level DEBUG>;
v = newarray (java.lang.Object)[1];
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "setDelegate(delegate={0})", v);
v.<org.glassfish.web.loader.WebappClassLoader: boolean delegate> = v;
return;
}
public void setOverridablePackages(java.util.Set)
{
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
java.util.Set v;
org.glassfish.web.loader.WebappClassLoader v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v, v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.util.Set;
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[2];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus NEW>;
v[0] = v;
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[1] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v.<org.glassfish.web.loader.WebappClassLoader: java.util.Set overridablePackages> = v;
return;
}
public void setResources(javax.naming.directory.DirContext)
{
java.lang.System$Logger v;
java.lang.Object[] v;
javax.naming.directory.DirContext v, v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v, v;
java.lang.System$Logger$Level v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.String v;
boolean v, v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: javax.naming.directory.DirContext;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level DEBUG>;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "setResources(resources={0})", v);
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[2];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus NEW>;
v[0] = v;
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[1] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v.<org.glassfish.web.loader.WebappClassLoader: javax.naming.directory.DirContext jndiResources> = v;
v = v instanceof org.apache.naming.resources.ProxyDirContext;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.naming.resources.ProxyDirContext: java.lang.String getContextName()>();
v.<org.glassfish.web.loader.WebappClassLoader: java.lang.String contextName> = v;
v = virtualinvoke v.<org.apache.naming.resources.ProxyDirContext: javax.naming.directory.DirContext getDirContext()>();
goto label;
label:
v = v;
label:
v = v instanceof org.apache.naming.resources.WebDirContext;
if v == 0 goto label;
virtualinvoke v.<org.apache.naming.resources.WebDirContext: void setJarFileResourcesProvider(org.apache.naming.resources.JarFileResourcesProvider)>(v);
label:
return;
}
public void setAntiJARLocking(boolean)
{
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
org.glassfish.web.loader.WebappClassLoader v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
boolean v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: boolean;
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[1];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus NEW>;
v[0] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v.<org.glassfish.web.loader.WebappClassLoader: boolean antiJARLocking> = v;
return;
}
public void setPackageDefinitionSecurityEnabled(boolean)
{
java.lang.System$Logger v;
java.lang.Object[] v;
java.lang.IllegalArgumentException v;
java.lang.SecurityManager v;
java.lang.System$Logger$Level v;
java.lang.Boolean v;
org.glassfish.web.loader.WebappClassLoader v;
boolean v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: boolean;
if v == 0 goto label;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.SecurityManager SECURITY_MANAGER>;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("The Security Manager is disabled.");
throw v;
label:
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level DEBUG>;
v = newarray (java.lang.Object)[1];
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "setPackageDefinitionSecurityEnabled(enable={0})", v);
v.<org.glassfish.web.loader.WebappClassLoader: boolean packageDefinitionSecurityEnabled> = v;
return;
}
public void addPermission(java.net.URL)
{
java.net.URL v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.String v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v, v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.net.URL;
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[2];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus NEW>;
v[0] = v;
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[1] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
if v == null goto label;
v = virtualinvoke v.<java.net.URL: java.lang.String toString()>();
virtualinvoke v.<org.glassfish.web.loader.WebappClassLoader: void addPermission(java.lang.String)>(v);
label:
return;
}
public void addPermission(java.lang.String)
{
org.apache.naming.JndiPermission v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v, v;
java.io.FilePermission v, v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
java.lang.String v, v, v, v, v, v, v;
boolean v, v, v, v;
java.lang.SecurityManager v, v;
org.glassfish.web.loader.WebappClassLoader v;
java.util.concurrent.ConcurrentLinkedQueue v, v, v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[2];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus NEW>;
v[0] = v;
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[1] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
if v == null goto label;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.SecurityManager SECURITY_MANAGER>;
if v != null goto label;
label:
return;
label:
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.SecurityManager SECURITY_MANAGER>;
virtualinvoke v.<java.lang.SecurityManager: void checkSecurityAccess(java.lang.String)>("createPolicy.eepermissions");
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("jndi:");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("jar:jndi:");
if v == 0 goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>("/");
if v == 0 goto label;
v = v;
goto label;
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001/");
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentLinkedQueue permissionList>;
v = new org.apache.naming.JndiPermission;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001*");
specialinvoke v.<org.apache.naming.JndiPermission: void <init>(java.lang.String)>(v);
virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: boolean add(java.lang.Object)>(v);
goto label;
label:
v = <java.io.File: java.lang.String separator>;
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(v);
if v == 0 goto label;
v = v;
goto label;
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentLinkedQueue permissionList>;
v = new java.io.FilePermission;
specialinvoke v.<java.io.FilePermission: void <init>(java.lang.String,java.lang.String)>(v, "read");
virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: boolean add(java.lang.Object)>(v);
v = <java.io.File: java.lang.String separator>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001\u0001");
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentLinkedQueue permissionList>;
v = new java.io.FilePermission;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001-");
specialinvoke v.<java.io.FilePermission: void <init>(java.lang.String,java.lang.String)>(v, "read");
virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: boolean add(java.lang.Object)>(v);
label:
return;
}
public void addPermission(java.security.Permission)
{
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v, v;
java.lang.SecurityManager v, v;
java.security.Permission v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
org.glassfish.web.loader.WebappClassLoader v;
java.util.concurrent.ConcurrentLinkedQueue v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.security.Permission;
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[2];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus NEW>;
v[0] = v;
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[1] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.SecurityManager SECURITY_MANAGER>;
if v == null goto label;
if v == null goto label;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.SecurityManager SECURITY_MANAGER>;
virtualinvoke v.<java.lang.SecurityManager: void checkSecurityAccess(java.lang.String)>("createPolicy.eepermissions");
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentLinkedQueue permissionList>;
virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: boolean add(java.lang.Object)>(v);
label:
return;
}
public void addDeclaredPermissions(java.security.PermissionCollection) throws java.lang.SecurityException
{
java.security.PermissionCollection v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v, v;
java.lang.SecurityManager v, v;
com.sun.enterprise.security.integration.PermsHolder v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
org.glassfish.web.loader.WebappClassLoader v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.security.PermissionCollection;
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[2];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus NEW>;
v[0] = v;
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[1] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.SecurityManager SECURITY_MANAGER>;
if v == null goto label;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.SecurityManager SECURITY_MANAGER>;
virtualinvoke v.<java.lang.SecurityManager: void checkSecurityAccess(java.lang.String)>("createPolicy.eepermissions");
v = v.<org.glassfish.web.loader.WebappClassLoader: com.sun.enterprise.security.integration.PermsHolder permissionsHolder>;
virtualinvoke v.<com.sun.enterprise.security.integration.PermsHolder: void setDeclaredPermissions(java.security.PermissionCollection)>(v);
label:
return;
}
public void addEEPermissions(java.security.PermissionCollection) throws java.lang.SecurityException
{
java.security.PermissionCollection v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v, v;
java.lang.SecurityManager v, v;
com.sun.enterprise.security.integration.PermsHolder v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
org.glassfish.web.loader.WebappClassLoader v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.security.PermissionCollection;
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[2];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus NEW>;
v[0] = v;
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[1] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.SecurityManager SECURITY_MANAGER>;
if v == null goto label;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.SecurityManager SECURITY_MANAGER>;
virtualinvoke v.<java.lang.SecurityManager: void checkSecurityAccess(java.lang.String)>("createPolicy.eepermissions");
v = v.<org.glassfish.web.loader.WebappClassLoader: com.sun.enterprise.security.integration.PermsHolder permissionsHolder>;
virtualinvoke v.<com.sun.enterprise.security.integration.PermsHolder: void setEEPermissions(java.security.PermissionCollection)>(v);
label:
return;
}
public java.lang.String getLibJarPath()
{
org.glassfish.web.loader.WebappClassLoader v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
return "/WEB-INF/lib";
}
public void setWorkDir(java.io.File)
{
int v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.String v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
java.io.File v, v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.io.File;
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[1];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus NEW>;
v[0] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = new java.io.File;
v = virtualinvoke v.<java.lang.Object: int hashCode()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("loader_\u0001");
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
v.<org.glassfish.web.loader.WebappClassLoader: java.io.File loaderDir> = v;
return;
}
public void setUseMyFaces(boolean)
{
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
org.glassfish.web.loader.WebappClassLoader v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
boolean v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: boolean;
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[1];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus NEW>;
v[0] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v.<org.glassfish.web.loader.WebappClassLoader: boolean useMyFaces> = v;
return;
}
public void setClearReferencesStatic(boolean)
{
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
org.glassfish.web.loader.WebappClassLoader v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
boolean v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: boolean;
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[1];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus NEW>;
v[0] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v.<org.glassfish.web.loader.WebappClassLoader: boolean clearReferencesStatic> = v;
return;
}
public void addRepository(java.lang.String) throws java.lang.IllegalArgumentException
{
java.lang.System$Logger v;
java.lang.Object[] v;
java.net.MalformedURLException v;
java.net.URL v;
java.lang.IllegalArgumentException v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v, v;
java.lang.System$Logger$Level v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.String v, v;
boolean v, v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level DEBUG>;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "addRepository(repository={0})", v);
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[2];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus NEW>;
v[0] = v;
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[1] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("/WEB-INF/lib");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("/WEB-INF/classes");
if v == 0 goto label;
label:
return;
label:
v = new java.net.URL;
specialinvoke v.<java.net.URL: void <init>(java.lang.String)>(v);
specialinvoke v.<org.glassfish.common.util.GlassfishUrlClassLoader: void addURL(java.net.URL)>(v);
v.<org.glassfish.web.loader.WebappClassLoader: boolean hasExternalRepositories> = 1;
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Invalid repository: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
return;
catch java.net.MalformedURLException from label to label with label;
}
public void addRepository(java.lang.String, java.io.File)
{
java.lang.System$Logger v;
java.lang.Object[] v;
org.glassfish.web.loader.RepositoryManager v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
java.io.File v;
java.lang.System$Logger$Level v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.String v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v := @parameter: java.io.File;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level DEBUG>;
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "addRepository(repository={0}, file={1})", v);
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[1];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus NEW>;
v[0] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.RepositoryManager repositoryManager>;
virtualinvoke v.<org.glassfish.web.loader.RepositoryManager: void addRepository(java.lang.String,java.io.File)>(v, v);
return;
}
public void addJar(java.lang.String, java.io.File)
{
java.lang.Object[] v;
org.apache.naming.resources.ResourceAttributes v;
java.net.URL v;
org.glassfish.web.loader.JarFileManager v;
long v;
javax.naming.NamingException v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
java.lang.System$Logger$Level v, v;
int v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
java.lang.String v, v, v, v;
boolean v;
java.lang.System$Logger v, v;
org.glassfish.web.loader.WebappClassLoader$PathTimestamp v;
char v;
java.io.File v;
java.util.List v;
org.glassfish.web.loader.WebappClassLoader v;
java.util.concurrent.ConcurrentLinkedQueue v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v := @parameter: java.io.File;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level DEBUG>;
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "addJar(filePath={0}, file={1})", v);
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[1];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus NEW>;
v[0] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = staticinvoke <org.glassfish.web.loader.WebappClassLoader: java.net.URL toURL(java.io.File)>(v);
specialinvoke v.<org.glassfish.common.util.GlassfishUrlClassLoader: void addURL(java.net.URL)>(v);
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("/WEB-INF/lib");
if v == 0 goto label;
v = "/WEB-INF/lib";
v = virtualinvoke v.<java.lang.String: int length()>();
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
label:
v = virtualinvoke v.<java.lang.String: char charAt(int)>(0);
if v != 47 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(1);
goto label;
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.List jarNames>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: org.apache.naming.resources.ResourceAttributes getResourceAttributes(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.naming.resources.ResourceAttributes: long getLastModified()>();
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentLinkedQueue pathTimestamps>;
v = new org.glassfish.web.loader.WebappClassLoader$PathTimestamp;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader$PathTimestamp: void <init>(java.lang.String,long)>(v, v);
virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: boolean add(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level DEBUG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Could not get resource attributes from JNDI for \u0001");
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Throwable)>(v, v, v);
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.JarFileManager jarFiles>;
virtualinvoke v.<org.glassfish.web.loader.JarFileManager: void addJarFile(java.io.File)>(v);
return;
catch javax.naming.NamingException from label to label with label;
}
public void addTransformer(java.lang.instrument.ClassFileTransformer)
{
java.lang.instrument.ClassFileTransformer v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
org.glassfish.web.loader.WebappClassLoader$WebappBytecodePreprocessor v;
org.glassfish.web.loader.WebappClassLoader v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v, v;
java.util.concurrent.ConcurrentLinkedQueue v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.instrument.ClassFileTransformer;
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[2];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus NEW>;
v[0] = v;
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[1] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentLinkedQueue byteCodePreprocessors>;
v = new org.glassfish.web.loader.WebappClassLoader$WebappBytecodePreprocessor;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader$WebappBytecodePreprocessor: void <init>(java.lang.instrument.ClassFileTransformer,org.glassfish.web.loader.WebappClassLoader)>(v, v);
virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: boolean add(java.lang.Object)>(v);
return;
}
public void start()
{
java.lang.System$Logger v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v, v;
java.lang.System$Logger$Level v;
java.util.List v, v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
org.glassfish.web.loader.WebappClassLoader v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level DEBUG>;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String)>(v, "start()");
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[1];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus NEW>;
v[0] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.List jarNames>;
v = staticinvoke <java.util.Collections: java.util.List unmodifiableList(java.util.List)>(v);
v.<org.glassfish.web.loader.WebappClassLoader: java.util.List jarNames> = v;
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus status> = v;
return;
}
protected java.lang.Class findClass(java.lang.String) throws java.lang.ClassNotFoundException
{
byte[] v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
java.lang.Exception v;
java.lang.Throwable v, v, v, v;
java.lang.Object[] v, v, v, v, v;
org.glassfish.web.loader.ResourceEntry v;
java.lang.String v, v, v, v, v, v, v, v;
java.lang.RuntimeException v, v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.ClassNotFoundException v, v, v, v, v, v;
java.security.CodeSource v;
java.net.URL v;
java.lang.UnsupportedClassVersionError v, v;
java.lang.System$Logger$Level v, v, v, v;
boolean v, v, v, v, v, v;
java.lang.ThreadLocal v, v, v, v;
java.security.AccessControlException v, v;
java.security.cert.Certificate[] v;
java.util.concurrent.ConcurrentLinkedQueue v, v;
int v, v;
java.lang.Boolean v, v, v;
java.lang.System$Logger v, v, v, v;
java.util.Iterator v;
java.lang.SecurityManager v;
java.lang.Class v, v;
java.lang.Object v, v, v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level DEBUG>;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "findClass(name={0})", v);
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[1];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[0] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = v.<org.glassfish.web.loader.WebappClassLoader: boolean packageDefinitionSecurityEnabled>;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: int lastIndexOf(int)>(46);
if v < 0 goto label;
label:
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.SecurityManager SECURITY_MANAGER>;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
virtualinvoke v.<java.lang.SecurityManager: void checkPackageDefinition(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.ClassNotFoundException;
specialinvoke v.<java.lang.ClassNotFoundException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = null;
label:
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.ResourceEntry findClassInternal(java.lang.String)>(v);
v = new java.security.CodeSource;
v = v.<org.glassfish.web.loader.ResourceEntry: java.net.URL codeBase>;
v = v.<org.glassfish.web.loader.ResourceEntry: java.security.cert.Certificate[] certificates>;
specialinvoke v.<java.security.CodeSource: void <init>(java.net.URL,java.security.cert.Certificate[])>(v, v);
v = virtualinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.Object getClassLoadingLock(java.lang.String)>(v);
entermonitor v;
label:
v = v.<org.glassfish.web.loader.ResourceEntry: java.lang.Class loadedClass>;
if v != null goto label;
v = v.<org.glassfish.web.loader.ResourceEntry: byte[] binaryContent>;
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentLinkedQueue byteCodePreprocessors>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: boolean isEmpty()>();
if v != 0 goto label;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.ThreadLocal BYTECODE_PREPROCESSING>;
v = virtualinvoke v.<java.lang.ThreadLocal: java.lang.Object get()>();
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
if v != 0 goto label;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level TRACE>;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "Transforming {0}", v);
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.ThreadLocal BYTECODE_PREPROCESSING>;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(1);
virtualinvoke v.<java.lang.ThreadLocal: void set(java.lang.Object)>(v);
label:
v = staticinvoke <org.glassfish.web.loader.WebappClassLoader: java.lang.String toClassFilePath(java.lang.String)>(v);
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentLinkedQueue byteCodePreprocessors>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<com.sun.appserv.BytecodePreprocessor: byte[] preprocess(java.lang.String,byte[])>(v, v);
goto label;
label:
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.ThreadLocal BYTECODE_PREPROCESSING>;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(0);
virtualinvoke v.<java.lang.ThreadLocal: void set(java.lang.Object)>(v);
goto label;
label:
v := @caughtexception;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.ThreadLocal BYTECODE_PREPROCESSING>;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(0);
virtualinvoke v.<java.lang.ThreadLocal: void set(java.lang.Object)>(v);
throw v;
label:
v = lengthof v;
v = virtualinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.Class defineClass(java.lang.String,byte[],int,int,java.security.CodeSource)>(v, v, 0, v, v);
v.<org.glassfish.web.loader.ResourceEntry: java.lang.Class loadedClass> = v;
v.<org.glassfish.web.loader.ResourceEntry: byte[] binaryContent> = null;
v.<org.glassfish.web.loader.ResourceEntry: java.net.URL source> = null;
v.<org.glassfish.web.loader.ResourceEntry: java.net.URL codeBase> = null;
v.<org.glassfish.web.loader.ResourceEntry: java.util.jar.Manifest manifest> = null;
v.<org.glassfish.web.loader.ResourceEntry: java.security.cert.Certificate[] certificates> = null;
goto label;
label:
v = v.<org.glassfish.web.loader.ResourceEntry: java.lang.Class loadedClass>;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v := @caughtexception;
v = v.<org.glassfish.web.loader.WebappClassLoader: boolean hasExternalRepositories>;
if v != 0 goto label;
throw v;
label:
v := @caughtexception;
v = new java.lang.UnsupportedClassVersionError;
v = newarray (java.lang.Object)[2];
v[0] = v;
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.String getJavaVersion()>();
v[1] = v;
v = staticinvoke <org.glassfish.web.loader.LogFacade: java.lang.String getString(java.lang.String,java.lang.Object[])>("AS-WEB-UTIL-00005", v);
specialinvoke v.<java.lang.UnsupportedClassVersionError: void <init>(java.lang.String)>(v);
throw v;
label:
v := @caughtexception;
v = new java.lang.ClassNotFoundException;
specialinvoke v.<java.lang.ClassNotFoundException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
v = newarray (java.lang.Object)[2];
v[0] = v;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String toString()>();
v[1] = v;
v = staticinvoke <org.glassfish.web.loader.LogFacade: java.lang.String getString(java.lang.String,java.lang.Object[])>("AS-WEB-UTIL-00006", v);
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
if v != null goto label;
v = v.<org.glassfish.web.loader.WebappClassLoader: boolean hasExternalRepositories>;
if v == 0 goto label;
label:
v = specialinvoke v.<org.glassfish.common.util.GlassfishUrlClassLoader: java.lang.Class findClass(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.ClassNotFoundException;
specialinvoke v.<java.lang.ClassNotFoundException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v := @caughtexception;
throw v;
label:
if v != null goto label;
v = new java.lang.ClassNotFoundException;
specialinvoke v.<java.lang.ClassNotFoundException: void <init>(java.lang.String)>(v);
throw v;
label:
v := @caughtexception;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level TRACE>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Rethrowing exception for \u0001");
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Throwable)>(v, v, v);
throw v;
label:
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level TRACE>;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "Returning {0}", v);
return v;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.ClassNotFoundException from label to label with label;
catch java.lang.UnsupportedClassVersionError from label to label with label;
catch java.security.AccessControlException from label to label with label;
catch java.lang.RuntimeException from label to label with label;
catch java.lang.Error from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.security.AccessControlException from label to label with label;
catch java.lang.RuntimeException from label to label with label;
catch java.lang.ClassNotFoundException from label to label with label;
}
public java.net.URL findResource(java.lang.String)
{
java.lang.Object[] v, v;
java.net.URL v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
java.lang.System$Logger$Level v, v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
java.lang.String v, v;
boolean v, v;
java.lang.System$Logger v, v;
java.util.concurrent.ConcurrentHashMap v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.Object v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level DEBUG>;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "findResource(name={0})", v);
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[1];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[0] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = ".";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = "";
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentHashMap resourceEntryCache>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.ResourceEntry findResourceInternal(java.lang.String,java.lang.String)>(v, v);
label:
v = null;
if v == null goto label;
v = v.<org.glassfish.web.loader.ResourceEntry: java.net.URL source>;
label:
if v != null goto label;
v = v.<org.glassfish.web.loader.WebappClassLoader: boolean hasExternalRepositories>;
if v == 0 goto label;
v = specialinvoke v.<org.glassfish.common.util.GlassfishUrlClassLoader: java.net.URL findResource(java.lang.String)>(v);
label:
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level TRACE>;
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "Returning {0} for name={1}", v);
return v;
}
public java.util.Enumeration findResources(java.lang.String) throws java.io.IOException
{
java.lang.Object[] v;
java.util.Enumeration v, v, v;
java.net.URL v;
javax.naming.NamingException v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
java.util.ArrayList v;
java.lang.System$Logger$Level v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
java.lang.String v, v;
boolean v, v;
java.lang.System$Logger v;
org.glassfish.web.loader.RepositoryManager v;
java.util.Iterator v;
javax.naming.directory.DirContext v, v;
java.io.File v;
java.util.List v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.Object v, v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level DEBUG>;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "findResources(name={0})", v);
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[1];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[0] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = v.<org.glassfish.web.loader.WebappClassLoader: javax.naming.directory.DirContext jndiResources>;
if v != null goto label;
v = specialinvoke v.<org.glassfish.common.util.GlassfishUrlClassLoader: java.util.Enumeration findResources(java.lang.String)>(v);
return v;
label:
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.RepositoryManager repositoryManager>;
v = virtualinvoke v.<org.glassfish.web.loader.RepositoryManager: java.util.List getResources(java.lang.String)>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: javax.naming.directory.DirContext jndiResources>;
v = v.<org.glassfish.web.loader.RepositoryManager$RepositoryResource: java.lang.String name>;
interfaceinvoke v.<javax.naming.directory.DirContext: java.lang.Object lookup(java.lang.String)>(v);
v = v.<org.glassfish.web.loader.RepositoryManager$RepositoryResource: java.io.File file>;
v = staticinvoke <org.glassfish.web.loader.WebappClassLoader: java.net.URL toURL(java.io.File)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
v = specialinvoke v.<org.glassfish.common.util.GlassfishUrlClassLoader: java.util.Enumeration findResources(java.lang.String)>(v);
label:
v = interfaceinvoke v.<java.util.Enumeration: boolean hasMoreElements()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Enumeration: java.lang.Object nextElement()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = staticinvoke <java.util.Collections: java.util.Enumeration enumeration(java.util.Collection)>(v);
return v;
catch javax.naming.NamingException from label to label with label;
}
public java.net.URL getResource(java.lang.String)
{
java.net.URL v, v, v, v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
java.lang.System$Logger$Level v, v, v, v, v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
java.net.URI v;
boolean v, v, v, v, v, v;
java.util.concurrent.ConcurrentHashMap v;
java.lang.Exception v;
java.lang.ClassLoader v, v;
java.lang.Object[] v, v, v, v, v;
java.lang.String v, v;
java.lang.System$Logger v, v, v, v, v;
java.io.File v, v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.Object v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level DEBUG>;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "getResource(name={0})", v);
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[1];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[0] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: boolean isDelegateFirstResource(java.lang.String)>(v);
if v == 0 goto label;
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.ClassLoader getDelegateClassLoader()>();
v = virtualinvoke v.<java.lang.ClassLoader: java.net.URL getResource(java.lang.String)>(v);
if v == null goto label;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level TRACE>;
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "Returning {0} for name={1}", v);
return v;
label:
v = virtualinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.net.URL findResource(java.lang.String)>(v);
if v == null goto label;
v = v.<org.glassfish.web.loader.WebappClassLoader: boolean antiJARLocking>;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(".class");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(".jar");
if v != 0 goto label;
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentHashMap resourceEntryCache>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
label:
v = v.<org.glassfish.web.loader.ResourceEntry: java.net.URL codeBase>;
v = virtualinvoke v.<java.net.URL: java.lang.String toString()>();
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(".jar");
if v == 0 goto label;
v = new java.io.File;
v = v.<org.glassfish.web.loader.WebappClassLoader: java.io.File loaderDir>;
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
v = virtualinvoke v.<java.io.File: java.net.URI toURI()>();
v = virtualinvoke v.<java.net.URI: java.net.URL toURL()>();
label:
goto label;
label:
v := @caughtexception;
label:
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level TRACE>;
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "Returning {0} for name={1}", v);
return v;
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: boolean delegate>;
if v != 0 goto label;
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.ClassLoader getDelegateClassLoader()>();
v = virtualinvoke v.<java.lang.ClassLoader: java.net.URL getResource(java.lang.String)>(v);
if v == null goto label;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level TRACE>;
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "Returning {0} for name={1}", v);
return v;
label:
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level TRACE>;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "Resource {0} not found, returning null", v);
return null;
catch java.lang.Exception from label to label with label;
}
public java.io.InputStream getResourceAsStream(java.lang.String)
{
java.lang.Object[] v, v;
java.net.URL v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
java.lang.System$Logger$Level v, v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
java.lang.String v;
boolean v, v, v;
java.lang.System$Logger v, v;
java.io.IOException v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.ClassLoader v, v;
java.io.InputStream v, v, v, v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level DEBUG>;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "getResourceAsStream(name={0})", v);
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[1];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[0] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.io.InputStream findLoadedResource(java.lang.String)>(v);
if v == null goto label;
return v;
label:
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: boolean isDelegateFirstResource(java.lang.String)>(v);
if v == 0 goto label;
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.ClassLoader getDelegateClassLoader()>();
v = virtualinvoke v.<java.lang.ClassLoader: java.io.InputStream getResourceAsStream(java.lang.String)>(v);
if v == null goto label;
return v;
label:
v = virtualinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.net.URL findResource(java.lang.String)>(v);
if v == null goto label;
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.io.InputStream findLoadedResource(java.lang.String)>(v);
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: boolean hasExternalRepositories>;
if v == 0 goto label;
if v != null goto label;
v = virtualinvoke v.<java.net.URL: java.io.InputStream openStream()>();
label:
goto label;
label:
v := @caughtexception;
label:
if v == null goto label;
return v;
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: boolean delegate>;
if v != 0 goto label;
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.ClassLoader getDelegateClassLoader()>();
v = virtualinvoke v.<java.lang.ClassLoader: java.io.InputStream getResourceAsStream(java.lang.String)>(v);
if v == null goto label;
return v;
label:
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level TRACE>;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "Resource {0} not found, returning null", v);
return null;
catch java.io.IOException from label to label with label;
}
public java.util.Enumeration getResources(java.lang.String) throws java.io.IOException
{
java.util.Enumeration v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
com.sun.enterprise.loader.ResourceLocator v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.ClassLoader v;
java.lang.String v;
boolean v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[1];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[0] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.ClassLoader getDelegateClassLoader()>();
v = new com.sun.enterprise.loader.ResourceLocator;
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: boolean isDelegateFirstResource(java.lang.String)>(v);
specialinvoke v.<com.sun.enterprise.loader.ResourceLocator: void <init>(java.net.URLClassLoader,java.lang.ClassLoader,boolean)>(v, v, v);
v = virtualinvoke v.<com.sun.enterprise.loader.ResourceLocator: java.util.Enumeration getResources(java.lang.String)>(v);
return v;
}
public java.lang.Class loadClass(java.lang.String) throws java.lang.ClassNotFoundException
{
org.glassfish.web.loader.WebappClassLoader v;
java.lang.Class v;
java.lang.String v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.Class loadClass(java.lang.String,boolean)>(v, 0);
return v;
}
protected java.lang.Class loadClass(java.lang.String, boolean) throws java.lang.ClassNotFoundException
{
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
java.lang.System$Logger$Level v, v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
java.lang.SecurityException v;
boolean v, v, v;
java.lang.ClassLoader v;
java.lang.Throwable v;
java.lang.Object[] v, v;
int v;
java.lang.Boolean v;
java.lang.String v, v, v;
java.lang.System$Logger v, v;
java.lang.SecurityManager v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.Class v, v, v, v, v, v, v, v, v, v;
java.lang.ClassNotFoundException v, v, v, v, v;
java.lang.Object v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v := @parameter: boolean;
if v != null goto label;
return null;
label:
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level DEBUG>;
v = newarray (java.lang.Object)[2];
v[0] = v;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
v[1] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "loadClass(name={0}, resolve={1})", v);
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[1];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[0] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = virtualinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.Object getClassLoadingLock(java.lang.String)>(v);
entermonitor v;
label:
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.Class findLoadedClass0(java.lang.String)>(v);
if v == null goto label;
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.Class resolveIfRequired(boolean,java.lang.Class)>(v, v);
exitmonitor v;
label:
return v;
label:
v = virtualinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.Class findLoadedClass(java.lang.String)>(v);
if v == null goto label;
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.Class resolveIfRequired(boolean,java.lang.Class)>(v, v);
exitmonitor v;
label:
return v;
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: boolean packageDefinitionSecurityEnabled>;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: int lastIndexOf(int)>(46);
if v < 0 goto label;
label:
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.SecurityManager SECURITY_MANAGER>;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
virtualinvoke v.<java.lang.SecurityManager: void checkPackageAccess(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = newarray (java.lang.Object)[1];
v[0] = v;
v = staticinvoke <org.glassfish.web.loader.LogFacade: java.lang.String getString(java.lang.String,java.lang.Object[])>("AS-WEB-UTIL-00004", v);
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level INFO>;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Throwable)>(v, v, v);
v = new java.lang.ClassNotFoundException;
specialinvoke v.<java.lang.ClassNotFoundException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.ClassLoader getDelegateClassLoader()>();
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: boolean isDelegateFirstClass(java.lang.String)>(v);
if v == 0 goto label;
label:
v = virtualinvoke v.<java.lang.ClassLoader: java.lang.Class loadClass(java.lang.String)>(v);
if v == null goto label;
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.Class resolveIfRequired(boolean,java.lang.Class)>(v, v);
label:
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
label:
v = virtualinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.Class findClass(java.lang.String)>(v);
if v == null goto label;
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.Class resolveIfRequired(boolean,java.lang.Class)>(v, v);
label:
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
label:
if v != 0 goto label;
label:
v = virtualinvoke v.<java.lang.ClassLoader: java.lang.Class loadClass(java.lang.String)>(v);
if v == null goto label;
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.Class resolveIfRequired(boolean,java.lang.Class)>(v, v);
label:
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = new java.lang.ClassNotFoundException;
specialinvoke v.<java.lang.ClassNotFoundException: void <init>(java.lang.String)>(v);
throw v;
catch java.lang.SecurityException from label to label with label;
catch java.lang.ClassNotFoundException from label to label with label;
catch java.lang.ClassNotFoundException from label to label with label;
catch java.lang.ClassNotFoundException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public java.lang.String getName()
{
org.glassfish.web.loader.WebappClassLoader v;
java.lang.String v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v = v.<org.glassfish.web.loader.WebappClassLoader: java.lang.String contextName>;
return v;
}
protected java.security.PermissionCollection getPermissions(java.security.CodeSource)
{
java.lang.Object[] v;
java.util.Enumeration v, v;
java.net.URL v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
java.lang.System$Logger$Level v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
java.lang.String v;
boolean v, v, v;
java.security.Permissions v;
java.lang.System$Logger v;
java.util.Iterator v;
java.util.concurrent.ConcurrentHashMap v, v;
java.security.PermissionCollection v, v, v;
com.sun.enterprise.security.integration.PermsHolder v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.Object v, v, v, v, v;
java.security.CodeSource v;
java.util.concurrent.ConcurrentLinkedQueue v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.security.CodeSource;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level TRACE>;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "getPermissions(codeSource={0})", v);
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[1];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[0] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = virtualinvoke v.<java.security.CodeSource: java.net.URL getLocation()>();
v = virtualinvoke v.<java.net.URL: java.lang.String toString()>();
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentHashMap loaderPC>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
return v;
label:
v = new java.security.Permissions;
specialinvoke v.<java.security.Permissions: void <init>()>();
v = specialinvoke v.<org.glassfish.common.util.GlassfishUrlClassLoader: java.security.PermissionCollection getPermissions(java.security.CodeSource)>(v);
v = virtualinvoke v.<java.security.PermissionCollection: java.util.Enumeration elements()>();
label:
v = interfaceinvoke v.<java.util.Enumeration: boolean hasMoreElements()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Enumeration: java.lang.Object nextElement()>();
virtualinvoke v.<java.security.PermissionCollection: void add(java.security.Permission)>(v);
goto label;
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentLinkedQueue permissionList>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<java.security.PermissionCollection: void add(java.security.Permission)>(v);
goto label;
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: com.sun.enterprise.security.integration.PermsHolder permissionsHolder>;
v = virtualinvoke v.<com.sun.enterprise.security.integration.PermsHolder: java.security.PermissionCollection getPermissions(java.security.CodeSource,java.security.PermissionCollection)>(v, null);
if v == null goto label;
v = virtualinvoke v.<java.security.PermissionCollection: java.util.Enumeration elements()>();
label:
v = interfaceinvoke v.<java.util.Enumeration: boolean hasMoreElements()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Enumeration: java.lang.Object nextElement()>();
virtualinvoke v.<java.security.PermissionCollection: void add(java.security.Permission)>(v);
goto label;
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentHashMap loaderPC>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
if v != null goto label;
v = v;
goto label;
label:
v = v;
label:
return v;
}
public synchronized java.net.URL[] getURLs()
{
java.net.URL v, v, v;
org.glassfish.web.loader.JarFileManager v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v, v;
java.net.URL[] v, v;
java.util.stream.Collector v;
boolean v;
java.util.List v, v, v, v;
java.util.stream.Stream v, v;
java.lang.Object[] v, v;
java.util.ArrayList v;
int v, v, v, v;
java.util.function.IntFunction v, v;
org.glassfish.web.loader.RepositoryManager v;
java.util.Iterator v;
java.io.File v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.Object v, v;
java.io.File[] v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v = v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus status>;
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus CLOSED>;
if v != v goto label;
v = newarray (java.net.URL)[0];
return v;
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.List repositoryURLs>;
if v == null goto label;
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.List repositoryURLs>;
v = staticinvoke <org.glassfish.web.loader.WebappClassLoader$lambda_getURLs_2__19: java.util.function.IntFunction bootstrap$()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.util.function.IntFunction)>(v);
return v;
label:
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.RepositoryManager repositoryManager>;
v = virtualinvoke v.<org.glassfish.web.loader.RepositoryManager: java.util.List getDirectories()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <org.glassfish.web.loader.WebappClassLoader: java.net.URL toURL(java.io.File)>(v);
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.JarFileManager jarFiles>;
v = virtualinvoke v.<org.glassfish.web.loader.JarFileManager: java.io.File[] getJarRealFiles()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = staticinvoke <org.glassfish.web.loader.WebappClassLoader: java.net.URL toURL(java.io.File)>(v);
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
v = specialinvoke v.<org.glassfish.common.util.GlassfishUrlClassLoader: java.net.URL[] getURLs()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
v = virtualinvoke v.<java.util.ArrayList: java.util.stream.Stream stream()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream distinct()>();
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toList()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
v.<org.glassfish.web.loader.WebappClassLoader: java.util.List repositoryURLs> = v;
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.List repositoryURLs>;
v = staticinvoke <org.glassfish.web.loader.WebappClassLoader$lambda_getURLs_3__18: java.util.function.IntFunction bootstrap$()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.util.function.IntFunction)>(v);
return v;
}
public java.io.File getExtractedResourcePath(java.lang.String)
{
org.glassfish.web.loader.JarFileManager v;
java.io.File v, v, v, v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.String v;
boolean v, v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v = v.<org.glassfish.web.loader.WebappClassLoader: boolean antiJARLocking>;
if v == 0 goto label;
v = v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.JarFileManager jarFiles>;
v = v.<org.glassfish.web.loader.WebappClassLoader: java.io.File loaderDir>;
virtualinvoke v.<org.glassfish.web.loader.JarFileManager: void extractResources(java.io.File,java.lang.String)>(v, v);
label:
v = new java.io.File;
v = v.<org.glassfish.web.loader.WebappClassLoader: java.io.File loaderDir>;
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = v;
goto label;
label:
v = null;
label:
return v;
}
public java.util.jar.JarFile[] getJarFiles()
{
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
java.util.jar.JarFile[] v;
org.glassfish.web.loader.JarFileManager v;
org.glassfish.web.loader.WebappClassLoader v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[1];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[0] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.JarFileManager jarFiles>;
v = virtualinvoke v.<org.glassfish.web.loader.JarFileManager: java.util.jar.JarFile[] getJarFiles()>();
return v;
}
public boolean modified()
{
javax.naming.NamingException v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
java.lang.System$Logger$Level v, v, v, v, v, v, v;
byte v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
boolean v, v, v, v, v, v, v, v, v, v;
java.time.Instant v, v;
java.lang.Exception v;
java.util.List v, v;
javax.naming.NamingEnumeration v;
java.util.concurrent.ConcurrentLinkedQueue v;
java.lang.Object[] v, v, v, v, v;
org.apache.naming.resources.ResourceAttributes v;
long v, v;
int v, v;
java.lang.String v, v, v, v, v, v;
java.lang.System$Logger v, v, v, v, v, v, v;
java.util.Iterator v;
javax.naming.directory.DirContext v, v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.Object v, v, v, v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[1];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[0] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = v.<org.glassfish.web.loader.WebappClassLoader: javax.naming.directory.DirContext jndiResources>;
if v != null goto label;
return 0;
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentLinkedQueue pathTimestamps>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
label:
v = v.<org.glassfish.web.loader.WebappClassLoader$PathTimestamp: java.lang.String path>;
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: org.apache.naming.resources.ResourceAttributes getResourceAttributes(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.naming.resources.ResourceAttributes: long getLastModified()>();
v = v.<org.glassfish.web.loader.WebappClassLoader$PathTimestamp: long timestamp>;
v = v cmp v;
if v == 0 goto label;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level DEBUG>;
v = interfaceinvoke v.<java.lang.System$Logger: boolean isLoggable(java.lang.System$Logger$Level)>(v);
if v == 0 goto label;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level DEBUG>;
v = newarray (java.lang.Object)[3];
v = v.<org.glassfish.web.loader.WebappClassLoader$PathTimestamp: java.lang.String path>;
v[0] = v;
v = staticinvoke <java.time.Instant: java.time.Instant ofEpochMilli(long)>(v);
v[1] = v;
v = staticinvoke <java.time.Instant: java.time.Instant ofEpochMilli(long)>(v);
v[2] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "Resource {0} was modified at {1}, old time stamp was {2}.", v);
label:
return 1;
label:
v := @caughtexception;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level ERROR>;
v = newarray (java.lang.Object)[1];
v = v.<org.glassfish.web.loader.WebappClassLoader$PathTimestamp: java.lang.String path>;
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "AS-WEB-UTIL-00001", v);
return 1;
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.List jarNames>;
v = interfaceinvoke v.<java.util.List: int size()>();
v = v.<org.glassfish.web.loader.WebappClassLoader: javax.naming.directory.DirContext jndiResources>;
v = interfaceinvoke v.<javax.naming.directory.DirContext: javax.naming.NamingEnumeration listBindings(java.lang.String)>("/WEB-INF/lib");
v = 0;
label:
v = interfaceinvoke v.<javax.naming.NamingEnumeration: boolean hasMoreElements()>();
if v == 0 goto label;
if v >= v goto label;
v = interfaceinvoke v.<javax.naming.NamingEnumeration: java.lang.Object nextElement()>();
v = virtualinvoke v.<javax.naming.NameClassPair: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(".jar");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(".zip");
if v == 0 goto label;
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.List jarNames>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level TRACE>;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "JAR files changed: {0}", v);
label:
return 1;
label:
v = v + 1;
goto label;
label:
v = interfaceinvoke v.<javax.naming.NamingEnumeration: boolean hasMoreElements()>();
if v == 0 goto label;
label:
v = interfaceinvoke v.<javax.naming.NamingEnumeration: boolean hasMoreElements()>();
if v == 0 goto label;
v = interfaceinvoke v.<javax.naming.NamingEnumeration: java.lang.Object nextElement()>();
v = virtualinvoke v.<javax.naming.NameClassPair: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(".jar");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(".zip");
if v == 0 goto label;
label:
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level TRACE>;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "Additional JARs have been added: {0}", v);
label:
return 1;
label:
if v >= v goto label;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level TRACE>;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String)>(v, "Some JAR file was removed.");
label:
return 1;
label:
v := @caughtexception;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level ERROR>;
v = newarray (java.lang.Object)[2];
v[0] = "/WEB-INF/lib";
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
v[1] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "AS-WEB-UTIL-00002", v);
label:
return 0;
catch javax.naming.NamingException from label to label with label;
catch javax.naming.NamingException from label to label with label;
catch java.lang.ClassCastException from label to label with label;
catch javax.naming.NamingException from label to label with label;
catch java.lang.ClassCastException from label to label with label;
catch javax.naming.NamingException from label to label with label;
catch java.lang.ClassCastException from label to label with label;
}
public void reload()
{
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
org.glassfish.web.loader.JarFileManager v;
org.glassfish.web.loader.WebappClassLoader v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[1];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[0] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
v = v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.JarFileManager jarFiles>;
virtualinvoke v.<org.glassfish.web.loader.JarFileManager: void closeJarFiles()>();
return;
}
public java.lang.ClassLoader copy()
{
java.lang.System$Logger v;
java.lang.System$Logger$Level v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.Object v;
java.security.PrivilegedAction v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level DEBUG>;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String)>(v, "copy()");
v = staticinvoke <org.glassfish.web.loader.WebappClassLoader$lambda_copy_4__20: java.security.PrivilegedAction bootstrap$(org.glassfish.web.loader.WebappClassLoader)>(v);
v = staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedAction)>(v);
return v;
}
public void close() throws java.io.IOException
{
java.lang.Object[] v;
org.glassfish.web.loader.JarFileManager v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v, v, v;
java.lang.System$Logger$Level v;
org.glassfish.web.loader.ReferenceCleaner v;
boolean v;
java.lang.System$Logger v;
org.glassfish.web.loader.RepositoryManager v;
java.util.Collection v;
java.util.concurrent.ConcurrentHashMap v, v, v;
java.util.Set v;
java.io.File v, v;
org.glassfish.web.loader.WebappClassLoader v;
java.util.concurrent.ConcurrentLinkedQueue v, v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v = v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus status>;
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus CLOSED>;
if v != v goto label;
return;
label:
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level INFO>;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "close(), this:\n{0}", v);
v = v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.ReferenceCleaner cleaner>;
v = v.<org.glassfish.web.loader.WebappClassLoader: boolean clearReferencesStatic>;
if v == 0 goto label;
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentHashMap resourceEntryCache>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.util.Collection values()>();
goto label;
label:
v = null;
label:
virtualinvoke v.<org.glassfish.web.loader.ReferenceCleaner: void clearReferences(java.util.Collection)>(v);
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus CLOSED>;
v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus status> = v;
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.Set notFoundResources>;
interfaceinvoke v.<java.util.Set: void clear()>();
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentHashMap resourceEntryCache>;
virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: void clear()>();
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentLinkedQueue pathTimestamps>;
virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: void clear()>();
v.<org.glassfish.web.loader.WebappClassLoader: javax.naming.directory.DirContext jndiResources> = null;
v.<org.glassfish.web.loader.WebappClassLoader: java.util.List repositoryURLs> = null;
v.<org.glassfish.web.loader.WebappClassLoader: boolean hasExternalRepositories> = 0;
v = v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.RepositoryManager repositoryManager>;
virtualinvoke v.<org.glassfish.web.loader.RepositoryManager: void close()>();
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentLinkedQueue permissionList>;
virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: void clear()>();
v.<org.glassfish.web.loader.WebappClassLoader: com.sun.enterprise.security.integration.PermsHolder permissionsHolder> = null;
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentHashMap loaderPC>;
virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: void clear()>();
v = v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.JarFileManager jarFiles>;
virtualinvoke v.<org.glassfish.web.loader.JarFileManager: void close()>();
v = v.<org.glassfish.web.loader.WebappClassLoader: java.io.File loaderDir>;
if v == null goto label;
v = v.<org.glassfish.web.loader.WebappClassLoader: java.io.File loaderDir>;
staticinvoke <org.glassfish.web.loader.WebappClassLoader: void deleteDir(java.io.File)>(v);
label:
staticinvoke <org.apache.naming.resources.DirContextURLStreamHandler: void unbind(java.lang.ClassLoader)>(v);
return;
}
public java.lang.String toString()
{
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
int v, v, v;
java.lang.String v, v, v;
boolean v, v, v, v;
org.glassfish.web.loader.RepositoryManager v;
java.util.concurrent.ConcurrentHashMap v;
java.util.Set v;
java.lang.SecurityManager v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.StringBuilder v, v, v, v, v, v, v, v, v, v, v;
java.util.concurrent.ConcurrentLinkedQueue v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>(int)>(4096);
v = specialinvoke v.<org.glassfish.common.util.GlassfishUrlClassLoader: java.lang.String toString()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("[delegate=");
v = v.<org.glassfish.web.loader.WebappClassLoader: boolean delegate>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(boolean)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(", context=");
v = v.<org.glassfish.web.loader.WebappClassLoader: java.lang.String contextName>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(", status=");
v = v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus status>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(", antiJARLocking=");
v = v.<org.glassfish.web.loader.WebappClassLoader: boolean antiJARLocking>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(boolean)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(", securityManager=");
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.SecurityManager SECURITY_MANAGER>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(boolean)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(", packageDefinitionSecurityEnabled=");
v = v.<org.glassfish.web.loader.WebappClassLoader: boolean packageDefinitionSecurityEnabled>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(boolean)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(", repositories=");
v = v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.RepositoryManager repositoryManager>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(", notFound.size=");
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.Set notFoundResources>;
v = interfaceinvoke v.<java.util.Set: int size()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(", pathTimestamps.size=");
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentLinkedQueue pathTimestamps>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: int size()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(", resourceEntryCache.size=");
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentHashMap resourceEntryCache>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: int size()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(93);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
public void preDestroy()
{
java.lang.System$Logger v;
java.lang.System$Logger$Level v;
org.glassfish.web.loader.WebappClassLoader v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level TRACE>;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String)>(v, "preDestroy()");
return;
}
private java.lang.ClassLoader getDelegateClassLoader()
{
org.glassfish.web.loader.WebappClassLoader v;
java.lang.ClassLoader v, v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v = virtualinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.ClassLoader getParent()>();
if v != null goto label;
v = v.<org.glassfish.web.loader.WebappClassLoader: java.lang.ClassLoader system>;
goto label;
label:
v = v;
label:
return v;
}
private java.lang.Class resolveIfRequired(boolean, java.lang.Class)
{
org.glassfish.web.loader.WebappClassLoader v;
java.lang.Class v;
boolean v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: boolean;
v := @parameter: java.lang.Class;
if v == 0 goto label;
virtualinvoke v.<org.glassfish.web.loader.WebappClassLoader: void resolveClass(java.lang.Class)>(v);
label:
return v;
}
private org.glassfish.web.loader.ResourceEntry findClassInternal(java.lang.String) throws java.lang.ClassNotFoundException
{
java.util.jar.Manifest v, v, v, v;
byte[] v;
java.net.URL v, v;
java.lang.System$Logger$Level v;
java.lang.SecurityException v;
boolean v, v, v, v, v;
java.lang.Throwable v;
java.lang.Object[] v;
org.glassfish.web.loader.ResourceEntry v;
int v, v;
java.lang.String v, v, v, v, v;
java.lang.System$Logger v;
java.lang.Package v;
java.lang.SecurityManager v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.Class v;
java.lang.ClassNotFoundException v, v, v;
java.lang.Object v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level TRACE>;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "findClassInternal(name={0})", v);
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: boolean validate(java.lang.String)>(v);
if v != 0 goto label;
v = new java.lang.ClassNotFoundException;
specialinvoke v.<java.lang.ClassNotFoundException: void <init>(java.lang.String)>(v);
throw v;
label:
v = staticinvoke <org.glassfish.web.loader.WebappClassLoader: java.lang.String toClassFilePath(java.lang.String)>(v);
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.ResourceEntry findResourceInternal(java.lang.String,java.lang.String)>(v, v);
if v != null goto label;
v = new java.lang.ClassNotFoundException;
specialinvoke v.<java.lang.ClassNotFoundException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.Object getClassLoadingLock(java.lang.String)>(v);
entermonitor v;
label:
v = v.<org.glassfish.web.loader.ResourceEntry: java.lang.Class loadedClass>;
if v == null goto label;
exitmonitor v;
label:
return v;
label:
v = v.<org.glassfish.web.loader.ResourceEntry: byte[] binaryContent>;
if v != null goto label;
v = new java.lang.ClassNotFoundException;
specialinvoke v.<java.lang.ClassNotFoundException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.lang.String: int lastIndexOf(int)>(46);
v = (int) -1;
if v != v goto label;
v = null;
goto label;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
label:
v = v;
if v != null goto label;
v = null;
goto label;
label:
v = virtualinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.Package getDefinedPackage(java.lang.String)>(v);
if v != null goto label;
v = v.<org.glassfish.web.loader.ResourceEntry: java.util.jar.Manifest manifest>;
if v != null goto label;
virtualinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.Package definePackage(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.net.URL)>(v, null, null, null, null, null, null, null);
goto label;
label:
v = v.<org.glassfish.web.loader.ResourceEntry: java.util.jar.Manifest manifest>;
v = v.<org.glassfish.web.loader.ResourceEntry: java.net.URL codeBase>;
virtualinvoke v.<org.glassfish.web.loader.WebappClassLoader: java.lang.Package definePackage(java.lang.String,java.util.jar.Manifest,java.net.URL)>(v, v, v);
label:
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.SecurityManager SECURITY_MANAGER>;
if v == null goto label;
if v == null goto label;
v = virtualinvoke v.<java.lang.Package: boolean isSealed()>();
if v == 0 goto label;
v = v.<org.glassfish.web.loader.ResourceEntry: java.net.URL codeBase>;
v = virtualinvoke v.<java.lang.Package: boolean isSealed(java.net.URL)>(v);
goto label;
label:
v = v.<org.glassfish.web.loader.ResourceEntry: java.util.jar.Manifest manifest>;
if v == null goto label;
v = v.<org.glassfish.web.loader.ResourceEntry: java.util.jar.Manifest manifest>;
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: boolean isPackageSealed(java.lang.String,java.util.jar.Manifest)>(v, v);
if v != 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v = v;
label:
if v != 0 goto label;
v = new java.lang.SecurityException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Sealing violation loading \u0001: Package \u is sealed.");
specialinvoke v.<java.lang.SecurityException: void <init>(java.lang.String)>(v);
throw v;
label:
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private org.glassfish.web.loader.ResourceEntry findResourceInternal(java.lang.String, java.lang.String)
{
java.lang.Object[] v;
org.glassfish.web.loader.JarFileManager v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v;
org.glassfish.web.loader.ResourceEntry v, v;
java.lang.System$Logger$Level v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
java.lang.String v, v;
boolean v, v;
java.lang.System$Logger v;
java.util.concurrent.ConcurrentHashMap v, v;
java.util.Set v, v;
java.io.File v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.Object v, v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level TRACE>;
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "findResourceInternal(name={0}, path={1})", v);
v = newarray (org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus)[1];
v = <org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus RUNNING>;
v[0] = v;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])>(v);
if v == null goto label;
if v != null goto label;
label:
return null;
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentHashMap resourceEntryCache>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
return v;
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.Set notFoundResources>;
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
return null;
label:
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.ResourceEntry findResourceInternalFromRepositories(java.lang.String,java.lang.String)>(v, v);
if v != null goto label;
v = v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.JarFileManager jarFiles>;
v = v.<org.glassfish.web.loader.WebappClassLoader: java.io.File loaderDir>;
v = v.<org.glassfish.web.loader.WebappClassLoader: boolean antiJARLocking>;
v = virtualinvoke v.<org.glassfish.web.loader.JarFileManager: org.glassfish.web.loader.ResourceEntry findResource(java.lang.String,java.lang.String,java.io.File,boolean)>(v, v, v, v);
if v != null goto label;
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.Set notFoundResources>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
return null;
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentHashMap resourceEntryCache>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
if v != null goto label;
v = v;
goto label;
label:
v = v;
label:
return v;
}
private org.glassfish.web.loader.ResourceEntry findResourceInternalFromRepositories(java.lang.String, java.lang.String)
{
java.lang.Object[] v;
org.apache.naming.resources.ResourceAttributes v;
javax.naming.NamingException v;
org.glassfish.web.loader.ResourceEntry v, v;
java.lang.System$Logger$Level v;
java.lang.String v, v, v, v;
boolean v, v, v;
java.lang.System$Logger v;
org.glassfish.web.loader.RepositoryManager v;
java.util.Iterator v;
javax.naming.directory.DirContext v, v;
java.util.List v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.Object v, v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level TRACE>;
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "findResourceInternalFromRepositories(name={0}, path={1})", v);
v = v.<org.glassfish.web.loader.WebappClassLoader: javax.naming.directory.DirContext jndiResources>;
if v != null goto label;
return null;
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.RepositoryManager repositoryManager>;
v = virtualinvoke v.<org.glassfish.web.loader.RepositoryManager: java.util.List getResources(java.lang.String)>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: javax.naming.directory.DirContext jndiResources>;
v = v.<org.glassfish.web.loader.RepositoryManager$RepositoryResource: java.lang.String name>;
v = interfaceinvoke v.<javax.naming.directory.DirContext: java.lang.Object lookup(java.lang.String)>(v);
v = v instanceof org.apache.naming.resources.Resource;
if v == 0 goto label;
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.ResourceEntry toResourceEntry(java.lang.String,org.glassfish.web.loader.RepositoryManager$RepositoryResource,org.apache.naming.resources.Resource)>(v, v, v);
label:
return v;
label:
v = v instanceof org.apache.naming.resources.WebDirContext;
if v == 0 goto label;
v = v.<org.glassfish.web.loader.RepositoryManager$RepositoryResource: java.lang.String name>;
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: org.apache.naming.resources.ResourceAttributes getResourceAttributes(java.lang.String)>(v);
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.ResourceEntry toResourceEntry(java.lang.String,org.glassfish.web.loader.RepositoryManager$RepositoryResource,org.apache.naming.resources.ResourceAttributes)>(v, v, v);
label:
return v;
label:
v := @caughtexception;
goto label;
label:
return null;
catch javax.naming.NamingException from label to label with label;
catch javax.naming.NamingException from label to label with label;
}
private org.glassfish.web.loader.ResourceEntry toResourceEntry(java.lang.String, org.glassfish.web.loader.RepositoryManager$RepositoryResource, org.apache.naming.resources.Resource) throws javax.naming.NamingException
{
java.lang.Throwable v;
java.lang.System$Logger v;
org.apache.naming.resources.ResourceAttributes v;
java.io.IOException v;
long v;
org.glassfish.web.loader.ResourceEntry v;
java.lang.System$Logger$Level v;
org.glassfish.web.loader.RepositoryManager$RepositoryResource v;
org.glassfish.web.loader.WebappClassLoader v;
org.apache.naming.resources.Resource v;
java.lang.String v, v, v;
java.io.InputStream v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v := @parameter: org.glassfish.web.loader.RepositoryManager$RepositoryResource;
v := @parameter: org.apache.naming.resources.Resource;
v = v.<org.glassfish.web.loader.RepositoryManager$RepositoryResource: java.lang.String name>;
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: org.apache.naming.resources.ResourceAttributes getResourceAttributes(java.lang.String)>(v);
v = specialinvoke v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.ResourceEntry toResourceEntry(java.lang.String,org.glassfish.web.loader.RepositoryManager$RepositoryResource,org.apache.naming.resources.ResourceAttributes)>(v, v, v);
v = virtualinvoke v.<org.apache.naming.resources.ResourceAttributes: long getContentLength()>();
label:
v = virtualinvoke v.<org.apache.naming.resources.Resource: java.io.InputStream streamContent()>();
label:
if v == null goto label;
virtualinvoke v.<org.glassfish.web.loader.ResourceEntry: void readEntryData(java.lang.String,java.io.InputStream,int,java.util.jar.JarEntry)>(v, v, v, null);
label:
if v == null goto label;
virtualinvoke v.<java.io.InputStream: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level DEBUG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Could not read entry data for \u0001");
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Throwable)>(v, v, v);
return null;
label:
return v;
catch java.lang.Throwable from label to label with label;
catch java.io.IOException from label to label with label;
}
private org.glassfish.web.loader.ResourceEntry toResourceEntry(java.lang.String, org.glassfish.web.loader.RepositoryManager$RepositoryResource, org.apache.naming.resources.ResourceAttributes)
{
org.glassfish.web.loader.WebappClassLoader$PathTimestamp v;
org.apache.naming.resources.ResourceAttributes v;
java.net.URL v;
long v, v;
java.security.PrivilegedAction v;
java.io.File v;
java.lang.SecurityManager v;
org.glassfish.web.loader.ResourceEntry v;
org.glassfish.web.loader.RepositoryManager$RepositoryResource v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.Object v;
java.lang.String v, v;
java.util.concurrent.ConcurrentLinkedQueue v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v := @parameter: org.glassfish.web.loader.RepositoryManager$RepositoryResource;
v := @parameter: org.apache.naming.resources.ResourceAttributes;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.SecurityManager SECURITY_MANAGER>;
if v != null goto label;
v = new org.glassfish.web.loader.ResourceEntry;
v = v.<org.glassfish.web.loader.RepositoryManager$RepositoryResource: java.io.File file>;
v = staticinvoke <org.glassfish.web.loader.WebappClassLoader: java.net.URL toURL(java.io.File)>(v);
specialinvoke v.<org.glassfish.web.loader.ResourceEntry: void <init>(java.net.URL)>(v);
goto label;
label:
v = staticinvoke <org.glassfish.web.loader.WebappClassLoader$lambda_toResourceEntry_5__21: java.security.PrivilegedAction bootstrap$(org.glassfish.web.loader.RepositoryManager$RepositoryResource)>(v);
v = staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedAction)>(v);
label:
v = virtualinvoke v.<org.apache.naming.resources.ResourceAttributes: long getLastModified()>();
v.<org.glassfish.web.loader.ResourceEntry: long lastModified> = v;
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentLinkedQueue pathTimestamps>;
v = new org.glassfish.web.loader.WebappClassLoader$PathTimestamp;
v = v.<org.glassfish.web.loader.RepositoryManager$RepositoryResource: java.lang.String name>;
v = v.<org.glassfish.web.loader.ResourceEntry: long lastModified>;
specialinvoke v.<org.glassfish.web.loader.WebappClassLoader$PathTimestamp: void <init>(java.lang.String,long)>(v, v);
virtualinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: boolean add(java.lang.Object)>(v);
return v;
}
private org.apache.naming.resources.ResourceAttributes getResourceAttributes(java.lang.String) throws javax.naming.NamingException
{
javax.naming.directory.Attributes v;
javax.naming.directory.DirContext v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.String v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v = v.<org.glassfish.web.loader.WebappClassLoader: javax.naming.directory.DirContext jndiResources>;
v = interfaceinvoke v.<javax.naming.directory.DirContext: javax.naming.directory.Attributes getAttributes(java.lang.String)>(v);
return v;
}
private boolean isPackageSealed(java.lang.String, java.util.jar.Manifest)
{
java.util.jar.Manifest v;
java.util.jar.Attributes v, v;
java.util.jar.Attributes$Name v, v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.String v, v, v, v, v;
boolean v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v := @parameter: java.util.jar.Manifest;
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(46, 47);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001/");
v = virtualinvoke v.<java.util.jar.Manifest: java.util.jar.Attributes getAttributes(java.lang.String)>(v);
v = null;
if v == null goto label;
v = <java.util.jar.Attributes$Name: java.util.jar.Attributes$Name SEALED>;
v = virtualinvoke v.<java.util.jar.Attributes: java.lang.String getValue(java.util.jar.Attributes$Name)>(v);
label:
if v != null goto label;
v = virtualinvoke v.<java.util.jar.Manifest: java.util.jar.Attributes getMainAttributes()>();
if v == null goto label;
v = <java.util.jar.Attributes$Name: java.util.jar.Attributes$Name SEALED>;
v = virtualinvoke v.<java.util.jar.Attributes: java.lang.String getValue(java.util.jar.Attributes$Name)>(v);
label:
v = "true";
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
return v;
}
private java.io.InputStream findLoadedResource(java.lang.String)
{
byte[] v, v;
java.io.ByteArrayInputStream v;
java.util.concurrent.ConcurrentHashMap v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.Object v;
java.lang.String v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentHashMap resourceEntryCache>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = v.<org.glassfish.web.loader.ResourceEntry: byte[] binaryContent>;
if v == null goto label;
v = new java.io.ByteArrayInputStream;
v = v.<org.glassfish.web.loader.ResourceEntry: byte[] binaryContent>;
specialinvoke v.<java.io.ByteArrayInputStream: void <init>(byte[])>(v);
return v;
label:
return null;
}
private java.lang.Class findLoadedClass0(java.lang.String)
{
java.util.concurrent.ConcurrentHashMap v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.Class v;
java.lang.Object v;
java.lang.String v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.concurrent.ConcurrentHashMap resourceEntryCache>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = v.<org.glassfish.web.loader.ResourceEntry: java.lang.Class loadedClass>;
return v;
label:
return null;
}
private void refreshPolicy()
{
java.lang.System$Logger v;
java.lang.System$Logger$Level v;
java.security.AccessControlException v;
org.glassfish.web.loader.WebappClassLoader v;
java.security.Policy v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
label:
v = staticinvoke <java.security.Policy: java.security.Policy getPolicy()>();
virtualinvoke v.<java.security.Policy: void refresh()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level TRACE>;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Throwable)>(v, "The policy refresh failed.", v);
label:
return;
catch java.security.AccessControlException from label to label with label;
}
private boolean validate(java.lang.String)
{
org.glassfish.web.loader.WebappClassLoader v;
java.lang.String v;
boolean v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
if v != null goto label;
return 0;
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("java.");
if v == 0 goto label;
return 0;
label:
return 1;
}
private static java.net.URL toURL(java.io.File)
{
java.lang.IllegalStateException v;
java.net.MalformedURLException v;
java.net.URL v;
java.io.IOException v;
java.io.File v, v;
java.lang.String v;
java.net.URI v;
v := @parameter: java.io.File;
label:
v = virtualinvoke v.<java.io.File: java.io.File getCanonicalFile()>();
label:
goto label;
label:
v := @caughtexception;
v = v;
label:
v = virtualinvoke v.<java.io.File: java.net.URI toURI()>();
v = virtualinvoke v.<java.net.URI: java.net.URL toURL()>();
label:
return v;
label:
v := @caughtexception;
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.File)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Could not convert \u to URL!");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.io.IOException from label to label with label;
catch java.net.MalformedURLException from label to label with label;
}
private static void deleteDir(java.io.File)
{
java.lang.Object[] v, v;
java.lang.String[] v, v;
java.lang.System$Logger$Level v, v;
int v, v;
java.lang.String v;
boolean v, v, v;
java.lang.System$Logger v, v;
java.io.File v, v;
v := @parameter: java.io.File;
v = virtualinvoke v.<java.io.File: java.lang.String[] list()>();
if v != null goto label;
v = newarray (java.lang.String)[0];
label:
v = v;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
v = virtualinvoke v.<java.io.File: boolean isDirectory()>();
if v == 0 goto label;
staticinvoke <org.glassfish.web.loader.WebappClassLoader: void deleteDir(java.io.File)>(v);
goto label;
label:
v = staticinvoke <com.sun.enterprise.util.io.FileUtils: boolean deleteFileMaybe(java.io.File)>(v);
if v != 0 goto label;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level WARNING>;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "AS-WEB-UTIL-00024", v);
label:
v = v + 1;
goto label;
label:
v = staticinvoke <com.sun.enterprise.util.io.FileUtils: boolean deleteFileMaybe(java.io.File)>(v);
if v != 0 goto label;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level WARNING>;
v = newarray (java.lang.Object)[1];
v[0] = v;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Object[])>(v, "AS-WEB-UTIL-00024", v);
label:
return;
}
private java.lang.String getJavaVersion()
{
org.glassfish.web.loader.WebappClassLoader v;
java.lang.Object v;
java.lang.String v;
java.security.PrivilegedAction v;
java.lang.SecurityManager v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v = <org.glassfish.web.loader.WebappClassLoader: java.lang.SecurityManager SECURITY_MANAGER>;
if v != null goto label;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("java.version");
return v;
label:
v = staticinvoke <org.glassfish.web.loader.WebappClassLoader$lambda_getJavaVersion_6__22: java.security.PrivilegedAction bootstrap$()>();
v = staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedAction)>(v);
return v;
}
private boolean isDelegateFirstClass(java.lang.String)
{
java.lang.String v, v;
boolean v, v, v, v, v, v, v;
java.util.function.Predicate v, v;
java.util.Set v, v;
java.util.stream.Stream v, v;
org.glassfish.web.loader.WebappClassLoader v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v = v.<org.glassfish.web.loader.WebappClassLoader: boolean delegate>;
if v == 0 goto label;
return 1;
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("java.");
if v == 0 goto label;
return 1;
label:
v = staticinvoke <org.glassfish.web.loader.WebappClassLoader: java.lang.String getPackageName(java.lang.String)>(v);
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.Set overridablePackages>;
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.glassfish.web.loader.WebappClassLoader$startsWith__23: java.util.function.Predicate bootstrap$(java.lang.String)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: boolean anyMatch(java.util.function.Predicate)>(v);
if v == 0 goto label;
return 0;
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("jakarta.faces.");
if v == 0 goto label;
v = v.<org.glassfish.web.loader.WebappClassLoader: boolean useMyFaces>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
v = <org.glassfish.web.loader.WebappClassLoader: java.util.Set DELEGATED_PACKAGES>;
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.glassfish.web.loader.WebappClassLoader$startsWith__24: java.util.function.Predicate bootstrap$(java.lang.String)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: boolean anyMatch(java.util.function.Predicate)>(v);
if v == 0 goto label;
return 1;
label:
return 0;
}
private boolean isDelegateFirstResource(java.lang.String)
{
java.util.function.Function v;
java.lang.String v;
boolean v, v, v, v, v, v, v;
java.util.function.Predicate v, v;
java.util.Set v, v;
java.util.stream.Stream v, v, v;
org.glassfish.web.loader.WebappClassLoader v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: java.lang.String;
v = v.<org.glassfish.web.loader.WebappClassLoader: boolean delegate>;
if v == 0 goto label;
return 1;
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("java/");
if v == 0 goto label;
return 1;
label:
v = v.<org.glassfish.web.loader.WebappClassLoader: java.util.Set overridablePackages>;
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = <org.glassfish.web.loader.WebappClassLoader: java.util.function.Function PACKAGE_TO_PATH>;
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.glassfish.web.loader.WebappClassLoader$startsWith__25: java.util.function.Predicate bootstrap$(java.lang.String)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: boolean anyMatch(java.util.function.Predicate)>(v);
if v == 0 goto label;
return 0;
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("jakarta/faces/");
if v == 0 goto label;
v = v.<org.glassfish.web.loader.WebappClassLoader: boolean useMyFaces>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
v = <org.glassfish.web.loader.WebappClassLoader: java.util.Set DELEGATED_RESOURCE_PATHS>;
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.glassfish.web.loader.WebappClassLoader$startsWith__26: java.util.function.Predicate bootstrap$(java.lang.String)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: boolean anyMatch(java.util.function.Predicate)>(v);
if v == 0 goto label;
return 1;
label:
return 0;
}
private transient void checkStatus(org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[])
{
java.lang.IllegalStateException v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus v, v;
int v, v;
org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[] v;
org.glassfish.web.loader.WebappClassLoader v;
java.lang.String v;
v := @this: org.glassfish.web.loader.WebappClassLoader;
v := @parameter: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus[];
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v.<org.glassfish.web.loader.WebappClassLoader: org.glassfish.web.loader.WebappClassLoader$LifeCycleStatus status>;
if v != v goto label;
return;
label:
v = v + 1;
goto label;
label:
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.web.loader.WebappClassLoader)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("ClassLoader is not in expected state: \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
}
private static java.lang.String toClassFilePath(java.lang.String)
{
java.lang.String v, v, v;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(46, 47);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u.class");
return v;
}
private static java.lang.String getPackageName(java.lang.String)
{
int v, v;
java.lang.String v, v;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: int lastIndexOf(int)>(46);
v = (int) -1;
if v != v goto label;
return "";
label:
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
return v;
}
static void <clinit>()
{
java.lang.System$Logger v;
java.lang.ThreadLocal v;
java.util.Set v, v;
java.util.function.Function v, v;
java.util.function.Supplier v;
java.lang.SecurityManager v;
java.util.stream.Stream v, v;
java.lang.Object v;
java.util.stream.Collector v;
staticinvoke <org.glassfish.web.loader.WebappClassLoader: boolean registerAsParallelCapable()>();
v = staticinvoke <org.glassfish.web.loader.LogFacade: java.lang.System$Logger getSysLogger(java.lang.Class)>(class "Lorg/glassfish/web/loader/WebappClassLoader;");
<org.glassfish.web.loader.WebappClassLoader: java.lang.System$Logger LOG> = v;
v = staticinvoke <org.glassfish.web.loader.WebappClassLoader$lambda_static_0__27: java.util.function.Function bootstrap$()>();
<org.glassfish.web.loader.WebappClassLoader: java.util.function.Function PACKAGE_TO_PATH> = v;
v = staticinvoke <java.util.Set: java.util.Set of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)>("jakarta", "javax", "sun", "org.xml.sax", "org.w3c.dom", "org.glassfish.wasp.standard", "com.sun.faces");
<org.glassfish.web.loader.WebappClassLoader: java.util.Set DELEGATED_PACKAGES> = v;
v = <org.glassfish.web.loader.WebappClassLoader: java.util.Set DELEGATED_PACKAGES>;
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = <org.glassfish.web.loader.WebappClassLoader: java.util.function.Function PACKAGE_TO_PATH>;
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toUnmodifiableSet()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
<org.glassfish.web.loader.WebappClassLoader: java.util.Set DELEGATED_RESOURCE_PATHS> = v;
v = staticinvoke <org.glassfish.web.loader.WebappClassLoader$lambda_static_1__28: java.util.function.Supplier bootstrap$()>();
v = staticinvoke <java.lang.ThreadLocal: java.lang.ThreadLocal withInitial(java.util.function.Supplier)>(v);
<org.glassfish.web.loader.WebappClassLoader: java.lang.ThreadLocal BYTECODE_PREPROCESSING> = v;
v = staticinvoke <java.lang.System: java.lang.SecurityManager getSecurityManager()>();
<org.glassfish.web.loader.WebappClassLoader: java.lang.SecurityManager SECURITY_MANAGER> = v;
return;
}
}