public class org.glassfish.internal.data.ApplicationInfo extends org.glassfish.internal.data.ModuleInfo
{
public static final java.lang.String APP_SERVICE_LOCATOR_PREFIX;
private static final java.lang.String APPLICATION_LOADER_FILES;
private static final java.lang.String WEB_LOADER_FILES;
private final java.util.Collection modules;
private final java.util.Deque reversedModules;
private final org.glassfish.api.deployment.archive.ReadableArchive source;
private final java.util.Map transientAppMetaData;
private java.lang.String libraries;
private boolean jakartaEEApp;
private java.lang.ClassLoader appClassLoader;
private boolean isLoaded;
private org.glassfish.hk.api.ServiceLocator appServiceLocator;
private org.glassfish.internal.data.ApplicationInfo$DeploymentFailedListener deploymentFailedListener;
public void <init>(org.glassfish.api.event.Events, org.glassfish.api.deployment.archive.ReadableArchive, java.lang.String)
{
org.glassfish.api.event.Events v;
java.util.HashMap v;
java.util.ArrayList v;
org.glassfish.api.deployment.archive.ReadableArchive v;
org.glassfish.internal.data.ApplicationInfo v;
java.lang.String v;
java.util.LinkedList v;
java.util.LinkedHashSet v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v := @parameter: org.glassfish.api.event.Events;
v := @parameter: org.glassfish.api.deployment.archive.ReadableArchive;
v := @parameter: java.lang.String;
v = new java.util.LinkedHashSet;
specialinvoke v.<java.util.LinkedHashSet: void <init>()>();
specialinvoke v.<org.glassfish.internal.data.ModuleInfo: void <init>(org.glassfish.api.event.Events,java.lang.String,java.util.Collection,java.util.Properties)>(v, v, v, null);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<org.glassfish.internal.data.ApplicationInfo: java.util.Collection modules> = v;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<org.glassfish.internal.data.ApplicationInfo: java.util.Deque reversedModules> = v;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v.<org.glassfish.internal.data.ApplicationInfo: java.util.Map transientAppMetaData> = v;
v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.api.deployment.archive.ReadableArchive source> = v;
return;
}
private void createServiceLocator()
{
org.glassfish.internal.data.ApplicationInfo$DeploymentFailedListener v, v;
org.glassfish.api.event.Events v;
org.glassfish.api.deployment.archive.ReadableArchive v;
org.glassfish.internal.data.ApplicationInfo v;
java.lang.String v, v;
org.glassfish.hk.api.ServiceLocator v, v;
org.glassfish.hk.api.ServiceLocatorFactory v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v = v.<org.glassfish.internal.data.ApplicationInfo: java.lang.String name>;
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[])>("JavaEEApp.\u0001");
v = staticinvoke <org.glassfish.hk.api.ServiceLocatorFactory: org.glassfish.hk.api.ServiceLocatorFactory getInstance()>();
v = virtualinvoke v.<org.glassfish.hk.api.ServiceLocatorFactory: org.glassfish.hk.api.ServiceLocator find(java.lang.String)>(v);
if v == null goto label;
virtualinvoke v.<org.glassfish.hk.api.ServiceLocatorFactory: void destroy(java.lang.String)>(v);
label:
v = virtualinvoke v.<org.glassfish.hk.api.ServiceLocatorFactory: org.glassfish.hk.api.ServiceLocator create(java.lang.String)>(v);
v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.hk.api.ServiceLocator appServiceLocator> = v;
v = new org.glassfish.internal.data.ApplicationInfo$DeploymentFailedListener;
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.api.deployment.archive.ReadableArchive source>;
specialinvoke v.<org.glassfish.internal.data.ApplicationInfo$DeploymentFailedListener: void <init>(org.glassfish.internal.data.ApplicationInfo,org.glassfish.api.deployment.archive.ReadableArchive)>(v, v);
v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.internal.data.ApplicationInfo$DeploymentFailedListener deploymentFailedListener> = v;
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.api.event.Events events>;
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.internal.data.ApplicationInfo$DeploymentFailedListener deploymentFailedListener>;
interfaceinvoke v.<org.glassfish.api.event.Events: void register(org.glassfish.api.event.EventListener)>(v);
return;
}
private void disposeServiceLocator()
{
org.glassfish.internal.data.ApplicationInfo$DeploymentFailedListener v, v;
org.glassfish.api.event.Events v;
org.glassfish.internal.data.ApplicationInfo v;
org.glassfish.hk.api.ServiceLocator v, v;
org.glassfish.hk.api.ServiceLocatorFactory v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.internal.data.ApplicationInfo$DeploymentFailedListener deploymentFailedListener>;
if v == null goto label;
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.api.event.Events events>;
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.internal.data.ApplicationInfo$DeploymentFailedListener deploymentFailedListener>;
interfaceinvoke v.<org.glassfish.api.event.Events: boolean unregister(org.glassfish.api.event.EventListener)>(v);
v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.internal.data.ApplicationInfo$DeploymentFailedListener deploymentFailedListener> = null;
label:
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.hk.api.ServiceLocator appServiceLocator>;
if v == null goto label;
v = staticinvoke <org.glassfish.hk.api.ServiceLocatorFactory: org.glassfish.hk.api.ServiceLocatorFactory getInstance()>();
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.hk.api.ServiceLocator appServiceLocator>;
virtualinvoke v.<org.glassfish.hk.api.ServiceLocatorFactory: void destroy(org.glassfish.hk.api.ServiceLocator)>(v);
v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.hk.api.ServiceLocator appServiceLocator> = null;
label:
return;
}
public void add(org.glassfish.internal.data.EngineRef)
{
org.glassfish.internal.data.ApplicationInfo v;
java.util.Set v;
org.glassfish.internal.data.EngineRef v;
java.util.LinkedList v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v := @parameter: org.glassfish.internal.data.EngineRef;
v = v.<org.glassfish.internal.data.ApplicationInfo: java.util.Set engines>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = v.<org.glassfish.internal.data.ApplicationInfo: java.util.LinkedList reversedEngines>;
virtualinvoke v.<java.util.LinkedList: void addFirst(java.lang.Object)>(v);
return;
}
public void addTransientAppMetaData(java.lang.String, java.lang.Object)
{
java.util.Map v;
org.glassfish.internal.data.ApplicationInfo v;
java.lang.Object v;
java.lang.String v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Object;
if v == null goto label;
v = v.<org.glassfish.internal.data.ApplicationInfo: java.util.Map transientAppMetaData>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
return;
}
public java.lang.Object getTransientAppMetaData(java.lang.String, java.lang.Class)
{
java.util.Map v;
org.glassfish.internal.data.ApplicationInfo v;
java.lang.Class v;
java.lang.Object v, v;
java.lang.String v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Class;
v = v.<org.glassfish.internal.data.ApplicationInfo: java.util.Map transientAppMetaData>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = virtualinvoke v.<java.lang.Class: java.lang.Object cast(java.lang.Object)>(v);
return v;
label:
return null;
}
public java.lang.String getName()
{
org.glassfish.internal.data.ApplicationInfo v;
java.lang.String v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v = v.<org.glassfish.internal.data.ApplicationInfo: java.lang.String name>;
return v;
}
public java.lang.String getLibraries()
{
org.glassfish.internal.data.ApplicationInfo v;
java.lang.String v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v = v.<org.glassfish.internal.data.ApplicationInfo: java.lang.String libraries>;
return v;
}
public void setLibraries(java.lang.String)
{
org.glassfish.internal.data.ApplicationInfo v;
java.lang.String v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v := @parameter: java.lang.String;
v.<org.glassfish.internal.data.ApplicationInfo: java.lang.String libraries> = v;
return;
}
public java.lang.ClassLoader getAppClassLoader()
{
org.glassfish.internal.data.ApplicationInfo v;
java.lang.ClassLoader v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v = v.<org.glassfish.internal.data.ApplicationInfo: java.lang.ClassLoader appClassLoader>;
return v;
}
public void setAppClassLoader(java.lang.ClassLoader)
{
org.glassfish.internal.data.ApplicationInfo v;
java.lang.ClassLoader v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v := @parameter: java.lang.ClassLoader;
v.<org.glassfish.internal.data.ApplicationInfo: java.lang.ClassLoader appClassLoader> = v;
return;
}
public org.glassfish.hk.api.ServiceLocator getAppServiceLocator()
{
org.glassfish.internal.data.ApplicationInfo v;
org.glassfish.hk.api.ServiceLocator v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.hk.api.ServiceLocator appServiceLocator>;
return v;
}
public boolean isJakartaEEApp()
{
org.glassfish.internal.data.ApplicationInfo v;
boolean v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v = v.<org.glassfish.internal.data.ApplicationInfo: boolean jakartaEEApp>;
return v;
}
public void detectIfJakartaEEApp(java.util.List)
{
java.util.List v;
java.util.Iterator v;
org.glassfish.internal.data.ApplicationInfo v;
java.lang.Object v;
org.glassfish.api.container.Sniffer v;
boolean v, v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v := @parameter: java.util.List;
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 = virtualinvoke v.<org.glassfish.internal.data.EngineInfo: org.glassfish.api.container.Sniffer getSniffer()>();
v = interfaceinvoke v.<org.glassfish.api.container.Sniffer: boolean isJakartaEE()>();
if v == 0 goto label;
v.<org.glassfish.internal.data.ApplicationInfo: boolean jakartaEEApp> = 1;
label:
return;
}
public org.glassfish.api.deployment.archive.ReadableArchive getSource()
{
org.glassfish.internal.data.ApplicationInfo v;
org.glassfish.api.deployment.archive.ReadableArchive v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.api.deployment.archive.ReadableArchive source>;
return v;
}
public java.util.Collection getModuleInfos()
{
org.glassfish.internal.data.ApplicationInfo v;
java.util.Collection v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v = v.<org.glassfish.internal.data.ApplicationInfo: java.util.Collection modules>;
return v;
}
public java.util.Collection getSniffers()
{
java.util.Iterator v, v;
java.util.Collection v, v;
java.util.Set v;
java.util.ArrayList v;
org.glassfish.internal.data.EngineInfo v;
org.glassfish.internal.data.ApplicationInfo v;
java.lang.Object v, v;
org.glassfish.api.container.Sniffer v;
boolean v, v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.glassfish.internal.data.ApplicationInfo: java.util.Set engines>;
v = interfaceinvoke v.<java.util.Set: 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 = virtualinvoke v.<org.glassfish.internal.data.EngineRef: org.glassfish.internal.data.EngineInfo getContainerInfo()>();
v = virtualinvoke v.<org.glassfish.internal.data.EngineInfo: org.glassfish.api.container.Sniffer getSniffer()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.glassfish.internal.data.ApplicationInfo: java.util.Collection modules>;
v = interfaceinvoke v.<java.util.Collection: 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 = virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: java.util.Collection getSniffers()>();
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
goto label;
label:
return v;
}
public java.util.Collection getEngineRefsForContainer(java.lang.Class)
{
java.util.Iterator v;
java.util.Collection v;
org.glassfish.internal.data.EngineRef v;
java.lang.Exception v;
org.glassfish.internal.data.ApplicationInfo v;
java.lang.Class v;
java.lang.Object v;
java.util.LinkedHashSet v;
boolean v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v := @parameter: java.lang.Class;
v = new java.util.LinkedHashSet;
specialinvoke v.<java.util.LinkedHashSet: void <init>()>();
v = v.<org.glassfish.internal.data.ApplicationInfo: java.util.Collection modules>;
v = interfaceinvoke v.<java.util.Collection: 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 = null;
label:
v = virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: org.glassfish.internal.data.EngineRef getEngineRefForContainer(java.lang.Class)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
if v == null goto label;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
catch java.lang.Exception from label to label with label;
}
protected org.glassfish.internal.deployment.ExtendedDeploymentContext getSubContext(org.glassfish.internal.data.ModuleInfo, org.glassfish.internal.deployment.ExtendedDeploymentContext)
{
org.glassfish.internal.data.ApplicationInfo v;
org.glassfish.internal.data.ModuleInfo v;
org.glassfish.internal.deployment.ExtendedDeploymentContext v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v := @parameter: org.glassfish.internal.data.ModuleInfo;
v := @parameter: org.glassfish.internal.deployment.ExtendedDeploymentContext;
return v;
}
public void load(org.glassfish.internal.deployment.ExtendedDeploymentContext, org.glassfish.internal.data.ProgressTracker) throws java.lang.Exception
{
org.glassfish.internal.data.ProgressTracker v;
org.glassfish.api.event.EventTypes v;
org.glassfish.api.event.Events v, v;
org.glassfish.internal.deployment.ExtendedDeploymentContext$Phase v;
org.glassfish.internal.deployment.DeploymentTracing$Mark v, v, v;
java.lang.String v, v;
boolean v, v;
org.glassfish.api.event.EventListener$Event v;
java.util.Iterator v;
org.glassfish.internal.deployment.ExtendedDeploymentContext v, v;
org.glassfish.internal.deployment.DeploymentTracing$ModuleMark v, v;
java.util.Collection v;
java.util.logging.Logger v;
org.glassfish.internal.data.ApplicationInfo v;
java.lang.Object v, v;
java.lang.ClassLoader v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v := @parameter: org.glassfish.internal.deployment.ExtendedDeploymentContext;
v := @parameter: org.glassfish.internal.data.ProgressTracker;
v = interfaceinvoke v.<org.glassfish.internal.deployment.ExtendedDeploymentContext: java.util.logging.Logger getLogger()>();
v = v.<org.glassfish.internal.data.ApplicationInfo: boolean isLoaded>;
if v == 0 goto label;
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>("Application is already loaded.");
return;
label:
v = <org.glassfish.internal.deployment.ExtendedDeploymentContext$Phase: org.glassfish.internal.deployment.ExtendedDeploymentContext$Phase LOAD>;
interfaceinvoke v.<org.glassfish.internal.deployment.ExtendedDeploymentContext: void setPhase(org.glassfish.internal.deployment.ExtendedDeploymentContext$Phase)>(v);
v = interfaceinvoke v.<org.glassfish.internal.deployment.ExtendedDeploymentContext: java.lang.Object getModuleMetaData(java.lang.Class)>(class "Lorg/glassfish/internal/deployment/DeploymentTracing;");
if v == null goto label;
v = <org.glassfish.internal.deployment.DeploymentTracing$Mark: org.glassfish.internal.deployment.DeploymentTracing$Mark LOAD>;
virtualinvoke v.<org.glassfish.internal.deployment.DeploymentTracing: void addMark(org.glassfish.internal.deployment.DeploymentTracing$Mark)>(v);
label:
specialinvoke v.<org.glassfish.internal.data.ModuleInfo: void load(org.glassfish.internal.deployment.ExtendedDeploymentContext,org.glassfish.internal.data.ProgressTracker)>(v, v);
v = interfaceinvoke v.<org.glassfish.internal.deployment.ExtendedDeploymentContext: java.lang.ClassLoader getClassLoader()>();
v.<org.glassfish.internal.data.ApplicationInfo: java.lang.ClassLoader appClassLoader> = v;
v = v.<org.glassfish.internal.data.ApplicationInfo: java.util.Collection modules>;
v = interfaceinvoke v.<java.util.Collection: 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()>();
if v == null goto label;
v = <org.glassfish.internal.deployment.DeploymentTracing$ModuleMark: org.glassfish.internal.deployment.DeploymentTracing$ModuleMark LOAD>;
v = virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: java.lang.String getName()>();
virtualinvoke v.<org.glassfish.internal.deployment.DeploymentTracing: void addModuleMark(org.glassfish.internal.deployment.DeploymentTracing$ModuleMark,java.lang.String)>(v, v);
label:
v = virtualinvoke v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.internal.deployment.ExtendedDeploymentContext getSubContext(org.glassfish.internal.data.ModuleInfo,org.glassfish.internal.deployment.ExtendedDeploymentContext)>(v, v);
virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: void load(org.glassfish.internal.deployment.ExtendedDeploymentContext,org.glassfish.internal.data.ProgressTracker)>(v, v);
if v == null goto label;
v = <org.glassfish.internal.deployment.DeploymentTracing$ModuleMark: org.glassfish.internal.deployment.DeploymentTracing$ModuleMark LOADED>;
v = virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: java.lang.String getName()>();
virtualinvoke v.<org.glassfish.internal.deployment.DeploymentTracing: void addModuleMark(org.glassfish.internal.deployment.DeploymentTracing$ModuleMark,java.lang.String)>(v, v);
goto label;
label:
specialinvoke v.<org.glassfish.internal.data.ApplicationInfo: void populateApplicationServiceLocator()>();
v.<org.glassfish.internal.data.ApplicationInfo: boolean isLoaded> = 1;
if v == null goto label;
v = <org.glassfish.internal.deployment.DeploymentTracing$Mark: org.glassfish.internal.deployment.DeploymentTracing$Mark LOAD_EVENTS>;
virtualinvoke v.<org.glassfish.internal.deployment.DeploymentTracing: void addMark(org.glassfish.internal.deployment.DeploymentTracing$Mark)>(v);
label:
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.api.event.Events events>;
if v == null goto label;
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.api.event.Events events>;
v = new org.glassfish.api.event.EventListener$Event;
v = <org.glassfish.internal.deployment.Deployment: org.glassfish.api.event.EventTypes APPLICATION_LOADED>;
specialinvoke v.<org.glassfish.api.event.EventListener$Event: void <init>(org.glassfish.api.event.EventTypes,java.lang.Object)>(v, v);
interfaceinvoke v.<org.glassfish.api.event.Events: void send(org.glassfish.api.event.EventListener$Event,boolean)>(v, 0);
label:
if v == null goto label;
v = <org.glassfish.internal.deployment.DeploymentTracing$Mark: org.glassfish.internal.deployment.DeploymentTracing$Mark LOADED>;
virtualinvoke v.<org.glassfish.internal.deployment.DeploymentTracing: void addMark(org.glassfish.internal.deployment.DeploymentTracing$Mark)>(v);
label:
return;
}
public void start(org.glassfish.internal.deployment.ExtendedDeploymentContext, org.glassfish.internal.data.ProgressTracker) throws java.lang.Exception
{
org.glassfish.internal.data.ProgressTracker v;
org.glassfish.api.event.EventTypes v;
org.glassfish.api.event.Events v, v;
org.glassfish.internal.deployment.DeploymentTracing$Mark v, v, v;
java.lang.String v, v;
boolean v;
org.glassfish.api.event.EventListener$Event v;
java.util.Iterator v;
org.glassfish.internal.deployment.ExtendedDeploymentContext v, v;
org.glassfish.internal.deployment.DeploymentTracing$ModuleMark v, v;
java.util.Collection v;
org.glassfish.internal.data.ApplicationInfo v;
java.lang.Object v, v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v := @parameter: org.glassfish.internal.deployment.ExtendedDeploymentContext;
v := @parameter: org.glassfish.internal.data.ProgressTracker;
v = interfaceinvoke v.<org.glassfish.internal.deployment.ExtendedDeploymentContext: java.lang.Object getModuleMetaData(java.lang.Class)>(class "Lorg/glassfish/internal/deployment/DeploymentTracing;");
if v == null goto label;
v = <org.glassfish.internal.deployment.DeploymentTracing$Mark: org.glassfish.internal.deployment.DeploymentTracing$Mark START>;
virtualinvoke v.<org.glassfish.internal.deployment.DeploymentTracing: void addMark(org.glassfish.internal.deployment.DeploymentTracing$Mark)>(v);
label:
specialinvoke v.<org.glassfish.internal.data.ModuleInfo: void start(org.glassfish.api.deployment.DeploymentContext,org.glassfish.internal.data.ProgressTracker)>(v, v);
v = virtualinvoke v.<org.glassfish.internal.data.ApplicationInfo: java.util.Collection getModuleInfos()>();
v = interfaceinvoke v.<java.util.Collection: 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()>();
if v == null goto label;
v = <org.glassfish.internal.deployment.DeploymentTracing$ModuleMark: org.glassfish.internal.deployment.DeploymentTracing$ModuleMark START>;
v = virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: java.lang.String getName()>();
virtualinvoke v.<org.glassfish.internal.deployment.DeploymentTracing: void addModuleMark(org.glassfish.internal.deployment.DeploymentTracing$ModuleMark,java.lang.String)>(v, v);
label:
v = virtualinvoke v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.internal.deployment.ExtendedDeploymentContext getSubContext(org.glassfish.internal.data.ModuleInfo,org.glassfish.internal.deployment.ExtendedDeploymentContext)>(v, v);
virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: void start(org.glassfish.api.deployment.DeploymentContext,org.glassfish.internal.data.ProgressTracker)>(v, v);
if v == null goto label;
v = <org.glassfish.internal.deployment.DeploymentTracing$ModuleMark: org.glassfish.internal.deployment.DeploymentTracing$ModuleMark STARTED>;
v = virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: java.lang.String getName()>();
virtualinvoke v.<org.glassfish.internal.deployment.DeploymentTracing: void addModuleMark(org.glassfish.internal.deployment.DeploymentTracing$ModuleMark,java.lang.String)>(v, v);
goto label;
label:
if v == null goto label;
v = <org.glassfish.internal.deployment.DeploymentTracing$Mark: org.glassfish.internal.deployment.DeploymentTracing$Mark START_EVENTS>;
virtualinvoke v.<org.glassfish.internal.deployment.DeploymentTracing: void addMark(org.glassfish.internal.deployment.DeploymentTracing$Mark)>(v);
label:
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.api.event.Events events>;
if v == null goto label;
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.api.event.Events events>;
v = new org.glassfish.api.event.EventListener$Event;
v = <org.glassfish.internal.deployment.Deployment: org.glassfish.api.event.EventTypes APPLICATION_STARTED>;
specialinvoke v.<org.glassfish.api.event.EventListener$Event: void <init>(org.glassfish.api.event.EventTypes,java.lang.Object)>(v, v);
interfaceinvoke v.<org.glassfish.api.event.Events: void send(org.glassfish.api.event.EventListener$Event,boolean)>(v, 0);
label:
if v == null goto label;
v = <org.glassfish.internal.deployment.DeploymentTracing$Mark: org.glassfish.internal.deployment.DeploymentTracing$Mark STARTED>;
virtualinvoke v.<org.glassfish.internal.deployment.DeploymentTracing: void addMark(org.glassfish.internal.deployment.DeploymentTracing$Mark)>(v);
label:
return;
}
public void stop(org.glassfish.internal.deployment.ExtendedDeploymentContext, java.util.logging.Logger)
{
java.lang.Throwable v;
org.glassfish.api.event.EventTypes v;
org.glassfish.api.event.Events v, v;
java.util.Deque v;
java.lang.Thread v, v, v, v;
boolean v;
org.glassfish.api.event.EventListener$Event v;
java.util.Iterator v;
org.glassfish.internal.deployment.ExtendedDeploymentContext v, v;
java.util.logging.Logger v;
org.glassfish.internal.data.ApplicationInfo v;
java.lang.Object v;
java.lang.ClassLoader v, v, v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v := @parameter: org.glassfish.internal.deployment.ExtendedDeploymentContext;
v := @parameter: java.util.logging.Logger;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = virtualinvoke v.<java.lang.Thread: java.lang.ClassLoader getContextClassLoader()>();
label:
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = v.<org.glassfish.internal.data.ApplicationInfo: java.lang.ClassLoader appClassLoader>;
virtualinvoke v.<java.lang.Thread: void setContextClassLoader(java.lang.ClassLoader)>(v);
v = v.<org.glassfish.internal.data.ApplicationInfo: java.lang.ClassLoader appClassLoader>;
interfaceinvoke v.<org.glassfish.internal.deployment.ExtendedDeploymentContext: void setClassLoader(java.lang.ClassLoader)>(v);
specialinvoke v.<org.glassfish.internal.data.ModuleInfo: void stop(org.glassfish.internal.deployment.ExtendedDeploymentContext,java.util.logging.Logger)>(v, v);
v = v.<org.glassfish.internal.data.ApplicationInfo: java.util.Deque reversedModules>;
v = interfaceinvoke v.<java.util.Deque: 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 = virtualinvoke v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.internal.deployment.ExtendedDeploymentContext getSubContext(org.glassfish.internal.data.ModuleInfo,org.glassfish.internal.deployment.ExtendedDeploymentContext)>(v, v);
virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: void stop(org.glassfish.internal.deployment.ExtendedDeploymentContext,java.util.logging.Logger)>(v, v);
goto label;
label:
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.api.event.Events events>;
if v == null goto label;
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.api.event.Events events>;
v = new org.glassfish.api.event.EventListener$Event;
v = <org.glassfish.internal.deployment.Deployment: org.glassfish.api.event.EventTypes APPLICATION_STOPPED>;
specialinvoke v.<org.glassfish.api.event.EventListener$Event: void <init>(org.glassfish.api.event.EventTypes,java.lang.Object)>(v, v);
interfaceinvoke v.<org.glassfish.api.event.Events: void send(org.glassfish.api.event.EventListener$Event,boolean)>(v, 0);
label:
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void setContextClassLoader(java.lang.ClassLoader)>(v);
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void setContextClassLoader(java.lang.ClassLoader)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void unload(org.glassfish.internal.deployment.ExtendedDeploymentContext)
{
java.lang.Throwable v;
org.glassfish.api.event.EventTypes v;
org.glassfish.api.event.Events v, v;
java.util.Deque v;
java.lang.Thread v, v, v, v;
boolean v, v;
org.glassfish.api.event.EventListener$Event v;
java.util.Iterator v;
org.glassfish.internal.deployment.ExtendedDeploymentContext v, v;
java.util.logging.Logger v;
org.glassfish.internal.data.ApplicationInfo v;
java.lang.Object v;
java.lang.ClassLoader v, v, v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v := @parameter: org.glassfish.internal.deployment.ExtendedDeploymentContext;
v = interfaceinvoke v.<org.glassfish.internal.deployment.ExtendedDeploymentContext: java.util.logging.Logger getLogger()>();
v = v.<org.glassfish.internal.data.ApplicationInfo: boolean isLoaded>;
if v != 0 goto label;
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>("Application is already unloaded.");
return;
label:
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = virtualinvoke v.<java.lang.Thread: java.lang.ClassLoader getContextClassLoader()>();
label:
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = v.<org.glassfish.internal.data.ApplicationInfo: java.lang.ClassLoader appClassLoader>;
virtualinvoke v.<java.lang.Thread: void setContextClassLoader(java.lang.ClassLoader)>(v);
v = v.<org.glassfish.internal.data.ApplicationInfo: java.lang.ClassLoader appClassLoader>;
interfaceinvoke v.<org.glassfish.internal.deployment.ExtendedDeploymentContext: void setClassLoader(java.lang.ClassLoader)>(v);
specialinvoke v.<org.glassfish.internal.data.ModuleInfo: void unload(org.glassfish.internal.deployment.ExtendedDeploymentContext)>(v);
v = v.<org.glassfish.internal.data.ApplicationInfo: java.util.Deque reversedModules>;
v = interfaceinvoke v.<java.util.Deque: 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 = virtualinvoke v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.internal.deployment.ExtendedDeploymentContext getSubContext(org.glassfish.internal.data.ModuleInfo,org.glassfish.internal.deployment.ExtendedDeploymentContext)>(v, v);
virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: void unload(org.glassfish.internal.deployment.ExtendedDeploymentContext)>(v);
goto label;
label:
v.<org.glassfish.internal.data.ApplicationInfo: boolean isLoaded> = 0;
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.api.event.Events events>;
if v == null goto label;
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.api.event.Events events>;
v = new org.glassfish.api.event.EventListener$Event;
v = <org.glassfish.internal.deployment.Deployment: org.glassfish.api.event.EventTypes APPLICATION_UNLOADED>;
specialinvoke v.<org.glassfish.api.event.EventListener$Event: void <init>(org.glassfish.api.event.EventTypes,java.lang.Object)>(v, v);
interfaceinvoke v.<org.glassfish.api.event.Events: void send(org.glassfish.api.event.EventListener$Event,boolean)>(v, 0);
label:
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void setContextClassLoader(java.lang.ClassLoader)>(v);
interfaceinvoke v.<org.glassfish.internal.deployment.ExtendedDeploymentContext: void setClassLoader(java.lang.ClassLoader)>(null);
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void setContextClassLoader(java.lang.ClassLoader)>(v);
interfaceinvoke v.<org.glassfish.internal.deployment.ExtendedDeploymentContext: void setClassLoader(java.lang.ClassLoader)>(null);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public boolean suspend(java.util.logging.Logger)
{
java.util.Iterator v;
java.util.Deque v;
java.util.logging.Logger v;
org.glassfish.internal.data.ApplicationInfo v;
java.lang.Object v;
boolean v, v, v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v := @parameter: java.util.logging.Logger;
v = specialinvoke v.<org.glassfish.internal.data.ModuleInfo: boolean suspend(java.util.logging.Logger)>(v);
v = v.<org.glassfish.internal.data.ApplicationInfo: java.util.Deque reversedModules>;
v = interfaceinvoke v.<java.util.Deque: 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 = virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: boolean suspend(java.util.logging.Logger)>(v);
if v != 0 goto label;
v = 0;
goto label;
label:
return v;
}
public boolean resume(java.util.logging.Logger)
{
java.util.Iterator v;
java.util.Collection v;
java.util.logging.Logger v;
org.glassfish.internal.data.ApplicationInfo v;
java.lang.Object v;
boolean v, v, v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v := @parameter: java.util.logging.Logger;
v = specialinvoke v.<org.glassfish.internal.data.ModuleInfo: boolean resume(java.util.logging.Logger)>(v);
v = v.<org.glassfish.internal.data.ApplicationInfo: java.util.Collection modules>;
v = interfaceinvoke v.<java.util.Collection: 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 = virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: boolean resume(java.util.logging.Logger)>(v);
if v != 0 goto label;
v = 0;
goto label;
label:
return v;
}
public void clean(org.glassfish.internal.deployment.ExtendedDeploymentContext) throws java.lang.Exception
{
org.glassfish.api.event.EventTypes v;
org.glassfish.api.event.Events v, v;
java.util.Deque v;
boolean v, v, v;
org.glassfish.api.event.EventListener$Event v;
java.util.Iterator v, v, v;
org.glassfish.internal.deployment.ExtendedDeploymentContext v, v;
java.util.Collection v;
java.util.Set v, v;
java.lang.Exception v, v;
org.glassfish.internal.data.ApplicationInfo v;
java.lang.Class v, v;
java.lang.Object v, v, v, v, v;
java.lang.ClassLoader v, v, v;
org.glassfish.hk.api.ServiceLocator v, v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v := @parameter: org.glassfish.internal.deployment.ExtendedDeploymentContext;
specialinvoke v.<org.glassfish.internal.data.ModuleInfo: void clean(org.glassfish.internal.deployment.ExtendedDeploymentContext)>(v);
v = v.<org.glassfish.internal.data.ApplicationInfo: java.util.Deque reversedModules>;
v = interfaceinvoke v.<java.util.Deque: 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 = virtualinvoke v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.internal.deployment.ExtendedDeploymentContext getSubContext(org.glassfish.internal.data.ModuleInfo,org.glassfish.internal.deployment.ExtendedDeploymentContext)>(v, v);
virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: void clean(org.glassfish.internal.deployment.ExtendedDeploymentContext)>(v);
goto label;
label:
v = v.<org.glassfish.internal.data.ApplicationInfo: java.lang.ClassLoader appClassLoader>;
if v == null goto label;
label:
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.hk.api.ServiceLocator appServiceLocator>;
if v == null goto label;
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.hk.api.ServiceLocator appServiceLocator>;
v = v.<org.glassfish.internal.data.ApplicationInfo: java.lang.ClassLoader appClassLoader>;
interfaceinvoke v.<org.glassfish.hk.api.ServiceLocator: void preDestroy(java.lang.Object)>(v);
goto label;
label:
v = class "Lorg/glassfish/hk2/api/PreDestroy;";
v = v.<org.glassfish.internal.data.ApplicationInfo: java.lang.ClassLoader appClassLoader>;
v = virtualinvoke v.<java.lang.Class: java.lang.Object cast(java.lang.Object)>(v);
interfaceinvoke v.<org.glassfish.hk.api.PreDestroy: void preDestroy()>();
label:
goto label;
label:
v := @caughtexception;
label:
v.<org.glassfish.internal.data.ApplicationInfo: java.lang.ClassLoader appClassLoader> = null;
label:
v = virtualinvoke v.<org.glassfish.internal.data.ApplicationInfo: java.util.Collection getModuleInfos()>();
v = interfaceinvoke v.<java.util.Collection: 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 = virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: java.util.Set getClassLoaders()>();
if v == null goto label;
v = virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: java.util.Set getClassLoaders()>();
v = interfaceinvoke v.<java.util.Set: 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 = class "Lorg/glassfish/hk2/api/PreDestroy;";
v = virtualinvoke v.<java.lang.Class: java.lang.Object cast(java.lang.Object)>(v);
interfaceinvoke v.<org.glassfish.hk.api.PreDestroy: void preDestroy()>();
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: void cleanClassLoaders()>();
goto label;
label:
specialinvoke v.<org.glassfish.internal.data.ApplicationInfo: void disposeServiceLocator()>();
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.api.event.Events events>;
if v == null goto label;
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.api.event.Events events>;
v = new org.glassfish.api.event.EventListener$Event;
v = <org.glassfish.internal.deployment.Deployment: org.glassfish.api.event.EventTypes APPLICATION_CLEANED>;
specialinvoke v.<org.glassfish.api.event.EventListener$Event: void <init>(org.glassfish.api.event.EventTypes,java.lang.Object)>(v, v);
interfaceinvoke v.<org.glassfish.api.event.Events: void send(org.glassfish.api.event.EventListener$Event,boolean)>(v, 0);
label:
return;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
}
public void save(com.sun.enterprise.config.serverbeans.Application) throws org.jvnet.hk.config.TransactionFailure, java.beans.PropertyVetoException
{
com.sun.enterprise.config.serverbeans.Application v;
java.lang.String v, v;
boolean v, v;
java.util.Iterator v, v;
com.sun.enterprise.config.serverbeans.Module v;
java.util.Collection v;
java.util.Set v;
org.jvnet.hk.config.ConfigBeanProxy v, v;
java.util.List v, v;
org.glassfish.internal.data.ApplicationInfo v;
java.lang.Object v, v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v := @parameter: com.sun.enterprise.config.serverbeans.Application;
v = v.<org.glassfish.internal.data.ApplicationInfo: java.util.Set engines>;
v = interfaceinvoke v.<java.util.Set: 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.enterprise.config.serverbeans.Application: org.jvnet.hk.config.ConfigBeanProxy createChild(java.lang.Class)>(class "Lcom/sun/enterprise/config/serverbeans/Engine;");
v = interfaceinvoke v.<com.sun.enterprise.config.serverbeans.Application: java.util.List getEngine()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
virtualinvoke v.<org.glassfish.internal.data.EngineRef: void save(com.sun.enterprise.config.serverbeans.Engine)>(v);
goto label;
label:
v = v.<org.glassfish.internal.data.ApplicationInfo: java.util.Collection modules>;
v = interfaceinvoke v.<java.util.Collection: 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 = virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: java.lang.String getName()>();
v = interfaceinvoke v.<com.sun.enterprise.config.serverbeans.Application: com.sun.enterprise.config.serverbeans.Module getModule(java.lang.String)>(v);
if v != null goto label;
v = interfaceinvoke v.<com.sun.enterprise.config.serverbeans.Application: org.jvnet.hk.config.ConfigBeanProxy createChild(java.lang.Class)>(class "Lcom/sun/enterprise/config/serverbeans/Module;");
v = virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: java.lang.String getName()>();
interfaceinvoke v.<com.sun.enterprise.config.serverbeans.Module: void setName(java.lang.String)>(v);
v = interfaceinvoke v.<com.sun.enterprise.config.serverbeans.Application: java.util.List getModule()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: void save(com.sun.enterprise.config.serverbeans.Module)>(v);
goto label;
label:
return;
}
public void addModule(org.glassfish.internal.data.ModuleInfo)
{
org.glassfish.internal.data.ModuleInfo v;
java.util.Collection v;
org.glassfish.internal.data.ApplicationInfo v;
java.util.Deque v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v := @parameter: org.glassfish.internal.data.ModuleInfo;
v = v.<org.glassfish.internal.data.ApplicationInfo: java.util.Collection modules>;
interfaceinvoke v.<java.util.Collection: boolean add(java.lang.Object)>(v);
v = v.<org.glassfish.internal.data.ApplicationInfo: java.util.Deque reversedModules>;
interfaceinvoke v.<java.util.Deque: void addFirst(java.lang.Object)>(v);
return;
}
public boolean isLoaded()
{
org.glassfish.internal.data.ApplicationInfo v;
boolean v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
v = v.<org.glassfish.internal.data.ApplicationInfo: boolean isLoaded>;
return v;
}
private void populateApplicationServiceLocator() throws java.io.IOException
{
java.util.HashSet v;
java.util.LinkedList v;
boolean v, v, v;
org.glassfish.internal.data.ApplicationClassLoadingPostProcessor v, v;
java.util.Iterator v, v;
java.util.Collection v;
java.util.ServiceLoader v;
org.glassfish.internal.data.ApplicationInfo v;
java.lang.Object v, v;
java.lang.ClassLoader v, v, v, v, v;
org.glassfish.hk.api.ServiceLocator v, v;
org.glassfish.internal.data.ApplicationDescriptorFileFinder v, v;
v := @this: org.glassfish.internal.data.ApplicationInfo;
specialinvoke v.<org.glassfish.internal.data.ApplicationInfo: void createServiceLocator()>();
v = v.<org.glassfish.internal.data.ApplicationInfo: java.lang.ClassLoader appClassLoader>;
v = staticinvoke <java.util.ServiceLoader: java.util.ServiceLoader load(java.lang.Class,java.lang.ClassLoader)>(class "Lorg/glassfish/hk2/api/PopulatorPostProcessor;", v);
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v = virtualinvoke v.<java.util.ServiceLoader: 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.util.LinkedList: boolean add(java.lang.Object)>(v);
goto label;
label:
v = new org.glassfish.internal.data.ApplicationClassLoadingPostProcessor;
v = v.<org.glassfish.internal.data.ApplicationInfo: java.lang.ClassLoader appClassLoader>;
specialinvoke v.<org.glassfish.internal.data.ApplicationClassLoadingPostProcessor: void <init>(java.lang.ClassLoader)>(v);
virtualinvoke v.<java.util.LinkedList: void addLast(java.lang.Object)>(v);
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.hk.api.ServiceLocator appServiceLocator>;
v = new org.glassfish.internal.data.ApplicationDescriptorFileFinder;
v = v.<org.glassfish.internal.data.ApplicationInfo: java.lang.ClassLoader appClassLoader>;
specialinvoke v.<org.glassfish.internal.data.ApplicationDescriptorFileFinder: void <init>(java.lang.ClassLoader,java.lang.String)>(v, "META-INF/hk2-locator/application");
staticinvoke <org.glassfish.hk.bootstrap.HK2Populator: java.util.List populate(org.glassfish.hk.api.ServiceLocator,org.glassfish.hk.api.DescriptorFileFinder,java.util.List)>(v, v, v);
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = v.<org.glassfish.internal.data.ApplicationInfo: java.lang.ClassLoader appClassLoader>;
virtualinvoke v.<java.util.HashSet: boolean add(java.lang.Object)>(v);
v = v.<org.glassfish.internal.data.ApplicationInfo: java.util.Collection modules>;
v = interfaceinvoke v.<java.util.Collection: 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 = virtualinvoke v.<org.glassfish.internal.data.ModuleInfo: java.lang.ClassLoader getModuleClassLoader()>();
if v == null goto label;
v = virtualinvoke v.<java.util.HashSet: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
virtualinvoke v.<java.util.HashSet: boolean add(java.lang.Object)>(v);
virtualinvoke v.<java.util.LinkedList: java.lang.Object removeLast()>();
v = new org.glassfish.internal.data.ApplicationClassLoadingPostProcessor;
specialinvoke v.<org.glassfish.internal.data.ApplicationClassLoadingPostProcessor: void <init>(java.lang.ClassLoader)>(v);
virtualinvoke v.<java.util.LinkedList: void addLast(java.lang.Object)>(v);
v = v.<org.glassfish.internal.data.ApplicationInfo: org.glassfish.hk.api.ServiceLocator appServiceLocator>;
v = new org.glassfish.internal.data.ApplicationDescriptorFileFinder;
specialinvoke v.<org.glassfish.internal.data.ApplicationDescriptorFileFinder: void <init>(java.lang.ClassLoader,java.lang.String)>(v, "hk2-locator/application");
staticinvoke <org.glassfish.hk.bootstrap.HK2Populator: java.util.List populate(org.glassfish.hk.api.ServiceLocator,org.glassfish.hk.api.DescriptorFileFinder,java.util.List)>(v, v, v);
goto label;
label:
return;
}
}