public class org.glassfish.hk.internal.ServiceLocatorFactoryImpl extends org.glassfish.hk.api.ServiceLocatorFactory
{
private static final java.lang.String DEBUG_SERVICE_LOCATOR_PROPERTY;
private static final boolean DEBUG_SERVICE_LOCATOR_LIFECYCLE;
private static final java.lang.Object sLock;
private static int name_count;
private static final java.lang.String GENERATED_NAME_PREFIX;
private final java.lang.Object lock;
private final java.util.HashMap serviceLocators;
private final java.util.HashSet listeners;
private static org.glassfish.hk.extension.ServiceLocatorGenerator getGeneratorSecure()
{
org.glassfish.hk.internal.ServiceLocatorFactoryImpl$2 v;
java.lang.Object v;
v = new org.glassfish.hk.internal.ServiceLocatorFactoryImpl$2;
specialinvoke v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl$2: void <init>()>();
v = staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedAction)>(v);
return v;
}
public void <init>()
{
java.util.HashSet v;
java.lang.Object v;
java.util.HashMap v;
org.glassfish.hk.internal.ServiceLocatorFactoryImpl v;
v := @this: org.glassfish.hk.internal.ServiceLocatorFactoryImpl;
specialinvoke v.<org.glassfish.hk.api.ServiceLocatorFactory: void <init>()>();
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.lang.Object lock> = v;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.util.HashMap serviceLocators> = v;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.util.HashSet listeners> = v;
return;
}
private static java.lang.Iterable getOSGiSafeGenerators()
{
java.lang.Throwable v;
java.lang.Iterable v;
label:
v = staticinvoke <org.glassfish.hk.osgiresourcelocator.ServiceLoader: java.lang.Iterable lookupProviderInstances(java.lang.Class)>(class "Lorg/glassfish/hk2/extension/ServiceLocatorGenerator;");
label:
return v;
label:
v := @caughtexception;
return null;
catch java.lang.Throwable from label to label with label;
}
private static org.glassfish.hk.extension.ServiceLocatorGenerator getGenerator()
{
java.util.Iterator v, v;
org.glassfish.hk.utilities.reflection.Logger v, v;
java.util.ServiceLoader v;
java.lang.Iterable v;
java.util.ServiceConfigurationError v;
java.lang.Class v;
java.lang.Object v, v;
java.lang.ClassLoader v;
boolean v, v;
v = staticinvoke <org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.lang.Iterable getOSGiSafeGenerators()>();
if v == null goto label;
v = interfaceinvoke v.<java.lang.Iterable: java.util.Iterator iterator()>();
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
goto label;
label:
v = null;
label:
return v;
label:
v = class "Lorg/glassfish/hk2/internal/ServiceLocatorFactoryImpl;";
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
v = staticinvoke <java.util.ServiceLoader: java.util.ServiceLoader load(java.lang.Class,java.lang.ClassLoader)>(class "Lorg/glassfish/hk2/extension/ServiceLocatorGenerator;", v);
v = virtualinvoke v.<java.util.ServiceLoader: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
label:
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
label:
return v;
label:
v := @caughtexception;
v = staticinvoke <org.glassfish.hk.utilities.reflection.Logger: org.glassfish.hk.utilities.reflection.Logger getLogger()>();
virtualinvoke v.<org.glassfish.hk.utilities.reflection.Logger: void debug(java.lang.String,java.lang.String,java.lang.Throwable)>("ServiceLocatorFactoryImpl", "getGenerator", v);
goto label;
label:
v = staticinvoke <org.glassfish.hk.utilities.reflection.Logger: org.glassfish.hk.utilities.reflection.Logger getLogger()>();
virtualinvoke v.<org.glassfish.hk.utilities.reflection.Logger: void warning(java.lang.String)>("Cannot find a default implementation of the HK2 ServiceLocatorGenerator");
return null;
catch java.util.ServiceConfigurationError from label to label with label;
}
public org.glassfish.hk.api.ServiceLocator create(java.lang.String)
{
org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy v;
java.lang.String v;
org.glassfish.hk.api.ServiceLocator v;
org.glassfish.hk.internal.ServiceLocatorFactoryImpl v;
v := @this: org.glassfish.hk.internal.ServiceLocatorFactoryImpl;
v := @parameter: java.lang.String;
v = <org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy: org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy RETURN>;
v = virtualinvoke v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: org.glassfish.hk.api.ServiceLocator create(java.lang.String,org.glassfish.hk.api.ServiceLocator,org.glassfish.hk.extension.ServiceLocatorGenerator,org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy)>(v, null, null, v);
return v;
}
public org.glassfish.hk.api.ServiceLocator find(java.lang.String)
{
java.lang.Throwable v;
java.lang.Object v, v;
java.util.HashMap v;
java.lang.String v;
org.glassfish.hk.internal.ServiceLocatorFactoryImpl v;
v := @this: org.glassfish.hk.internal.ServiceLocatorFactoryImpl;
v := @parameter: java.lang.String;
v = v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.lang.Object lock>;
entermonitor v;
label:
v = v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.util.HashMap serviceLocators>;
v = virtualinvoke v.<java.util.HashMap: java.lang.Object get(java.lang.Object)>(v);
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public void destroy(java.lang.String)
{
java.lang.String v;
org.glassfish.hk.internal.ServiceLocatorFactoryImpl v;
v := @this: org.glassfish.hk.internal.ServiceLocatorFactoryImpl;
v := @parameter: java.lang.String;
specialinvoke v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: void destroy(java.lang.String,org.glassfish.hk.api.ServiceLocator)>(v, null);
return;
}
private void destroy(java.lang.String, org.glassfish.hk.api.ServiceLocator)
{
java.lang.Throwable v, v, v;
org.glassfish.hk.utilities.reflection.Logger v, v;
java.util.HashMap v;
java.util.HashSet v;
java.lang.String v, v, v, v;
boolean v, v;
java.util.Iterator v;
org.glassfish.hk.internal.ServiceLocatorFactoryImpl v;
java.lang.Class v;
java.lang.Object v, v, v;
org.glassfish.hk.api.ServiceLocator v;
v := @this: org.glassfish.hk.internal.ServiceLocatorFactoryImpl;
v := @parameter: java.lang.String;
v := @parameter: org.glassfish.hk.api.ServiceLocator;
v = v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.lang.Object lock>;
entermonitor v;
label:
if v == null goto label;
v = v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.util.HashMap serviceLocators>;
v = virtualinvoke v.<java.util.HashMap: java.lang.Object remove(java.lang.Object)>(v);
label:
v = <org.glassfish.hk.internal.ServiceLocatorFactoryImpl: boolean DEBUG_SERVICE_LOCATOR_LIFECYCLE>;
if v == 0 goto label;
v = staticinvoke <org.glassfish.hk.utilities.reflection.Logger: org.glassfish.hk.utilities.reflection.Logger getLogger()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,org.glassfish.hk.api.ServiceLocator,org.glassfish.hk.api.ServiceLocator)>(v, 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[])>("ServiceFactoryImpl destroying locator with name \u and locator \u with found locator \u0001");
v = new java.lang.Throwable;
specialinvoke v.<java.lang.Throwable: void <init>()>();
virtualinvoke v.<org.glassfish.hk.utilities.reflection.Logger: void debug(java.lang.String,java.lang.Throwable)>(v, v);
label:
if v != null goto label;
v = v;
label:
if v == null goto label;
v = v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.util.HashSet listeners>;
v = virtualinvoke v.<java.util.HashSet: 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:
interfaceinvoke v.<org.glassfish.hk.api.ServiceLocatorListener: void locatorDestroyed(org.glassfish.hk.api.ServiceLocator)>(v);
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <org.glassfish.hk.utilities.reflection.Logger: org.glassfish.hk.utilities.reflection.Logger getLogger()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.hk.api.ServiceLocatorListener)>(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[])>("destroy \u0001");
virtualinvoke v.<org.glassfish.hk.utilities.reflection.Logger: void debug(java.lang.String,java.lang.String,java.lang.Throwable)>(v, v, v);
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v == null goto label;
interfaceinvoke v.<org.glassfish.hk.api.ServiceLocator: void shutdown()>();
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void destroy(org.glassfish.hk.api.ServiceLocator)
{
java.lang.String v;
org.glassfish.hk.api.ServiceLocator v;
org.glassfish.hk.internal.ServiceLocatorFactoryImpl v;
v := @this: org.glassfish.hk.internal.ServiceLocatorFactoryImpl;
v := @parameter: org.glassfish.hk.api.ServiceLocator;
if v != null goto label;
return;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceLocator: java.lang.String getName()>();
specialinvoke v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: void destroy(java.lang.String,org.glassfish.hk.api.ServiceLocator)>(v, v);
return;
}
public org.glassfish.hk.api.ServiceLocator create(java.lang.String, org.glassfish.hk.api.ServiceLocator)
{
org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy v;
java.lang.String v;
org.glassfish.hk.api.ServiceLocator v, v;
org.glassfish.hk.internal.ServiceLocatorFactoryImpl v;
v := @this: org.glassfish.hk.internal.ServiceLocatorFactoryImpl;
v := @parameter: java.lang.String;
v := @parameter: org.glassfish.hk.api.ServiceLocator;
v = <org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy: org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy RETURN>;
v = virtualinvoke v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: org.glassfish.hk.api.ServiceLocator create(java.lang.String,org.glassfish.hk.api.ServiceLocator,org.glassfish.hk.extension.ServiceLocatorGenerator,org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy)>(v, v, null, v);
return v;
}
private static java.lang.String getGeneratedName()
{
java.lang.Throwable v;
int v, v;
java.lang.Object v;
java.lang.String v;
v = <org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.lang.Object sLock>;
entermonitor v;
label:
v = <org.glassfish.hk.internal.ServiceLocatorFactoryImpl: int name_count>;
v = v + 1;
<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: int name_count> = v;
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[])>("__HK2_Generated_\u0001");
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public org.glassfish.hk.api.ServiceLocator create(java.lang.String, org.glassfish.hk.api.ServiceLocator, org.glassfish.hk.extension.ServiceLocatorGenerator)
{
org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy v;
java.lang.String v;
org.glassfish.hk.api.ServiceLocator v, v;
org.glassfish.hk.extension.ServiceLocatorGenerator v;
org.glassfish.hk.internal.ServiceLocatorFactoryImpl v;
v := @this: org.glassfish.hk.internal.ServiceLocatorFactoryImpl;
v := @parameter: java.lang.String;
v := @parameter: org.glassfish.hk.api.ServiceLocator;
v := @parameter: org.glassfish.hk.extension.ServiceLocatorGenerator;
v = <org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy: org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy RETURN>;
v = virtualinvoke v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: org.glassfish.hk.api.ServiceLocator create(java.lang.String,org.glassfish.hk.api.ServiceLocator,org.glassfish.hk.extension.ServiceLocatorGenerator,org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy)>(v, v, v, v);
return v;
}
private void callListenerAdded(org.glassfish.hk.api.ServiceLocator)
{
java.lang.Throwable v;
java.util.Iterator v;
org.glassfish.hk.utilities.reflection.Logger v;
org.glassfish.hk.internal.ServiceLocatorFactoryImpl v;
java.util.HashSet v;
java.lang.Class v;
java.lang.Object v;
java.lang.String v, v;
org.glassfish.hk.api.ServiceLocator v;
boolean v;
v := @this: org.glassfish.hk.internal.ServiceLocatorFactoryImpl;
v := @parameter: org.glassfish.hk.api.ServiceLocator;
v = v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.util.HashSet listeners>;
v = virtualinvoke v.<java.util.HashSet: 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:
interfaceinvoke v.<org.glassfish.hk.api.ServiceLocatorListener: void locatorAdded(org.glassfish.hk.api.ServiceLocator)>(v);
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <org.glassfish.hk.utilities.reflection.Logger: org.glassfish.hk.utilities.reflection.Logger getLogger()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.hk.api.ServiceLocatorListener)>(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[])>("create \u0001");
virtualinvoke v.<org.glassfish.hk.utilities.reflection.Logger: void debug(java.lang.String,java.lang.String,java.lang.Throwable)>(v, v, v);
goto label;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public org.glassfish.hk.api.ServiceLocator create(java.lang.String, org.glassfish.hk.api.ServiceLocator, org.glassfish.hk.extension.ServiceLocatorGenerator, org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy)
{
java.lang.IllegalStateException v;
org.glassfish.hk.utilities.reflection.Logger v, v, v, v;
org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy v, v, v;
boolean v, v, v, v, v, v;
org.glassfish.hk.internal.ServiceLocatorFactoryImpl v;
org.glassfish.hk.api.ServiceLocator v, v, v;
java.lang.Throwable v, v;
java.util.HashMap v, v;
java.lang.String v, v, v, v, v, v, v;
org.glassfish.hk.extension.ServiceLocatorGenerator v;
java.lang.Object v, v;
v := @this: org.glassfish.hk.internal.ServiceLocatorFactoryImpl;
v := @parameter: java.lang.String;
v := @parameter: org.glassfish.hk.api.ServiceLocator;
v := @parameter: org.glassfish.hk.extension.ServiceLocatorGenerator;
v := @parameter: org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy;
v = <org.glassfish.hk.internal.ServiceLocatorFactoryImpl: boolean DEBUG_SERVICE_LOCATOR_LIFECYCLE>;
if v == 0 goto label;
v = staticinvoke <org.glassfish.hk.utilities.reflection.Logger: org.glassfish.hk.utilities.reflection.Logger getLogger()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,org.glassfish.hk.api.ServiceLocator,org.glassfish.hk.extension.ServiceLocatorGenerator,org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy)>(v, v, 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[])>("ServiceFactoryImpl given create of \u with parent \u with generator \u and policy \u0001");
v = new java.lang.Throwable;
specialinvoke v.<java.lang.Throwable: void <init>()>();
virtualinvoke v.<org.glassfish.hk.utilities.reflection.Logger: void debug(java.lang.String,java.lang.Throwable)>(v, v);
label:
v = v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.lang.Object lock>;
entermonitor v;
label:
if v != null goto label;
v = staticinvoke <org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.lang.String getGeneratedName()>();
v = specialinvoke v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: org.glassfish.hk.api.ServiceLocator internalCreate(java.lang.String,org.glassfish.hk.api.ServiceLocator,org.glassfish.hk.extension.ServiceLocatorGenerator)>(v, v, v);
specialinvoke v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: void callListenerAdded(org.glassfish.hk.api.ServiceLocator)>(v);
v = <org.glassfish.hk.internal.ServiceLocatorFactoryImpl: boolean DEBUG_SERVICE_LOCATOR_LIFECYCLE>;
if v == 0 goto label;
v = staticinvoke <org.glassfish.hk.utilities.reflection.Logger: org.glassfish.hk.utilities.reflection.Logger getLogger()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.hk.api.ServiceLocator)>(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[])>("ServiceFactoryImpl added untracked listener \u0001");
virtualinvoke v.<org.glassfish.hk.utilities.reflection.Logger: void debug(java.lang.String)>(v);
label:
exitmonitor v;
label:
return v;
label:
v = v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.util.HashMap serviceLocators>;
v = virtualinvoke v.<java.util.HashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
if v == null goto label;
v = <org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy: org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy RETURN>;
v = virtualinvoke v.<org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = <org.glassfish.hk.internal.ServiceLocatorFactoryImpl: boolean DEBUG_SERVICE_LOCATOR_LIFECYCLE>;
if v == 0 goto label;
v = staticinvoke <org.glassfish.hk.utilities.reflection.Logger: org.glassfish.hk.utilities.reflection.Logger getLogger()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.hk.api.ServiceLocator)>(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[])>("ServiceFactoryImpl added found listener under RETURN policy of \u0001");
virtualinvoke v.<org.glassfish.hk.utilities.reflection.Logger: void debug(java.lang.String)>(v);
label:
exitmonitor v;
label:
return v;
label:
v = <org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy: org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy DESTROY>;
v = virtualinvoke v.<org.glassfish.hk.api.ServiceLocatorFactory$CreatePolicy: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: void destroy(org.glassfish.hk.api.ServiceLocator)>(v);
goto label;
label:
v = new java.lang.IllegalStateException;
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[])>("A ServiceLocator named \u already exists");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = specialinvoke v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: org.glassfish.hk.api.ServiceLocator internalCreate(java.lang.String,org.glassfish.hk.api.ServiceLocator,org.glassfish.hk.extension.ServiceLocatorGenerator)>(v, v, v);
v = v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.util.HashMap serviceLocators>;
virtualinvoke v.<java.util.HashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
specialinvoke v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: void callListenerAdded(org.glassfish.hk.api.ServiceLocator)>(v);
v = <org.glassfish.hk.internal.ServiceLocatorFactoryImpl: boolean DEBUG_SERVICE_LOCATOR_LIFECYCLE>;
if v == 0 goto label;
v = staticinvoke <org.glassfish.hk.utilities.reflection.Logger: org.glassfish.hk.utilities.reflection.Logger getLogger()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.hk.api.ServiceLocator)>(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[])>("ServiceFactoryImpl created locator \u0001");
virtualinvoke v.<org.glassfish.hk.utilities.reflection.Logger: void debug(java.lang.String)>(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;
catch java.lang.Throwable from label to label with label;
}
private org.glassfish.hk.api.ServiceLocator internalCreate(java.lang.String, org.glassfish.hk.api.ServiceLocator, org.glassfish.hk.extension.ServiceLocatorGenerator)
{
java.lang.IllegalStateException v;
java.lang.String v;
org.glassfish.hk.api.ServiceLocator v, v;
org.glassfish.hk.extension.ServiceLocatorGenerator v, v;
org.glassfish.hk.internal.ServiceLocatorFactoryImpl v;
v := @this: org.glassfish.hk.internal.ServiceLocatorFactoryImpl;
v := @parameter: java.lang.String;
v := @parameter: org.glassfish.hk.api.ServiceLocator;
v := @parameter: org.glassfish.hk.extension.ServiceLocatorGenerator;
if v != null goto label;
v = <org.glassfish.hk.internal.ServiceLocatorFactoryImpl$DefaultGeneratorInitializer: org.glassfish.hk.extension.ServiceLocatorGenerator defaultGenerator>;
if v != null goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("No generator was provided and there is no default generator registered");
throw v;
label:
v = <org.glassfish.hk.internal.ServiceLocatorFactoryImpl$DefaultGeneratorInitializer: org.glassfish.hk.extension.ServiceLocatorGenerator defaultGenerator>;
label:
v = interfaceinvoke v.<org.glassfish.hk.extension.ServiceLocatorGenerator: org.glassfish.hk.api.ServiceLocator create(java.lang.String,org.glassfish.hk.api.ServiceLocator)>(v, v);
return v;
}
public void addListener(org.glassfish.hk.api.ServiceLocatorListener)
{
java.lang.Throwable v, v;
org.glassfish.hk.utilities.reflection.Logger v;
java.util.HashMap v;
java.util.HashSet v, v, v;
java.lang.String v, v;
org.glassfish.hk.api.ServiceLocatorListener v;
boolean v;
java.util.Collection v;
java.util.Set v;
java.lang.IllegalArgumentException v;
org.glassfish.hk.internal.ServiceLocatorFactoryImpl v;
java.lang.Class v;
java.lang.Object v;
v := @this: org.glassfish.hk.internal.ServiceLocatorFactoryImpl;
v := @parameter: org.glassfish.hk.api.ServiceLocatorListener;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>()>();
throw v;
label:
v = v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.lang.Object lock>;
entermonitor v;
label:
v = v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.util.HashSet listeners>;
v = virtualinvoke v.<java.util.HashSet: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
exitmonitor v;
label:
return;
label:
v = new java.util.HashSet;
v = v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.util.HashMap serviceLocators>;
v = virtualinvoke v.<java.util.HashMap: java.util.Collection values()>();
specialinvoke v.<java.util.HashSet: void <init>(java.util.Collection)>(v);
v = staticinvoke <java.util.Collections: java.util.Set unmodifiableSet(java.util.Set)>(v);
interfaceinvoke v.<org.glassfish.hk.api.ServiceLocatorListener: void initialize(java.util.Set)>(v);
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <org.glassfish.hk.utilities.reflection.Logger: org.glassfish.hk.utilities.reflection.Logger getLogger()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.hk.api.ServiceLocatorListener)>(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[])>("addListener \u0001");
virtualinvoke v.<org.glassfish.hk.utilities.reflection.Logger: void debug(java.lang.String,java.lang.String,java.lang.Throwable)>(v, v, v);
exitmonitor v;
label:
return;
label:
v = v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.util.HashSet listeners>;
virtualinvoke v.<java.util.HashSet: boolean add(java.lang.Object)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
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 void removeListener(org.glassfish.hk.api.ServiceLocatorListener)
{
java.lang.Throwable v;
java.util.HashSet v;
java.lang.Object v;
org.glassfish.hk.api.ServiceLocatorListener v;
java.lang.IllegalArgumentException v;
org.glassfish.hk.internal.ServiceLocatorFactoryImpl v;
v := @this: org.glassfish.hk.internal.ServiceLocatorFactoryImpl;
v := @parameter: org.glassfish.hk.api.ServiceLocatorListener;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>()>();
throw v;
label:
v = v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.lang.Object lock>;
entermonitor v;
label:
v = v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.util.HashSet listeners>;
virtualinvoke v.<java.util.HashSet: boolean remove(java.lang.Object)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
static void <clinit>()
{
org.glassfish.hk.internal.ServiceLocatorFactoryImpl$1 v;
java.lang.Object v, v;
boolean v;
v = new org.glassfish.hk.internal.ServiceLocatorFactoryImpl$1;
specialinvoke v.<org.glassfish.hk.internal.ServiceLocatorFactoryImpl$1: void <init>()>();
v = staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedAction)>(v);
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: boolean DEBUG_SERVICE_LOCATOR_LIFECYCLE> = v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: java.lang.Object sLock> = v;
<org.glassfish.hk.internal.ServiceLocatorFactoryImpl: int name_count> = 0;
return;
}
}