public class org.jvnet.hk.internal.ServiceLocatorImpl extends java.lang.Object implements org.glassfish.hk.api.ServiceLocator
{
private static final java.lang.String BIND_TRACING_PATTERN_PROPERTY;
private static final java.lang.String BIND_TRACING_PATTERN;
private static final java.lang.String BIND_TRACING_STACKS_PROPERTY;
private static final boolean BIND_TRACING_STACKS;
private static final int CACHE_SIZE;
private static final java.lang.Object sLock;
private static long currentLocatorId;
static final org.jvnet.hk.internal.DescriptorComparator DESCRIPTOR_COMPARATOR;
private static final org.jvnet.hk.internal.ServiceHandleComparator HANDLE_COMPARATOR;
private final java.util.concurrent.locks.ReentrantReadWriteLock readWriteLock;
private final java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock;
private final java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock;
private final java.util.concurrent.atomic.AtomicLong nextServiceId;
private final java.lang.String locatorName;
private final long id;
private final org.jvnet.hk.internal.ServiceLocatorImpl parent;
private volatile boolean neutralContextClassLoader;
private final org.glassfish.hk.utilities.reflection.ClassReflectionHelper classReflectionHelper;
private final org.jvnet.hk.internal.PerLocatorUtilities perLocatorUtilities;
private final org.jvnet.hk.internal.IndexedListData allDescriptors;
private final java.util.HashMap descriptorsByAdvertisedContract;
private final java.util.HashMap descriptorsByName;
private final org.glassfish.hk.api.Context singletonContext;
private final org.glassfish.hk.api.Context perLookupContext;
private final java.util.LinkedHashSet allValidators;
private final java.util.LinkedList errorHandlers;
private final java.util.LinkedList configListeners;
private volatile boolean hasInterceptionServices;
private final java.util.LinkedList interceptionServices;
private final org.glassfish.hk.utilities.cache.Cache contextCache;
private final java.util.Map children;
private final java.lang.Object classAnalyzerLock;
private final java.util.HashMap classAnalyzers;
private java.lang.String defaultClassAnalyzer;
private volatile org.glassfish.hk.api.Unqualified defaultUnqualified;
private java.util.concurrent.ConcurrentHashMap allResolvers;
private final org.glassfish.hk.utilities.cache.Cache injecteeToResolverCache;
private org.glassfish.hk.api.ServiceLocatorState state;
private final org.glassfish.hk.utilities.cache.WeakCARCache igdCache;
private final org.glassfish.hk.utilities.cache.WeakCARCache igashCache;
private static long getAndIncrementLocatorId()
{
java.lang.Throwable v;
java.lang.Object v;
long v, v;
v = <org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Object sLock>;
entermonitor v;
label:
v = <org.jvnet.hk.internal.ServiceLocatorImpl: long currentLocatorId>;
v = v + 1L;
<org.jvnet.hk.internal.ServiceLocatorImpl: long currentLocatorId> = 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 <init>(java.lang.String, org.jvnet.hk.internal.ServiceLocatorImpl)
{
org.glassfish.hk.utilities.reflection.Logger v, v;
org.glassfish.hk.api.ServiceLocatorState v;
org.jvnet.hk.internal.ServiceLocatorImpl$10 v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v;
org.jvnet.hk.internal.PerLocatorUtilities v;
boolean v;
java.util.concurrent.ConcurrentHashMap v;
java.util.List v;
org.jvnet.hk.internal.ServiceLocatorImpl v, v;
org.jvnet.hk.internal.PerLookupContext v;
org.glassfish.hk.utilities.reflection.internal.ClassReflectionHelperImpl v;
org.jvnet.hk.internal.SingletonContext v;
org.glassfish.hk.utilities.RethrowErrorService v;
java.util.HashMap v, v, v;
long v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
org.jvnet.hk.internal.ServiceLocatorImpl$8 v;
java.lang.String v, v, v, v, v;
java.util.LinkedList v, v, v;
java.util.LinkedHashSet v;
java.util.WeakHashMap v;
org.jvnet.hk.internal.ServiceLocatorImpl$3 v;
org.jvnet.hk.internal.ServiceLocatorImpl$4 v;
org.jvnet.hk.internal.IndexedListData v;
org.glassfish.hk.utilities.cache.WeakCARCache v, v;
java.util.concurrent.atomic.AtomicLong v;
org.glassfish.hk.utilities.cache.Cache v, v;
java.lang.Object v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.String;
v := @parameter: org.jvnet.hk.internal.ServiceLocatorImpl;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.locks.ReentrantReadWriteLock;
specialinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: void <init>()>();
v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock readWriteLock> = v;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock readWriteLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock> = v;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock readWriteLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.atomic.AtomicLong nextServiceId> = v;
v.<org.jvnet.hk.internal.ServiceLocatorImpl: boolean neutralContextClassLoader> = 1;
v = new org.glassfish.hk.utilities.reflection.internal.ClassReflectionHelperImpl;
specialinvoke v.<org.glassfish.hk.utilities.reflection.internal.ClassReflectionHelperImpl: void <init>()>();
v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.reflection.ClassReflectionHelper classReflectionHelper> = v;
v = new org.jvnet.hk.internal.PerLocatorUtilities;
specialinvoke v.<org.jvnet.hk.internal.PerLocatorUtilities: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl)>(v);
v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.PerLocatorUtilities perLocatorUtilities> = v;
v = new org.jvnet.hk.internal.IndexedListData;
specialinvoke v.<org.jvnet.hk.internal.IndexedListData: void <init>()>();
v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.IndexedListData allDescriptors> = v;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.HashMap descriptorsByAdvertisedContract> = v;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.HashMap descriptorsByName> = v;
v = new org.jvnet.hk.internal.SingletonContext;
specialinvoke v.<org.jvnet.hk.internal.SingletonContext: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl)>(v);
v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.Context singletonContext> = v;
v = new org.jvnet.hk.internal.PerLookupContext;
specialinvoke v.<org.jvnet.hk.internal.PerLookupContext: void <init>()>();
v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.Context perLookupContext> = v;
v = new java.util.LinkedHashSet;
specialinvoke v.<java.util.LinkedHashSet: void <init>()>();
v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedHashSet allValidators> = v;
v = new java.util.LinkedList;
v = new org.glassfish.hk.utilities.RethrowErrorService;
specialinvoke v.<org.glassfish.hk.utilities.RethrowErrorService: void <init>()>();
v = staticinvoke <java.util.Collections: java.util.List singletonList(java.lang.Object)>(v);
specialinvoke v.<java.util.LinkedList: void <init>(java.util.Collection)>(v);
v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedList errorHandlers> = v;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedList configListeners> = v;
v.<org.jvnet.hk.internal.ServiceLocatorImpl: boolean hasInterceptionServices> = 0;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedList interceptionServices> = v;
v = new org.glassfish.hk.utilities.cache.Cache;
v = new org.jvnet.hk.internal.ServiceLocatorImpl$3;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$3: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl)>(v);
specialinvoke v.<org.glassfish.hk.utilities.cache.Cache: void <init>(org.glassfish.hk.utilities.cache.Computable)>(v);
v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.Cache contextCache> = v;
v = new java.util.WeakHashMap;
specialinvoke v.<java.util.WeakHashMap: void <init>()>();
v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.Map children> = v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Object classAnalyzerLock> = v;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.HashMap classAnalyzers> = v;
v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.String defaultClassAnalyzer> = "default";
v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.Unqualified defaultUnqualified> = null;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.ConcurrentHashMap allResolvers> = v;
v = new org.glassfish.hk.utilities.cache.Cache;
v = new org.jvnet.hk.internal.ServiceLocatorImpl$4;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$4: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl)>(v);
specialinvoke v.<org.glassfish.hk.utilities.cache.Cache: void <init>(org.glassfish.hk.utilities.cache.Computable)>(v);
v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.Cache injecteeToResolverCache> = v;
v = <org.glassfish.hk.api.ServiceLocatorState: org.glassfish.hk.api.ServiceLocatorState RUNNING>;
v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ServiceLocatorState state> = v;
v = new org.jvnet.hk.internal.ServiceLocatorImpl$8;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$8: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl)>(v);
v = staticinvoke <org.glassfish.hk.utilities.cache.CacheUtilities: org.glassfish.hk.utilities.cache.WeakCARCache createWeakCARCache(org.glassfish.hk.utilities.cache.Computable,int,boolean)>(v, 20000, 0);
v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.WeakCARCache igdCache> = v;
v = new org.jvnet.hk.internal.ServiceLocatorImpl$10;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$10: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl)>(v);
v = staticinvoke <org.glassfish.hk.utilities.cache.CacheUtilities: org.glassfish.hk.utilities.cache.WeakCARCache createWeakCARCache(org.glassfish.hk.utilities.cache.Computable,int,boolean)>(v, 20000, 0);
v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.WeakCARCache igashCache> = v;
v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.String locatorName> = v;
v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ServiceLocatorImpl parent> = v;
if v == null goto label;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void addChild(org.jvnet.hk.internal.ServiceLocatorImpl)>(v);
label:
v = staticinvoke <org.jvnet.hk.internal.ServiceLocatorImpl: long getAndIncrementLocatorId()>();
v.<org.jvnet.hk.internal.ServiceLocatorImpl: long id> = v;
v = staticinvoke <org.glassfish.hk.utilities.reflection.Logger: org.glassfish.hk.utilities.reflection.Logger getLogger()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.jvnet.hk.internal.ServiceLocatorImpl)>(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[])>("Created ServiceLocator \u0001");
virtualinvoke v.<org.glassfish.hk.utilities.reflection.Logger: void debug(java.lang.String)>(v);
v = <org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.String BIND_TRACING_PATTERN>;
if v == null goto label;
v = staticinvoke <org.glassfish.hk.utilities.reflection.Logger: org.glassfish.hk.utilities.reflection.Logger getLogger()>();
v = <org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.String BIND_TRACING_PATTERN>;
v = <org.jvnet.hk.internal.ServiceLocatorImpl: boolean BIND_TRACING_STACKS>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,boolean,org.jvnet.hk.internal.ServiceLocatorImpl)>(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[])>("HK2 will trace binds and unbinds of \u with stacks \u in \u0001");
virtualinvoke v.<org.glassfish.hk.utilities.reflection.Logger: void debug(java.lang.String)>(v);
label:
return;
}
private boolean callValidate(org.glassfish.hk.api.ValidationService, org.glassfish.hk.api.ValidationInformation)
{
java.lang.Throwable v, v, v;
org.glassfish.hk.api.Validator v;
org.glassfish.hk.api.ValidationService v;
org.glassfish.hk.utilities.reflection.Logger v;
org.glassfish.hk.api.ErrorType v;
org.glassfish.hk.api.ActiveDescriptor v;
org.jvnet.hk.internal.ErrorInformationImpl v;
org.glassfish.hk.api.ValidationInformation v;
java.util.LinkedList v, v;
boolean v, v, v;
java.util.Iterator v;
org.glassfish.hk.api.Injectee v;
org.glassfish.hk.api.MultiException v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Object v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.ValidationService;
v := @parameter: org.glassfish.hk.api.ValidationInformation;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.ValidationService: org.glassfish.hk.api.Validator getValidator()>();
v = interfaceinvoke v.<org.glassfish.hk.api.Validator: boolean validate(org.glassfish.hk.api.ValidationInformation)>(v);
label:
return v;
label:
v := @caughtexception;
v = v;
v = new java.util.LinkedList;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedList errorHandlers>;
specialinvoke v.<java.util.LinkedList: void <init>(java.util.Collection)>(v);
v = v instanceof org.glassfish.hk.api.MultiException;
if v != 0 goto label;
v = new org.glassfish.hk.api.MultiException;
specialinvoke v.<org.glassfish.hk.api.MultiException: void <init>(java.lang.Throwable)>(v);
v = v;
label:
v = new org.jvnet.hk.internal.ErrorInformationImpl;
v = <org.glassfish.hk.api.ErrorType: org.glassfish.hk.api.ErrorType VALIDATE_FAILURE>;
v = interfaceinvoke v.<org.glassfish.hk.api.ValidationInformation: org.glassfish.hk.api.ActiveDescriptor getCandidate()>();
v = interfaceinvoke v.<org.glassfish.hk.api.ValidationInformation: org.glassfish.hk.api.Injectee getInjectee()>();
specialinvoke v.<org.jvnet.hk.internal.ErrorInformationImpl: void <init>(org.glassfish.hk.api.ErrorType,org.glassfish.hk.api.Descriptor,org.glassfish.hk.api.Injectee,org.glassfish.hk.api.MultiException)>(v, v, v, 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:
interfaceinvoke v.<org.glassfish.hk.api.ErrorService: void onFailure(org.glassfish.hk.api.ErrorInformation)>(v);
label:
goto label;
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)>("ServiceLocatorImpl", "callValidate", v);
goto label;
label:
return 0;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private boolean validate(org.jvnet.hk.internal.SystemDescriptor, org.glassfish.hk.api.Injectee, org.glassfish.hk.api.Filter)
{
java.util.Iterator v;
org.jvnet.hk.internal.ValidationInformationImpl v;
org.glassfish.hk.api.Filter v;
org.glassfish.hk.api.Operation v;
org.glassfish.hk.api.Injectee v;
org.jvnet.hk.internal.SystemDescriptor v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Object v;
java.util.LinkedHashSet v;
boolean v, v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.jvnet.hk.internal.SystemDescriptor;
v := @parameter: org.glassfish.hk.api.Injectee;
v := @parameter: org.glassfish.hk.api.Filter;
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedHashSet getAllValidators()>();
v = virtualinvoke v.<java.util.LinkedHashSet: 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.jvnet.hk.internal.SystemDescriptor: boolean isValidating(org.glassfish.hk.api.ValidationService)>(v);
if v == 0 goto label;
v = new org.jvnet.hk.internal.ValidationInformationImpl;
v = <org.glassfish.hk.api.Operation: org.glassfish.hk.api.Operation LOOKUP>;
specialinvoke v.<org.jvnet.hk.internal.ValidationInformationImpl: void <init>(org.glassfish.hk.api.Operation,org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.Injectee,org.glassfish.hk.api.Filter)>(v, v, v, v);
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: boolean callValidate(org.glassfish.hk.api.ValidationService,org.glassfish.hk.api.ValidationInformation)>(v, v);
if v != 0 goto label;
return 0;
label:
return 1;
}
private java.util.List getDescriptors(org.glassfish.hk.api.Filter, org.glassfish.hk.api.Injectee, boolean, boolean, boolean)
{
org.glassfish.hk.api.Filter v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
boolean v, v, v, v, v, v, v, v, v, v;
java.util.Collection v, v, v, v;
java.util.Set v;
java.util.List v;
org.jvnet.hk.internal.ServiceLocatorImpl v, v, v;
java.lang.Throwable v;
org.jvnet.hk.internal.DescriptorComparator v;
java.util.HashMap v, v;
java.util.TreeSet v;
java.lang.String v, v, v, v, v, v;
java.util.LinkedList v, v;
java.util.Iterator v, v;
org.glassfish.hk.api.DescriptorVisibility v, v;
org.jvnet.hk.internal.IndexedListData v, v;
java.lang.IllegalArgumentException v;
org.glassfish.hk.api.Injectee v;
java.lang.Object v, v, v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.Filter;
v := @parameter: org.glassfish.hk.api.Injectee;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: boolean;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("filter is null");
throw v;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = v instanceof org.glassfish.hk.api.IndexedFilter;
if v == 0 goto label;
v = interfaceinvoke v.<org.glassfish.hk.api.IndexedFilter: java.lang.String getName()>();
if v == null goto label;
v = interfaceinvoke v.<org.glassfish.hk.api.IndexedFilter: java.lang.String getName()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.HashMap descriptorsByName>;
v = virtualinvoke v.<java.util.HashMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = null;
goto label;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.IndexedListData: java.util.Collection getSortedList()>();
label:
v = v;
if v != null goto label;
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
label:
v = interfaceinvoke v.<org.glassfish.hk.api.IndexedFilter: java.lang.String getAdvertisedContract()>();
if v == null goto label;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v = v;
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.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = interfaceinvoke v.<org.glassfish.hk.api.IndexedFilter: java.lang.String getAdvertisedContract()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
interfaceinvoke v.<java.util.Collection: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v;
goto label;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.IndexedFilter: java.lang.String getAdvertisedContract()>();
if v == null goto label;
v = interfaceinvoke v.<org.glassfish.hk.api.IndexedFilter: java.lang.String getAdvertisedContract()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.HashMap descriptorsByAdvertisedContract>;
v = virtualinvoke v.<java.util.HashMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = null;
goto label;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.IndexedListData: java.util.Collection getSortedList()>();
label:
v = v;
if v != null goto label;
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
goto label;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.IndexedListData allDescriptors>;
v = virtualinvoke v.<org.jvnet.hk.internal.IndexedListData: java.util.Collection getSortedList()>();
goto label;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.IndexedListData allDescriptors>;
v = virtualinvoke v.<org.jvnet.hk.internal.IndexedListData: java.util.Collection getSortedList()>();
label:
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
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 != 0 goto label;
v = <org.glassfish.hk.api.DescriptorVisibility: org.glassfish.hk.api.DescriptorVisibility LOCAL>;
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: org.glassfish.hk.api.DescriptorVisibility getDescriptorVisibility()>();
v = virtualinvoke v.<org.glassfish.hk.api.DescriptorVisibility: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
label:
if v == 0 goto label;
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: boolean validate(org.jvnet.hk.internal.SystemDescriptor,org.glassfish.hk.api.Injectee,org.glassfish.hk.api.Filter)>(v, v, v);
if v == 0 goto label;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.Filter: boolean matches(org.glassfish.hk.api.Descriptor)>(v);
if v == 0 goto label;
virtualinvoke v.<java.util.LinkedList: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
label:
if v == 0 goto label;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ServiceLocatorImpl parent>;
if v == null goto label;
v = new java.util.TreeSet;
v = <org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.DescriptorComparator DESCRIPTOR_COMPARATOR>;
specialinvoke v.<java.util.TreeSet: void <init>(java.util.Comparator)>(v);
virtualinvoke v.<java.util.TreeSet: boolean addAll(java.util.Collection)>(v);
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ServiceLocatorImpl parent>;
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getDescriptors(org.glassfish.hk.api.Filter,org.glassfish.hk.api.Injectee,boolean,boolean,boolean)>(v, v, v, v, 0);
virtualinvoke v.<java.util.TreeSet: boolean addAll(java.util.Collection)>(v);
virtualinvoke v.<java.util.LinkedList: void clear()>();
virtualinvoke v.<java.util.LinkedList: boolean addAll(java.util.Collection)>(v);
label:
return v;
catch java.lang.Throwable from label to label with label;
}
private java.util.List protectedGetDescriptors(org.glassfish.hk.api.Filter)
{
org.jvnet.hk.internal.ServiceLocatorImpl$5 v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Filter v;
java.lang.Object v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.Filter;
v = new org.jvnet.hk.internal.ServiceLocatorImpl$5;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$5: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl,org.glassfish.hk.api.Filter)>(v, v);
v = staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedAction)>(v);
return v;
}
public java.util.List getDescriptors(org.glassfish.hk.api.Filter)
{
java.util.List v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Filter v;
java.lang.Object v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.Filter;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getDescriptors(org.glassfish.hk.api.Filter,org.glassfish.hk.api.Injectee,boolean,boolean,boolean)>(v, null, 1, 1, 1);
v = staticinvoke <org.glassfish.hk.utilities.reflection.ReflectionHelper: java.lang.Object cast(java.lang.Object)>(v);
return v;
}
public org.glassfish.hk.api.ActiveDescriptor getBestDescriptor(org.glassfish.hk.api.Filter)
{
java.util.List v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Filter v;
java.lang.Object v;
java.lang.IllegalArgumentException v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.Filter;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("filter is null");
throw v;
label:
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getDescriptors(org.glassfish.hk.api.Filter)>(v);
v = staticinvoke <org.jvnet.hk.internal.Utilities: java.lang.Object getFirstThingInList(java.util.List)>(v);
return v;
}
public org.glassfish.hk.api.ActiveDescriptor reifyDescriptor(org.glassfish.hk.api.Descriptor, org.glassfish.hk.api.Injectee) throws org.glassfish.hk.api.MultiException
{
java.lang.IllegalArgumentException v;
org.glassfish.hk.api.Injectee v;
org.jvnet.hk.internal.SystemDescriptor v, v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Class v, v;
org.jvnet.hk.internal.Collector v, v;
boolean v, v, v;
org.glassfish.hk.api.Descriptor v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.Descriptor;
v := @parameter: org.glassfish.hk.api.Injectee;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>()>();
throw v;
label:
v = v instanceof org.glassfish.hk.api.ActiveDescriptor;
if v != 0 goto label;
v = new org.jvnet.hk.internal.SystemDescriptor;
specialinvoke v.<org.jvnet.hk.internal.SystemDescriptor: void <init>(org.glassfish.hk.api.Descriptor,boolean,org.jvnet.hk.internal.ServiceLocatorImpl,java.lang.Long)>(v, 1, v, null);
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Class loadClass(org.glassfish.hk.api.Descriptor,org.glassfish.hk.api.Injectee)>(v, v);
v = new org.jvnet.hk.internal.Collector;
specialinvoke v.<org.jvnet.hk.internal.Collector: void <init>()>();
virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: void reify(java.lang.Class,org.jvnet.hk.internal.Collector)>(v, v);
virtualinvoke v.<org.jvnet.hk.internal.Collector: void throwIfErrors()>();
return v;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: boolean isReified()>();
if v == 0 goto label;
return v;
label:
v = v instanceof org.jvnet.hk.internal.SystemDescriptor;
if v != 0 goto label;
v = new org.jvnet.hk.internal.SystemDescriptor;
specialinvoke v.<org.jvnet.hk.internal.SystemDescriptor: void <init>(org.glassfish.hk.api.Descriptor,boolean,org.jvnet.hk.internal.ServiceLocatorImpl,java.lang.Long)>(v, 1, v, null);
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.lang.Class getPreAnalyzedClass()>();
if v != null goto label;
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Class loadClass(org.glassfish.hk.api.Descriptor,org.glassfish.hk.api.Injectee)>(v, v);
label:
v = new org.jvnet.hk.internal.Collector;
specialinvoke v.<org.jvnet.hk.internal.Collector: void <init>()>();
virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: void reify(java.lang.Class,org.jvnet.hk.internal.Collector)>(v, v);
virtualinvoke v.<org.jvnet.hk.internal.Collector: void throwIfErrors()>();
return v;
}
public org.glassfish.hk.api.ActiveDescriptor reifyDescriptor(org.glassfish.hk.api.Descriptor) throws org.glassfish.hk.api.MultiException
{
org.glassfish.hk.api.ActiveDescriptor v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Descriptor v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.Descriptor;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ActiveDescriptor reifyDescriptor(org.glassfish.hk.api.Descriptor,org.glassfish.hk.api.Injectee)>(v, null);
return v;
}
private org.glassfish.hk.api.ActiveDescriptor secondChanceResolve(org.glassfish.hk.api.Injectee)
{
org.glassfish.hk.utilities.reflection.Logger v;
org.glassfish.hk.api.ActiveDescriptor v, v, v, v, v, v, v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v;
java.util.List v;
org.glassfish.hk.api.MultiException v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Throwable v, v;
java.lang.'annotation'.Annotation[] v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v;
org.jvnet.hk.internal.Collector v;
java.util.Iterator v, v, v, v;
org.glassfish.hk.api.Injectee v;
java.lang.Class v, v, v, v, v;
java.lang.Object v, v, v, v, v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.Injectee;
v = new org.jvnet.hk.internal.Collector;
specialinvoke v.<org.jvnet.hk.internal.Collector: void <init>()>();
v = newarray (java.lang.'annotation'.Annotation)[0];
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getAllServiceHandles(java.lang.Class,java.lang.'annotation'.Annotation[])>(class "Lorg/glassfish/hk2/api/JustInTimeInjectionResolver;", v);
v = staticinvoke <org.glassfish.hk.utilities.reflection.ReflectionHelper: java.lang.Object cast(java.lang.Object)>(v);
label:
v = 0;
v = 0;
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 = interfaceinvoke v.<org.glassfish.hk.api.Injectee: java.lang.Class getInjecteeClass()>();
if v == null goto label;
v = interfaceinvoke v.<org.glassfish.hk.api.Injectee: java.lang.Class getInjecteeClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: org.glassfish.hk.api.ActiveDescriptor getActiveDescriptor()>();
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.lang.String getImplementation()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: java.lang.Object getService()>();
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.String toString()>();
virtualinvoke v.<org.glassfish.hk.utilities.reflection.Logger: void debug(java.lang.String,java.lang.String,java.lang.Throwable)>(v, "secondChanceResolver", v);
goto label;
label:
v = 0;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.JustInTimeInjectionResolver: boolean justInTimeResolution(org.glassfish.hk.api.Injectee)>(v);
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.jvnet.hk.internal.Collector: void addThrowable(java.lang.Throwable)>(v);
v = 1;
label:
if v != 0 goto label;
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v = v;
goto label;
label:
if v == 0 goto label;
virtualinvoke v.<org.jvnet.hk.internal.Collector: void throwIfErrors()>();
label:
if v != 0 goto label;
label:
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 = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: org.glassfish.hk.api.ActiveDescriptor getActiveDescriptor()>();
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.lang.String getScope()>();
if v == null goto label;
v = class "Lorg/glassfish/hk2/api/PerLookup;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: org.glassfish.hk.api.ActiveDescriptor getActiveDescriptor()>();
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.lang.String getScope()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: void destroy()>();
goto label;
label:
return null;
label:
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ActiveDescriptor internalGetInjecteeDescriptor(org.glassfish.hk.api.Injectee,boolean)>(v, 1);
label:
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 = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: org.glassfish.hk.api.ActiveDescriptor getActiveDescriptor()>();
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.lang.String getScope()>();
if v == null goto label;
v = class "Lorg/glassfish/hk2/api/PerLookup;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: org.glassfish.hk.api.ActiveDescriptor getActiveDescriptor()>();
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.lang.String getScope()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: void destroy()>();
goto label;
label:
return v;
label:
v := @caughtexception;
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 = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: org.glassfish.hk.api.ActiveDescriptor getActiveDescriptor()>();
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.lang.String getScope()>();
if v == null goto label;
v = class "Lorg/glassfish/hk2/api/PerLookup;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: org.glassfish.hk.api.ActiveDescriptor getActiveDescriptor()>();
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.lang.String getScope()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: void destroy()>();
goto label;
label:
throw v;
catch org.glassfish.hk.api.MultiException 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;
}
private org.glassfish.hk.api.ActiveDescriptor internalGetInjecteeDescriptor(org.glassfish.hk.api.Injectee, boolean)
{
org.jvnet.hk.internal.ConstantActiveDescriptor v, v;
org.glassfish.hk.api.ActiveDescriptor v, v;
boolean v, v, v, v, v, v, v;
java.util.Set v, v, v, v, v;
org.glassfish.hk.api.MultiException v;
java.lang.reflect.Type v, v, v, v, v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.jvnet.hk.internal.IterableProviderImpl v;
java.lang.reflect.AnnotatedElement v, v;
java.lang.Object[] v, v;
java.lang.'annotation'.Annotation[] v, v;
org.glassfish.hk.utilities.InjecteeImpl v;
int v;
org.jvnet.hk.internal.TopicImpl v;
java.lang.String v, v, v;
java.lang.IllegalArgumentException v, v;
org.glassfish.hk.api.Injectee v;
org.glassfish.hk.api.Unqualified v, v, v;
java.lang.Class v, v, v, v, v, v, v;
org.jvnet.hk.internal.OptionalActiveDescriptor v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.Injectee;
v := @parameter: boolean;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>()>();
throw v;
label:
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
v = interfaceinvoke v.<org.glassfish.hk.api.Injectee: java.lang.reflect.Type getRequiredType()>();
v = staticinvoke <org.glassfish.hk.utilities.reflection.ReflectionHelper: java.lang.Class getRawClass(java.lang.reflect.Type)>(v);
if v != null goto label;
v = new org.glassfish.hk.api.MultiException;
v = new java.lang.IllegalArgumentException;
v = interfaceinvoke v.<org.glassfish.hk.api.Injectee: java.lang.reflect.Type getRequiredType()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.reflect.Type)>(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 injectee with required type of \u passed to getInjecteeDescriptor");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
specialinvoke v.<org.glassfish.hk.api.MultiException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = class "Ljakarta/inject/Provider;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = class "Ljava/lang/Iterable;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = class "Lorg/glassfish/hk2/api/IterableProvider;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = class "Lorg/glassfish/hk2/api/IterableProvider;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
v = new org.jvnet.hk.internal.IterableProviderImpl;
v = staticinvoke <org.glassfish.hk.utilities.reflection.ReflectionHelper: java.lang.reflect.Type getFirstTypeArgument(java.lang.reflect.Type)>(v);
v = interfaceinvoke v.<org.glassfish.hk.api.Injectee: java.util.Set getRequiredQualifiers()>();
v = interfaceinvoke v.<org.glassfish.hk.api.Injectee: org.glassfish.hk.api.Unqualified getUnqualified()>();
specialinvoke v.<org.jvnet.hk.internal.IterableProviderImpl: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl,java.lang.reflect.Type,java.util.Set,org.glassfish.hk.api.Unqualified,org.glassfish.hk.api.Injectee,boolean)>(v, v, v, v, v, v);
v = new org.jvnet.hk.internal.ConstantActiveDescriptor;
specialinvoke v.<org.jvnet.hk.internal.ConstantActiveDescriptor: void <init>(java.lang.Object,org.jvnet.hk.internal.ServiceLocatorImpl)>(v, v);
return v;
label:
v = class "Ljava/util/Optional;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = new org.glassfish.hk.utilities.InjecteeImpl;
specialinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: void <init>(org.glassfish.hk.api.Injectee)>(v);
virtualinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: void setOptional(boolean)>(1);
v = virtualinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: java.lang.reflect.Type getRequiredType()>();
v = virtualinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: java.util.Set getRequiredQualifiers()>();
v = virtualinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: java.lang.reflect.AnnotatedElement getParent()>();
v = staticinvoke <org.glassfish.hk.utilities.reflection.ReflectionHelper: java.lang.String getNameFromAllQualifiers(java.util.Set,java.lang.reflect.AnnotatedElement)>(v, v);
v = virtualinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: org.glassfish.hk.api.Unqualified getUnqualified()>();
v = virtualinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: java.util.Set getRequiredQualifiers()>();
v = newarray (java.lang.'annotation'.Annotation)[0];
v = interfaceinvoke v.<java.util.Set: java.lang.Object[] toArray(java.lang.Object[])>(v);
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ActiveDescriptor internalGetDescriptor(org.glassfish.hk.api.Injectee,java.lang.reflect.Type,java.lang.String,org.glassfish.hk.api.Unqualified,boolean,java.lang.'annotation'.Annotation[])>(v, v, v, v, 0, v);
if v != null goto label;
v = new org.jvnet.hk.internal.OptionalActiveDescriptor;
specialinvoke v.<org.jvnet.hk.internal.OptionalActiveDescriptor: void <init>(org.glassfish.hk.api.Injectee,org.jvnet.hk.internal.ServiceLocatorImpl)>(v, v);
v = v;
label:
return v;
label:
v = class "Lorg/glassfish/hk2/api/messaging/Topic;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = new org.jvnet.hk.internal.TopicImpl;
v = staticinvoke <org.glassfish.hk.utilities.reflection.ReflectionHelper: java.lang.reflect.Type getFirstTypeArgument(java.lang.reflect.Type)>(v);
v = interfaceinvoke v.<org.glassfish.hk.api.Injectee: java.util.Set getRequiredQualifiers()>();
specialinvoke v.<org.jvnet.hk.internal.TopicImpl: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl,java.lang.reflect.Type,java.util.Set)>(v, v, v);
v = new org.jvnet.hk.internal.ConstantActiveDescriptor;
specialinvoke v.<org.jvnet.hk.internal.ConstantActiveDescriptor: void <init>(java.lang.Object,org.jvnet.hk.internal.ServiceLocatorImpl)>(v, v);
return v;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.Injectee: java.util.Set getRequiredQualifiers()>();
v = interfaceinvoke v.<org.glassfish.hk.api.Injectee: java.lang.reflect.AnnotatedElement getParent()>();
v = staticinvoke <org.glassfish.hk.utilities.reflection.ReflectionHelper: java.lang.String getNameFromAllQualifiers(java.util.Set,java.lang.reflect.AnnotatedElement)>(v, v);
v = interfaceinvoke v.<java.util.Set: int size()>();
v = newarray (java.lang.'annotation'.Annotation)[v];
v = interfaceinvoke v.<java.util.Set: java.lang.Object[] toArray(java.lang.Object[])>(v);
v = interfaceinvoke v.<org.glassfish.hk.api.Injectee: org.glassfish.hk.api.Unqualified getUnqualified()>();
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ActiveDescriptor internalGetDescriptor(org.glassfish.hk.api.Injectee,java.lang.reflect.Type,java.lang.String,org.glassfish.hk.api.Unqualified,boolean,boolean,java.lang.'annotation'.Annotation[])>(v, v, v, v, 0, v, v);
return v;
}
public org.glassfish.hk.api.ActiveDescriptor getInjecteeDescriptor(org.glassfish.hk.api.Injectee) throws org.glassfish.hk.api.MultiException
{
org.glassfish.hk.api.ActiveDescriptor v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Injectee v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.Injectee;
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ActiveDescriptor internalGetInjecteeDescriptor(org.glassfish.hk.api.Injectee,boolean)>(v, 0);
return v;
}
public org.glassfish.hk.api.ServiceHandle getServiceHandle(org.glassfish.hk.api.ActiveDescriptor, org.glassfish.hk.api.Injectee) throws org.glassfish.hk.api.MultiException
{
long v, v, v, v;
org.glassfish.hk.api.ActiveDescriptor v;
org.jvnet.hk.internal.ServiceHandleImpl v;
byte v;
java.lang.Long v, v;
java.lang.String v, v, v, v;
boolean v, v, v;
java.lang.IllegalArgumentException v, v, v, v;
org.glassfish.hk.api.ServiceHandle v;
org.glassfish.hk.api.Injectee v;
org.jvnet.hk.internal.ServiceLocatorImpl v, v, v;
java.lang.Class v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.ActiveDescriptor;
v := @parameter: org.glassfish.hk.api.Injectee;
if v == null goto label;
v = v instanceof org.jvnet.hk.internal.SystemDescriptor;
if v != 0 goto label;
v = v instanceof org.jvnet.hk.internal.ConstantActiveDescriptor;
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
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 (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[])>("The descriptor passed to getServiceHandle must have been bound into a ServiceLocator.  The descriptor is of type \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.lang.Long getLocatorId()>();
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("The descriptor passed to getServiceHandle is not associated with any ServiceLocator");
throw v;
label:
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: long id>;
v = v cmp v;
if v == 0 goto label;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ServiceLocatorImpl parent>;
if v == null goto label;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ServiceLocatorImpl parent>;
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ServiceHandle getServiceHandle(org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.Injectee)>(v, v);
return v;
label:
v = new java.lang.IllegalArgumentException;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: long id>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,java.lang.Long)>(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[])>("The descriptor passed to getServiceHandle is not associated with this ServiceLocator (id=\u).  It is associated ServiceLocator id=\u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.lang.Long getServiceId()>();
v = v instanceof org.jvnet.hk.internal.SystemDescriptor;
if v == 0 goto label;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: long id>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long)>(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[])>("The descriptor passed to getServiceHandle was never added to this ServiceLocator (id=\u)");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ServiceHandleImpl getServiceHandleImpl(org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.Injectee)>(v, v);
return v;
}
private org.jvnet.hk.internal.ServiceHandleImpl getServiceHandleImpl(org.glassfish.hk.api.ActiveDescriptor, org.glassfish.hk.api.Injectee) throws org.glassfish.hk.api.MultiException
{
org.glassfish.hk.api.ActiveDescriptor v;
org.jvnet.hk.internal.ServiceHandleImpl v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.IllegalArgumentException v;
org.glassfish.hk.api.Injectee v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.ActiveDescriptor;
v := @parameter: org.glassfish.hk.api.Injectee;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>()>();
throw v;
label:
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
v = new org.jvnet.hk.internal.ServiceHandleImpl;
specialinvoke v.<org.jvnet.hk.internal.ServiceHandleImpl: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl,org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.Injectee)>(v, v, v);
return v;
}
public org.glassfish.hk.api.ServiceHandle getServiceHandle(org.glassfish.hk.api.ActiveDescriptor) throws org.glassfish.hk.api.MultiException
{
org.glassfish.hk.api.ActiveDescriptor v;
org.glassfish.hk.api.ServiceHandle v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.ActiveDescriptor;
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ServiceHandle getServiceHandle(org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.Injectee)>(v, null);
return v;
}
private org.jvnet.hk.internal.ServiceHandleImpl internalGetServiceHandle(org.glassfish.hk.api.ActiveDescriptor, java.lang.reflect.Type, org.glassfish.hk.api.Injectee)
{
java.lang.IllegalArgumentException v;
org.glassfish.hk.api.Injectee v, v;
org.glassfish.hk.utilities.InjecteeImpl v;
org.glassfish.hk.api.ActiveDescriptor v;
org.jvnet.hk.internal.ServiceHandleImpl v, v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.ActiveDescriptor;
v := @parameter: java.lang.reflect.Type;
v := @parameter: org.glassfish.hk.api.Injectee;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>()>();
throw v;
label:
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
if v != null goto label;
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ServiceHandleImpl getServiceHandleImpl(org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.Injectee)>(v, null);
return v;
label:
if v == null goto label;
v = v;
goto label;
label:
v = new org.glassfish.hk.utilities.InjecteeImpl;
v = v;
specialinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: void <init>(java.lang.reflect.Type)>(v);
label:
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ServiceHandleImpl getServiceHandleImpl(org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.Injectee)>(v, v);
return v;
}
public java.lang.Object getService(org.glassfish.hk.api.ActiveDescriptor, org.glassfish.hk.api.ServiceHandle) throws org.glassfish.hk.api.MultiException
{
org.glassfish.hk.api.ActiveDescriptor v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Object v;
org.glassfish.hk.api.ServiceHandle v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.ActiveDescriptor;
v := @parameter: org.glassfish.hk.api.ServiceHandle;
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Object getService(org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.ServiceHandle,org.glassfish.hk.api.Injectee)>(v, v, null);
return v;
}
public java.lang.Object getService(org.glassfish.hk.api.ActiveDescriptor, org.glassfish.hk.api.ServiceHandle, org.glassfish.hk.api.Injectee) throws org.glassfish.hk.api.MultiException
{
java.lang.Throwable v;
org.glassfish.hk.api.ServiceHandle v;
org.glassfish.hk.api.Injectee v;
org.glassfish.hk.api.ActiveDescriptor v;
org.jvnet.hk.internal.ServiceHandleImpl v, v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Class v, v, v;
java.lang.Object v, v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.ActiveDescriptor;
v := @parameter: org.glassfish.hk.api.ServiceHandle;
v := @parameter: org.glassfish.hk.api.Injectee;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
if v != null goto label;
v = null;
goto label;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.Injectee: java.lang.reflect.Type getRequiredType()>();
label:
v = staticinvoke <org.glassfish.hk.utilities.reflection.ReflectionHelper: java.lang.Class getRawClass(java.lang.reflect.Type)>(v);
if v != null goto label;
v = new org.jvnet.hk.internal.ServiceHandleImpl;
specialinvoke v.<org.jvnet.hk.internal.ServiceHandleImpl: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl,org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.Injectee)>(v, v, v);
v = staticinvoke <org.jvnet.hk.internal.Utilities: java.lang.Object createService(org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.Injectee,org.jvnet.hk.internal.ServiceLocatorImpl,org.glassfish.hk.api.ServiceHandle,java.lang.Class)>(v, v, v, v, v);
return v;
label:
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ServiceHandleImpl internalGetServiceHandle(org.glassfish.hk.api.ActiveDescriptor,java.lang.reflect.Type,org.glassfish.hk.api.Injectee)>(v, v, v);
v = class "Lorg/glassfish/hk2/api/PerLookup;";
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.lang.Class getScopeAnnotation()>();
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<org.jvnet.hk.internal.ServiceHandleImpl: void addSubHandle(org.jvnet.hk.internal.ServiceHandleImpl)>(v);
label:
virtualinvoke v.<org.jvnet.hk.internal.ServiceHandleImpl: void pushInjectee(org.glassfish.hk.api.Injectee)>(v);
label:
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceHandleImpl: java.lang.Object getService(org.glassfish.hk.api.ServiceHandle)>(v);
label:
virtualinvoke v.<org.jvnet.hk.internal.ServiceHandleImpl: void popInjectee()>();
return v;
label:
v := @caughtexception;
virtualinvoke v.<org.jvnet.hk.internal.ServiceHandleImpl: void popInjectee()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public transient java.lang.Object getService(java.lang.Class, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Class v;
java.lang.Object v;
java.lang.'annotation'.Annotation[] v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.'annotation'.Annotation[];
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Object internalGetService(java.lang.reflect.Type,java.lang.String,org.glassfish.hk.api.Unqualified,java.lang.'annotation'.Annotation[])>(v, null, null, v);
return v;
}
public transient java.lang.Object getService(java.lang.reflect.Type, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Object v;
java.lang.'annotation'.Annotation[] v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.reflect.Type;
v := @parameter: java.lang.'annotation'.Annotation[];
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Object internalGetService(java.lang.reflect.Type,java.lang.String,org.glassfish.hk.api.Unqualified,java.lang.'annotation'.Annotation[])>(v, null, null, v);
return v;
}
public transient java.lang.Object getService(java.lang.Class, java.lang.String, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Class v;
java.lang.Object v;
java.lang.String v;
java.lang.'annotation'.Annotation[] v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.String;
v := @parameter: java.lang.'annotation'.Annotation[];
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Object internalGetService(java.lang.reflect.Type,java.lang.String,org.glassfish.hk.api.Unqualified,java.lang.'annotation'.Annotation[])>(v, v, null, v);
return v;
}
public transient java.lang.Object getService(java.lang.reflect.Type, java.lang.String, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Object v;
java.lang.String v;
java.lang.'annotation'.Annotation[] v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.reflect.Type;
v := @parameter: java.lang.String;
v := @parameter: java.lang.'annotation'.Annotation[];
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Object internalGetService(java.lang.reflect.Type,java.lang.String,org.glassfish.hk.api.Unqualified,java.lang.'annotation'.Annotation[])>(v, v, null, v);
return v;
}
private transient java.lang.Object internalGetService(java.lang.reflect.Type, java.lang.String, org.glassfish.hk.api.Unqualified, java.lang.'annotation'.Annotation[])
{
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Unqualified v;
java.lang.Object v;
java.lang.String v;
java.lang.'annotation'.Annotation[] v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.reflect.Type;
v := @parameter: java.lang.String;
v := @parameter: org.glassfish.hk.api.Unqualified;
v := @parameter: java.lang.'annotation'.Annotation[];
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Object internalGetService(java.lang.reflect.Type,java.lang.String,org.glassfish.hk.api.Unqualified,boolean,java.lang.'annotation'.Annotation[])>(v, v, v, 0, v);
return v;
}
private transient java.lang.Object internalGetService(java.lang.reflect.Type, java.lang.String, org.glassfish.hk.api.Unqualified, boolean, java.lang.'annotation'.Annotation[])
{
java.lang.'annotation'.Annotation[] v;
java.util.HashSet v;
org.glassfish.hk.utilities.InjecteeImpl v;
org.glassfish.hk.api.ActiveDescriptor v;
int v, v;
java.lang.String v;
boolean v, v, v, v;
java.lang.reflect.Type v, v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Unqualified v;
java.lang.'annotation'.Annotation v;
java.lang.Class v, v, v, v;
java.lang.Object v;
org.jvnet.hk.internal.IterableProviderImpl v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.reflect.Type;
v := @parameter: java.lang.String;
v := @parameter: org.glassfish.hk.api.Unqualified;
v := @parameter: boolean;
v := @parameter: java.lang.'annotation'.Annotation[];
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
v = staticinvoke <org.glassfish.hk.utilities.reflection.ReflectionHelper: java.lang.Class getRawClass(java.lang.reflect.Type)>(v);
if v == null goto label;
v = class "Ljakarta/inject/Provider;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = class "Lorg/glassfish/hk2/api/IterableProvider;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = class "Lorg/glassfish/hk2/api/IterableProvider;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
v = staticinvoke <org.glassfish.hk.utilities.reflection.ReflectionHelper: java.lang.reflect.Type getFirstTypeArgument(java.lang.reflect.Type)>(v);
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
virtualinvoke v.<java.util.HashSet: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
v = new org.glassfish.hk.utilities.InjecteeImpl;
specialinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: void <init>(java.lang.reflect.Type)>(v);
virtualinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: void setRequiredQualifiers(java.util.Set)>(v);
virtualinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: void setUnqualified(org.glassfish.hk.api.Unqualified)>(v);
v = new org.jvnet.hk.internal.IterableProviderImpl;
specialinvoke v.<org.jvnet.hk.internal.IterableProviderImpl: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl,java.lang.reflect.Type,java.util.Set,org.glassfish.hk.api.Unqualified,org.glassfish.hk.api.Injectee,boolean)>(v, v, v, v, v, v);
return v;
label:
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ActiveDescriptor internalGetDescriptor(org.glassfish.hk.api.Injectee,java.lang.reflect.Type,java.lang.String,org.glassfish.hk.api.Unqualified,boolean,boolean,java.lang.'annotation'.Annotation[])>(null, v, v, v, 0, v, v);
if v != null goto label;
return null;
label:
v = staticinvoke <org.jvnet.hk.internal.Utilities: java.lang.Object createService(org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.Injectee,org.jvnet.hk.internal.ServiceLocatorImpl,org.glassfish.hk.api.ServiceHandle,java.lang.Class)>(v, null, v, null, v);
return v;
}
transient java.lang.Object getUnqualifiedService(java.lang.reflect.Type, org.glassfish.hk.api.Unqualified, boolean, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Unqualified v;
java.lang.Object v;
java.lang.'annotation'.Annotation[] v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.reflect.Type;
v := @parameter: org.glassfish.hk.api.Unqualified;
v := @parameter: boolean;
v := @parameter: java.lang.'annotation'.Annotation[];
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Object internalGetService(java.lang.reflect.Type,java.lang.String,org.glassfish.hk.api.Unqualified,boolean,java.lang.'annotation'.Annotation[])>(v, null, v, 1, v);
return v;
}
private transient java.util.List protectedGetAllServices(java.lang.reflect.Type, java.lang.'annotation'.Annotation[])
{
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.jvnet.hk.internal.ServiceLocatorImpl$6 v;
java.lang.Object v;
java.lang.'annotation'.Annotation[] v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.reflect.Type;
v := @parameter: java.lang.'annotation'.Annotation[];
v = new org.jvnet.hk.internal.ServiceLocatorImpl$6;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$6: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl,java.lang.reflect.Type,java.lang.'annotation'.Annotation[])>(v, v, v);
v = staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedAction)>(v);
return v;
}
public transient java.util.List getAllServices(java.lang.Class, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
java.util.List v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Class v;
java.lang.'annotation'.Annotation[] v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.'annotation'.Annotation[];
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getAllServices(java.lang.reflect.Type,java.lang.'annotation'.Annotation[])>(v, v);
return v;
}
public transient java.util.List getAllServices(java.lang.reflect.Type, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
java.util.List v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.'annotation'.Annotation[] v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.reflect.Type;
v := @parameter: java.lang.'annotation'.Annotation[];
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List internalGetAllServiceHandles(java.lang.reflect.Type,org.glassfish.hk.api.Unqualified,boolean,boolean,java.lang.'annotation'.Annotation[])>(v, null, 0, 0, v);
return v;
}
public transient java.util.List getAllServices(java.lang.'annotation'.Annotation, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
java.util.Iterator v;
java.lang.'annotation'.Annotation[] v;
java.util.List v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.'annotation'.Annotation v;
java.lang.Object v, v;
java.util.LinkedList v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.'annotation'.Annotation;
v := @parameter: java.lang.'annotation'.Annotation[];
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getAllServiceHandles(java.lang.'annotation'.Annotation,java.lang.'annotation'.Annotation[])>(v, v);
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
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 = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: java.lang.Object getService()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
}
public java.util.List getAllServices(org.glassfish.hk.api.Filter) throws org.glassfish.hk.api.MultiException
{
java.util.Iterator v;
org.glassfish.hk.api.Filter v;
java.util.List v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Object v, v;
java.util.LinkedList v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.Filter;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getAllServiceHandles(org.glassfish.hk.api.Filter)>(v);
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
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 = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: java.lang.Object getService()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
}
public java.lang.String getName()
{
java.lang.String v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.String locatorName>;
return v;
}
public org.glassfish.hk.api.ServiceLocatorState getState()
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.ServiceLocatorState v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ServiceLocatorState state>;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public boolean isShutdown()
{
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.ServiceLocatorState v, v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ServiceLocatorState state>;
v = <org.glassfish.hk.api.ServiceLocatorState: org.glassfish.hk.api.ServiceLocatorState SHUTDOWN>;
v = virtualinvoke v.<org.glassfish.hk.api.ServiceLocatorState: boolean equals(java.lang.Object)>(v);
return v;
}
public void shutdown()
{
org.glassfish.hk.utilities.reflection.Logger v, v;
org.glassfish.hk.api.ServiceLocatorState v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v, v, v, v, v;
org.glassfish.hk.utilities.reflection.ClassReflectionHelper v;
org.jvnet.hk.internal.PerLocatorUtilities v;
java.util.Map v, v, v, v;
org.glassfish.hk.api.ServiceLocatorFactory v;
boolean v, v, v, v;
java.util.concurrent.ConcurrentHashMap v;
java.util.Set v;
java.util.List v;
org.jvnet.hk.internal.ServiceLocatorImpl v, v, v;
java.lang.Throwable v, v, v, v;
java.util.HashMap v, v;
java.lang.String v, v;
java.util.LinkedList v;
java.util.LinkedHashSet v;
java.util.Iterator v, v;
org.jvnet.hk.internal.ServiceLocatorImpl$7 v;
org.jvnet.hk.internal.IndexedListData v;
org.glassfish.hk.utilities.cache.WeakCARCache v, v;
org.glassfish.hk.utilities.cache.Cache v, v;
java.lang.Object v, v, v;
org.glassfish.hk.api.Context v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void lock()>();
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ServiceLocatorState state>;
v = <org.glassfish.hk.api.ServiceLocatorState: org.glassfish.hk.api.ServiceLocatorState SHUTDOWN>;
v = virtualinvoke v.<org.glassfish.hk.api.ServiceLocatorState: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
return;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.Map children>;
entermonitor v;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.Map children>;
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
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()>();
interfaceinvoke v.<java.util.Iterator: void remove()>();
virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void shutdown()>();
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ServiceLocatorImpl parent>;
if v == null goto label;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ServiceLocatorImpl parent>;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void removeChild(org.jvnet.hk.internal.ServiceLocatorImpl)>(v);
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
throw v;
label:
v = new org.jvnet.hk.internal.ServiceLocatorImpl$7;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$7: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl)>(v);
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getAllServiceHandles(org.glassfish.hk.api.Filter)>(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()>();
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: boolean isActive()>();
if v == 0 goto label;
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: java.lang.Object getService()>();
interfaceinvoke v.<org.glassfish.hk.api.Context: void shutdown()>();
goto label;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.Context singletonContext>;
interfaceinvoke v.<org.glassfish.hk.api.Context: void shutdown()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void lock()>();
label:
v = <org.glassfish.hk.api.ServiceLocatorState: org.glassfish.hk.api.ServiceLocatorState SHUTDOWN>;
v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ServiceLocatorState state> = v;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.IndexedListData allDescriptors>;
virtualinvoke v.<org.jvnet.hk.internal.IndexedListData: void clear()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.HashMap descriptorsByAdvertisedContract>;
virtualinvoke v.<java.util.HashMap: void clear()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.HashMap descriptorsByName>;
virtualinvoke v.<java.util.HashMap: void clear()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.ConcurrentHashMap allResolvers>;
virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: void clear()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.Cache injecteeToResolverCache>;
virtualinvoke v.<org.glassfish.hk.utilities.cache.Cache: void clear()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedHashSet allValidators>;
virtualinvoke v.<java.util.LinkedHashSet: void clear()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedList errorHandlers>;
virtualinvoke v.<java.util.LinkedList: void clear()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.WeakCARCache igdCache>;
interfaceinvoke v.<org.glassfish.hk.utilities.cache.WeakCARCache: void clear()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.WeakCARCache igashCache>;
interfaceinvoke v.<org.glassfish.hk.utilities.cache.WeakCARCache: void clear()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.reflection.ClassReflectionHelper classReflectionHelper>;
interfaceinvoke v.<org.glassfish.hk.utilities.reflection.ClassReflectionHelper: void dispose()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.Cache contextCache>;
virtualinvoke v.<org.glassfish.hk.utilities.cache.Cache: void clear()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.PerLocatorUtilities perLocatorUtilities>;
virtualinvoke v.<org.jvnet.hk.internal.PerLocatorUtilities: void shutdown()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.Map children>;
entermonitor v;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.Map children>;
interfaceinvoke v.<java.util.Map: void clear()>();
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = staticinvoke <org.glassfish.hk.utilities.reflection.Logger: org.glassfish.hk.utilities.reflection.Logger getLogger()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.jvnet.hk.internal.ServiceLocatorImpl)>(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[])>("Shutdown ServiceLocator \u0001");
virtualinvoke v.<org.glassfish.hk.utilities.reflection.Logger: void debug(java.lang.String)>(v);
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
throw v;
label:
v = staticinvoke <org.glassfish.hk.api.ServiceLocatorFactory: org.glassfish.hk.api.ServiceLocatorFactory getInstance()>();
virtualinvoke v.<org.glassfish.hk.api.ServiceLocatorFactory: void destroy(org.glassfish.hk.api.ServiceLocator)>(v);
v = staticinvoke <org.glassfish.hk.utilities.reflection.Logger: org.glassfish.hk.utilities.reflection.Logger getLogger()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.jvnet.hk.internal.ServiceLocatorImpl)>(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[])>("ServiceLocator \u has been shutdown");
virtualinvoke v.<org.glassfish.hk.utilities.reflection.Logger: void debug(java.lang.String)>(v);
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;
catch java.lang.Throwable from label to label with label;
}
public java.lang.Object create(java.lang.Class)
{
java.lang.Class v;
java.lang.Object v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Class;
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Object create(java.lang.Class,java.lang.String)>(v, null);
return v;
}
public java.lang.Object create(java.lang.Class, java.lang.String)
{
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Class v;
java.lang.Object v;
java.lang.String v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.String;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
v = staticinvoke <org.jvnet.hk.internal.Utilities: java.lang.Object justCreate(java.lang.Class,org.jvnet.hk.internal.ServiceLocatorImpl,java.lang.String)>(v, v, v);
return v;
}
public void inject(java.lang.Object)
{
java.lang.Object v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Object;
virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void inject(java.lang.Object,java.lang.String)>(v, null);
return;
}
public transient java.lang.Object assistedInject(java.lang.Object, java.lang.reflect.Method, org.glassfish.hk.api.MethodParameter[])
{
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Object v, v;
java.lang.reflect.Method v;
org.glassfish.hk.api.MethodParameter[] v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.reflect.Method;
v := @parameter: org.glassfish.hk.api.MethodParameter[];
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Object assistedInject(java.lang.Object,java.lang.reflect.Method,org.glassfish.hk.api.ServiceHandle,org.glassfish.hk.api.MethodParameter[])>(v, v, null, v);
return v;
}
public transient java.lang.Object assistedInject(java.lang.Object, java.lang.reflect.Method, org.glassfish.hk.api.ServiceHandle, org.glassfish.hk.api.MethodParameter[])
{
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Object v, v;
org.glassfish.hk.api.ServiceHandle v;
java.lang.reflect.Method v;
org.glassfish.hk.api.MethodParameter[] v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.reflect.Method;
v := @parameter: org.glassfish.hk.api.ServiceHandle;
v := @parameter: org.glassfish.hk.api.MethodParameter[];
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
v = staticinvoke <org.jvnet.hk.internal.Utilities: java.lang.Object justAssistedInject(java.lang.Object,java.lang.reflect.Method,org.jvnet.hk.internal.ServiceLocatorImpl,org.glassfish.hk.api.ServiceHandle,org.glassfish.hk.api.MethodParameter[])>(v, v, v, v, v);
return v;
}
public void inject(java.lang.Object, java.lang.String)
{
java.lang.Object v;
java.lang.String v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.String;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
staticinvoke <org.jvnet.hk.internal.Utilities: void justInject(java.lang.Object,org.jvnet.hk.internal.ServiceLocatorImpl,java.lang.String)>(v, v, v);
return;
}
public void postConstruct(java.lang.Object)
{
java.lang.Object v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Object;
virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void postConstruct(java.lang.Object,java.lang.String)>(v, null);
return;
}
public void postConstruct(java.lang.Object, java.lang.String)
{
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Object v;
java.lang.String v;
java.lang.IllegalArgumentException v;
boolean v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.String;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>()>();
throw v;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("default");
if v == 0 goto label;
label:
v = v instanceof org.glassfish.hk.api.PostConstruct;
if v == 0 goto label;
interfaceinvoke v.<org.glassfish.hk.api.PostConstruct: void postConstruct()>();
goto label;
label:
staticinvoke <org.jvnet.hk.internal.Utilities: void justPostConstruct(java.lang.Object,org.jvnet.hk.internal.ServiceLocatorImpl,java.lang.String)>(v, v, v);
label:
return;
}
public void preDestroy(java.lang.Object)
{
java.lang.Object v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Object;
virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void preDestroy(java.lang.Object,java.lang.String)>(v, null);
return;
}
public void preDestroy(java.lang.Object, java.lang.String)
{
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Object v;
java.lang.String v;
java.lang.IllegalArgumentException v;
boolean v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.String;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>()>();
throw v;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("default");
if v == 0 goto label;
label:
v = v instanceof org.glassfish.hk.api.PreDestroy;
if v == 0 goto label;
interfaceinvoke v.<org.glassfish.hk.api.PreDestroy: void preDestroy()>();
goto label;
label:
staticinvoke <org.jvnet.hk.internal.Utilities: void justPreDestroy(java.lang.Object,org.jvnet.hk.internal.ServiceLocatorImpl,java.lang.String)>(v, v, v);
label:
return;
}
public java.lang.Object createAndInitialize(java.lang.Class)
{
java.lang.Class v;
java.lang.Object v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Class;
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Object createAndInitialize(java.lang.Class,java.lang.String)>(v, null);
return v;
}
public java.lang.Object createAndInitialize(java.lang.Class, java.lang.String)
{
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Class v;
java.lang.Object v;
java.lang.String v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Object create(java.lang.Class,java.lang.String)>(v, v);
virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void inject(java.lang.Object,java.lang.String)>(v, v);
virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void postConstruct(java.lang.Object,java.lang.String)>(v, v);
return v;
}
private static transient java.lang.String getName(java.lang.String, java.lang.'annotation'.Annotation[])
{
java.lang.'annotation'.Annotation[] v;
int v, v;
java.lang.'annotation'.Annotation v;
java.lang.String v, v, v, v;
boolean v, v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.'annotation'.Annotation[];
if v == null goto label;
return v;
label:
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v instanceof jakarta.inject.Named;
if v == 0 goto label;
v = interfaceinvoke v.<jakarta.inject.Named: java.lang.String value()>();
if v == null goto label;
v = interfaceinvoke v.<jakarta.inject.Named: java.lang.String value()>();
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<jakarta.inject.Named: java.lang.String value()>();
return v;
label:
v = v + 1;
goto label;
label:
return null;
}
private org.jvnet.hk.internal.ServiceLocatorImpl$IgdValue igdCacheCompute(org.jvnet.hk.internal.ServiceLocatorImpl$IgdCacheKey)
{
org.jvnet.hk.internal.ServiceLocatorImpl$IgdValue v, v;
org.glassfish.hk.api.Filter v, v;
java.lang.'annotation'.Annotation[] v;
org.jvnet.hk.internal.ServiceLocatorImpl$IgdCacheKey v;
java.lang.String v;
org.glassfish.hk.utilities.cache.ComputationErrorException v;
java.util.LinkedList v, v;
boolean v;
org.jvnet.hk.internal.ImmediateResults v;
org.jvnet.hk.internal.NarrowResults v;
org.glassfish.hk.api.Injectee v, v;
java.util.List v, v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.jvnet.hk.internal.ServiceLocatorImpl$IgdCacheKey;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl$IgdCacheKey: org.glassfish.hk.api.Filter filter>;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl$IgdCacheKey: org.glassfish.hk.api.Injectee onBehalfOf>;
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getDescriptors(org.glassfish.hk.api.Filter,org.glassfish.hk.api.Injectee,boolean,boolean,boolean)>(v, v, 1, 0, 1);
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl$IgdCacheKey: java.lang.reflect.Type contractOrImpl>;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl$IgdCacheKey: java.lang.String name>;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl$IgdCacheKey: org.glassfish.hk.api.Injectee onBehalfOf>;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl$IgdCacheKey: org.glassfish.hk.api.Filter filter>;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl$IgdCacheKey: java.lang.'annotation'.Annotation[] qualifiers>;
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ImmediateResults narrow(org.glassfish.hk.api.ServiceLocator,java.util.List,java.lang.reflect.Type,java.lang.String,org.glassfish.hk.api.Injectee,boolean,boolean,org.jvnet.hk.internal.NarrowResults,org.glassfish.hk.api.Filter,java.lang.'annotation'.Annotation[])>(v, v, v, v, v, 1, 1, null, v, v);
v = virtualinvoke v.<org.jvnet.hk.internal.ImmediateResults: org.jvnet.hk.internal.NarrowResults getTimelessResults()>();
v = virtualinvoke v.<org.jvnet.hk.internal.NarrowResults: java.util.List getErrors()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = new java.util.LinkedList;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedList errorHandlers>;
specialinvoke v.<java.util.LinkedList: void <init>(java.util.Collection)>(v);
staticinvoke <org.jvnet.hk.internal.Utilities: void handleErrors(org.jvnet.hk.internal.NarrowResults,java.util.LinkedList)>(v, v);
v = new org.glassfish.hk.utilities.cache.ComputationErrorException;
v = new org.jvnet.hk.internal.ServiceLocatorImpl$IgdValue;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$IgdValue: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl,org.jvnet.hk.internal.NarrowResults,org.jvnet.hk.internal.ImmediateResults)>(v, v, v);
specialinvoke v.<org.glassfish.hk.utilities.cache.ComputationErrorException: void <init>(java.lang.Object)>(v);
throw v;
label:
v = new org.jvnet.hk.internal.ServiceLocatorImpl$IgdValue;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$IgdValue: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl,org.jvnet.hk.internal.NarrowResults,org.jvnet.hk.internal.ImmediateResults)>(v, v, v);
return v;
}
private org.glassfish.hk.api.Unqualified getEffectiveUnqualified(org.glassfish.hk.api.Unqualified, boolean, java.lang.'annotation'.Annotation[])
{
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Unqualified v, v;
int v;
java.lang.'annotation'.Annotation[] v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.Unqualified;
v := @parameter: boolean;
v := @parameter: java.lang.'annotation'.Annotation[];
if v == null goto label;
return v;
label:
v = lengthof v;
if v <= 0 goto label;
return null;
label:
if v == 0 goto label;
return null;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.Unqualified defaultUnqualified>;
return v;
}
private transient org.glassfish.hk.api.ActiveDescriptor internalGetDescriptor(org.glassfish.hk.api.Injectee, java.lang.reflect.Type, java.lang.String, org.glassfish.hk.api.Unqualified, boolean, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
java.lang.'annotation'.Annotation[] v;
org.glassfish.hk.api.Injectee v;
org.glassfish.hk.api.ActiveDescriptor v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Unqualified v;
java.lang.String v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.Injectee;
v := @parameter: java.lang.reflect.Type;
v := @parameter: java.lang.String;
v := @parameter: org.glassfish.hk.api.Unqualified;
v := @parameter: boolean;
v := @parameter: java.lang.'annotation'.Annotation[];
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ActiveDescriptor internalGetDescriptor(org.glassfish.hk.api.Injectee,java.lang.reflect.Type,java.lang.String,org.glassfish.hk.api.Unqualified,boolean,boolean,java.lang.'annotation'.Annotation[])>(v, v, v, v, v, 0, v);
return v;
}
private transient org.glassfish.hk.api.ActiveDescriptor internalGetDescriptor(org.glassfish.hk.api.Injectee, java.lang.reflect.Type, java.lang.String, org.glassfish.hk.api.Unqualified, boolean, boolean, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
org.glassfish.hk.api.ActiveDescriptor v;
org.jvnet.hk.internal.ServiceLocatorImpl$IgdCacheKey v;
org.jvnet.hk.internal.ServiceLocatorImpl$UnqualifiedIndexedFilter v;
java.util.concurrent.atomic.AtomicInteger v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
boolean v, v, v, v, v;
org.jvnet.hk.internal.ImmediateResults v;
org.jvnet.hk.internal.NarrowResults v, v;
java.util.List v, v, v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.'annotation'.Annotation v;
java.lang.Throwable v;
java.lang.'annotation'.Annotation[] v;
java.util.HashSet v;
org.glassfish.hk.utilities.InjecteeImpl v;
int v, v, v;
java.lang.String v, v, v;
java.util.LinkedList v, v, v;
java.lang.IllegalArgumentException v;
org.glassfish.hk.api.Injectee v, v;
org.glassfish.hk.utilities.cache.WeakCARCache v;
org.glassfish.hk.api.Unqualified v, v;
org.jvnet.hk.internal.CacheKey v;
java.lang.Class v, v;
java.lang.Object v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.Injectee;
v := @parameter: java.lang.reflect.Type;
v := @parameter: java.lang.String;
v := @parameter: org.glassfish.hk.api.Unqualified;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: java.lang.'annotation'.Annotation[];
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>()>();
throw v;
label:
v = staticinvoke <org.glassfish.hk.utilities.reflection.ReflectionHelper: java.lang.Class getRawClass(java.lang.reflect.Type)>(v);
if v != null goto label;
return null;
label:
staticinvoke <org.jvnet.hk.internal.Utilities: void checkLookupType(java.lang.Class)>(v);
v = staticinvoke <org.jvnet.hk.internal.Utilities: java.lang.Class translatePrimitiveType(java.lang.Class)>(v);
v = staticinvoke <org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.String getName(java.lang.String,java.lang.'annotation'.Annotation[])>(v, v);
v = null;
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.Unqualified getEffectiveUnqualified(org.glassfish.hk.api.Unqualified,boolean,java.lang.'annotation'.Annotation[])>(v, v, v);
v = new org.jvnet.hk.internal.CacheKey;
specialinvoke v.<org.jvnet.hk.internal.CacheKey: void <init>(java.lang.reflect.Type,java.lang.String,org.glassfish.hk.api.Unqualified,java.lang.'annotation'.Annotation[])>(v, v, v, v);
v = new org.jvnet.hk.internal.ServiceLocatorImpl$UnqualifiedIndexedFilter;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$UnqualifiedIndexedFilter: void <init>(java.lang.String,java.lang.String,org.glassfish.hk.api.Unqualified)>(v, v, v);
v = new org.jvnet.hk.internal.ServiceLocatorImpl$IgdCacheKey;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$IgdCacheKey: void <init>(org.jvnet.hk.internal.CacheKey,java.lang.String,org.glassfish.hk.api.Injectee,java.lang.reflect.Type,java.lang.Class,java.lang.'annotation'.Annotation[],org.glassfish.hk.api.Filter)>(v, v, v, v, v, v, v);
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.WeakCARCache igdCache>;
v = interfaceinvoke v.<org.glassfish.hk.utilities.cache.WeakCARCache: java.lang.Object compute(java.lang.Object)>(v);
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl$IgdValue: java.util.concurrent.atomic.AtomicInteger freshnessKeeper>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: boolean compareAndSet(int,int)>(1, 2);
if v != 0 goto label;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl$IgdValue: org.jvnet.hk.internal.NarrowResults results>;
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ImmediateResults narrow(org.glassfish.hk.api.ServiceLocator,java.util.List,java.lang.reflect.Type,java.lang.String,org.glassfish.hk.api.Injectee,boolean,boolean,org.jvnet.hk.internal.NarrowResults,org.glassfish.hk.api.Filter,java.lang.'annotation'.Annotation[])>(v, null, v, v, v, 1, 1, v, v, v);
v = virtualinvoke v.<org.jvnet.hk.internal.ImmediateResults: org.jvnet.hk.internal.NarrowResults getTimelessResults()>();
goto label;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl$IgdValue: org.jvnet.hk.internal.NarrowResults results>;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl$IgdValue: org.jvnet.hk.internal.ImmediateResults immediate>;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.NarrowResults: java.util.List getErrors()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = new java.util.LinkedList;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedList errorHandlers>;
specialinvoke v.<java.util.LinkedList: void <init>(java.util.Collection)>(v);
v = v;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
label:
if v == null goto label;
staticinvoke <org.jvnet.hk.internal.Utilities: void handleErrors(org.jvnet.hk.internal.NarrowResults,java.util.LinkedList)>(v, v);
label:
v = virtualinvoke v.<org.jvnet.hk.internal.ImmediateResults: java.util.List getImmediateResults()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<org.jvnet.hk.internal.ImmediateResults: java.util.List getImmediateResults()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
label:
v = v;
if v != 0 goto label;
if v != null goto label;
if v != null goto label;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
if v == null goto label;
v = lengthof v;
if v <= 0 goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
if v == null goto label;
virtualinvoke v.<java.util.HashSet: boolean add(java.lang.Object)>(v);
label:
v = v + 1;
goto label;
label:
v = new org.glassfish.hk.utilities.InjecteeImpl;
specialinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: void <init>(java.lang.reflect.Type)>(v);
virtualinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: void setRequiredQualifiers(java.util.Set)>(v);
virtualinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: void setUnqualified(org.glassfish.hk.api.Unqualified)>(v);
v = v;
goto label;
label:
v = v;
label:
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ActiveDescriptor secondChanceResolve(org.glassfish.hk.api.Injectee)>(v);
label:
return v;
catch java.lang.Throwable from label to label with label;
}
public transient org.glassfish.hk.api.ServiceHandle getServiceHandle(java.lang.Class, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Class v;
java.lang.'annotation'.Annotation[] v;
org.glassfish.hk.api.ServiceHandle v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.'annotation'.Annotation[];
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ServiceHandle getServiceHandle(java.lang.reflect.Type,java.lang.'annotation'.Annotation[])>(v, v);
return v;
}
public transient org.glassfish.hk.api.ServiceHandle getServiceHandle(java.lang.reflect.Type, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
org.glassfish.hk.utilities.InjecteeImpl v;
org.glassfish.hk.api.ActiveDescriptor v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.'annotation'.Annotation[] v;
org.glassfish.hk.api.ServiceHandle v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.reflect.Type;
v := @parameter: java.lang.'annotation'.Annotation[];
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ActiveDescriptor internalGetDescriptor(org.glassfish.hk.api.Injectee,java.lang.reflect.Type,java.lang.String,org.glassfish.hk.api.Unqualified,boolean,java.lang.'annotation'.Annotation[])>(null, v, null, null, 0, v);
if v != null goto label;
return null;
label:
v = new org.glassfish.hk.utilities.InjecteeImpl;
specialinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: void <init>(java.lang.reflect.Type)>(v);
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ServiceHandle getServiceHandle(org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.Injectee)>(v, v);
return v;
}
transient org.glassfish.hk.api.ServiceHandle getUnqualifiedServiceHandle(java.lang.reflect.Type, org.glassfish.hk.api.Unqualified, boolean, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
java.lang.'annotation'.Annotation[] v;
org.glassfish.hk.api.ServiceHandle v;
org.glassfish.hk.utilities.InjecteeImpl v;
org.glassfish.hk.api.ActiveDescriptor v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Unqualified v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.reflect.Type;
v := @parameter: org.glassfish.hk.api.Unqualified;
v := @parameter: boolean;
v := @parameter: java.lang.'annotation'.Annotation[];
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ActiveDescriptor internalGetDescriptor(org.glassfish.hk.api.Injectee,java.lang.reflect.Type,java.lang.String,org.glassfish.hk.api.Unqualified,boolean,java.lang.'annotation'.Annotation[])>(null, v, null, v, v, v);
if v != null goto label;
return null;
label:
v = new org.glassfish.hk.utilities.InjecteeImpl;
specialinvoke v.<org.glassfish.hk.utilities.InjecteeImpl: void <init>(java.lang.reflect.Type)>(v);
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ServiceHandle getServiceHandle(org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.Injectee)>(v, v);
return v;
}
private transient java.util.List protectedGetAllServiceHandles(java.lang.reflect.Type, java.lang.'annotation'.Annotation[])
{
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.jvnet.hk.internal.ServiceLocatorImpl$9 v;
java.lang.Object v;
java.lang.'annotation'.Annotation[] v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.reflect.Type;
v := @parameter: java.lang.'annotation'.Annotation[];
v = new org.jvnet.hk.internal.ServiceLocatorImpl$9;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$9: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl,java.lang.reflect.Type,java.lang.'annotation'.Annotation[])>(v, v, v);
v = staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedAction)>(v);
return v;
}
public transient java.util.List getAllServiceHandles(java.lang.Class, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
java.util.List v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Class v;
java.lang.Object v;
java.lang.'annotation'.Annotation[] v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.'annotation'.Annotation[];
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getAllServiceHandles(java.lang.reflect.Type,java.lang.'annotation'.Annotation[])>(v, v);
v = staticinvoke <org.glassfish.hk.utilities.reflection.ReflectionHelper: java.lang.Object cast(java.lang.Object)>(v);
return v;
}
public transient java.util.List getAllServiceHandles(java.lang.reflect.Type, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
java.util.List v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.'annotation'.Annotation[] v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.reflect.Type;
v := @parameter: java.lang.'annotation'.Annotation[];
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List internalGetAllServiceHandles(java.lang.reflect.Type,org.glassfish.hk.api.Unqualified,boolean,boolean,java.lang.'annotation'.Annotation[])>(v, null, 1, 0, v);
return v;
}
transient java.util.List getAllUnqualifiedServiceHandles(java.lang.reflect.Type, org.glassfish.hk.api.Unqualified, boolean, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
java.util.List v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Unqualified v;
java.lang.'annotation'.Annotation[] v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.reflect.Type;
v := @parameter: org.glassfish.hk.api.Unqualified;
v := @parameter: boolean;
v := @parameter: java.lang.'annotation'.Annotation[];
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List internalGetAllServiceHandles(java.lang.reflect.Type,org.glassfish.hk.api.Unqualified,boolean,boolean,java.lang.'annotation'.Annotation[])>(v, v, 1, v, v);
return v;
}
private transient java.util.List internalGetAllServiceHandles(java.lang.reflect.Type, org.glassfish.hk.api.Unqualified, boolean, boolean, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
org.jvnet.hk.internal.ServiceLocatorImpl$IgdCacheKey v;
org.jvnet.hk.internal.ServiceLocatorImpl$UnqualifiedIndexedFilter v;
org.jvnet.hk.internal.ServiceHandleImpl v;
java.util.concurrent.atomic.AtomicInteger v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
boolean v, v, v, v, v;
org.jvnet.hk.internal.ImmediateResults v;
org.jvnet.hk.internal.NarrowResults v, v;
java.util.List v, v;
org.glassfish.hk.api.MultiException v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Throwable v;
java.lang.'annotation'.Annotation[] v;
java.lang.String v, v;
java.util.LinkedList v, v, v, v;
java.util.Iterator v;
java.lang.IllegalArgumentException v, v;
org.glassfish.hk.utilities.cache.WeakCARCache v;
org.glassfish.hk.api.Unqualified v, v;
org.jvnet.hk.internal.CacheKey v;
java.lang.Class v;
java.lang.Object v, v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.reflect.Type;
v := @parameter: org.glassfish.hk.api.Unqualified;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: java.lang.'annotation'.Annotation[];
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>()>();
throw v;
label:
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
v = staticinvoke <org.glassfish.hk.utilities.reflection.ReflectionHelper: java.lang.Class getRawClass(java.lang.reflect.Type)>(v);
if v != null goto label;
v = new org.glassfish.hk.api.MultiException;
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.reflect.Type)>(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[])>("Type must be a class or parameterized type, it was \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
specialinvoke v.<org.glassfish.hk.api.MultiException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = null;
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.Unqualified getEffectiveUnqualified(org.glassfish.hk.api.Unqualified,boolean,java.lang.'annotation'.Annotation[])>(v, v, v);
v = new org.jvnet.hk.internal.CacheKey;
specialinvoke v.<org.jvnet.hk.internal.CacheKey: void <init>(java.lang.reflect.Type,java.lang.String,org.glassfish.hk.api.Unqualified,java.lang.'annotation'.Annotation[])>(v, null, v, v);
v = new org.jvnet.hk.internal.ServiceLocatorImpl$UnqualifiedIndexedFilter;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$UnqualifiedIndexedFilter: void <init>(java.lang.String,java.lang.String,org.glassfish.hk.api.Unqualified)>(v, null, v);
v = new org.jvnet.hk.internal.ServiceLocatorImpl$IgdCacheKey;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$IgdCacheKey: void <init>(org.jvnet.hk.internal.CacheKey,java.lang.String,org.glassfish.hk.api.Injectee,java.lang.reflect.Type,java.lang.Class,java.lang.'annotation'.Annotation[],org.glassfish.hk.api.Filter)>(v, v, null, v, v, v, v);
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.WeakCARCache igashCache>;
v = interfaceinvoke v.<org.glassfish.hk.utilities.cache.WeakCARCache: java.lang.Object compute(java.lang.Object)>(v);
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl$IgdValue: java.util.concurrent.atomic.AtomicInteger freshnessKeeper>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: boolean compareAndSet(int,int)>(1, 2);
if v != 0 goto label;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl$IgdValue: org.jvnet.hk.internal.NarrowResults results>;
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ImmediateResults narrow(org.glassfish.hk.api.ServiceLocator,java.util.List,java.lang.reflect.Type,java.lang.String,org.glassfish.hk.api.Injectee,boolean,boolean,org.jvnet.hk.internal.NarrowResults,org.glassfish.hk.api.Filter,java.lang.'annotation'.Annotation[])>(v, null, v, null, null, 0, 1, v, v, v);
v = virtualinvoke v.<org.jvnet.hk.internal.ImmediateResults: org.jvnet.hk.internal.NarrowResults getTimelessResults()>();
goto label;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl$IgdValue: org.jvnet.hk.internal.NarrowResults results>;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl$IgdValue: org.jvnet.hk.internal.ImmediateResults immediate>;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.NarrowResults: java.util.List getErrors()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = new java.util.LinkedList;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedList errorHandlers>;
specialinvoke v.<java.util.LinkedList: void <init>(java.util.Collection)>(v);
v = v;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
label:
if v == null goto label;
staticinvoke <org.jvnet.hk.internal.Utilities: void handleErrors(org.jvnet.hk.internal.NarrowResults,java.util.LinkedList)>(v, v);
label:
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v = virtualinvoke v.<org.jvnet.hk.internal.ImmediateResults: java.util.List getImmediateResults()>();
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()>();
if v == 0 goto label;
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ServiceHandleImpl internalGetServiceHandle(org.glassfish.hk.api.ActiveDescriptor,java.lang.reflect.Type,org.glassfish.hk.api.Injectee)>(v, v, null);
virtualinvoke v.<java.util.LinkedList: boolean add(java.lang.Object)>(v);
goto label;
label:
v = staticinvoke <org.jvnet.hk.internal.Utilities: java.lang.Object createService(org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.Injectee,org.jvnet.hk.internal.ServiceLocatorImpl,org.glassfish.hk.api.ServiceHandle,java.lang.Class)>(v, null, v, null, v);
virtualinvoke v.<java.util.LinkedList: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
public transient org.glassfish.hk.api.ServiceHandle getServiceHandle(java.lang.Class, java.lang.String, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Class v;
java.lang.String v;
java.lang.'annotation'.Annotation[] v;
org.glassfish.hk.api.ServiceHandle v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.String;
v := @parameter: java.lang.'annotation'.Annotation[];
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ServiceHandle getServiceHandle(java.lang.reflect.Type,java.lang.String,java.lang.'annotation'.Annotation[])>(v, v, v);
return v;
}
public transient org.glassfish.hk.api.ServiceHandle getServiceHandle(java.lang.reflect.Type, java.lang.String, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
org.glassfish.hk.api.ActiveDescriptor v;
org.jvnet.hk.internal.ServiceHandleImpl v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.String v;
java.lang.'annotation'.Annotation[] v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.reflect.Type;
v := @parameter: java.lang.String;
v := @parameter: java.lang.'annotation'.Annotation[];
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ActiveDescriptor internalGetDescriptor(org.glassfish.hk.api.Injectee,java.lang.reflect.Type,java.lang.String,org.glassfish.hk.api.Unqualified,boolean,java.lang.'annotation'.Annotation[])>(null, v, v, null, 0, v);
if v != null goto label;
return null;
label:
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ServiceHandleImpl internalGetServiceHandle(org.glassfish.hk.api.ActiveDescriptor,java.lang.reflect.Type,org.glassfish.hk.api.Injectee)>(v, v, null);
return v;
}
public java.util.List getAllServiceHandles(org.glassfish.hk.api.Filter) throws org.glassfish.hk.api.MultiException
{
org.glassfish.hk.api.Filter v;
java.lang.'annotation'.Annotation[] v;
java.util.TreeSet v;
java.util.LinkedList v, v, v, v;
boolean v, v;
org.jvnet.hk.internal.ImmediateResults v;
java.util.Iterator v;
org.jvnet.hk.internal.NarrowResults v;
org.glassfish.hk.api.ServiceHandle v;
org.jvnet.hk.internal.ServiceHandleComparator v;
java.util.List v, v, v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Object v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.Filter;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
v = null;
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getDescriptors(org.glassfish.hk.api.Filter)>(v);
v = staticinvoke <org.glassfish.hk.utilities.reflection.ReflectionHelper: java.lang.Object cast(java.lang.Object)>(v);
v = newarray (java.lang.'annotation'.Annotation)[0];
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ImmediateResults narrow(org.glassfish.hk.api.ServiceLocator,java.util.List,java.lang.reflect.Type,java.lang.String,org.glassfish.hk.api.Injectee,boolean,boolean,org.jvnet.hk.internal.NarrowResults,org.glassfish.hk.api.Filter,java.lang.'annotation'.Annotation[])>(v, v, null, null, null, 0, 0, null, v, v);
v = virtualinvoke v.<org.jvnet.hk.internal.ImmediateResults: org.jvnet.hk.internal.NarrowResults getTimelessResults()>();
v = virtualinvoke v.<org.jvnet.hk.internal.NarrowResults: java.util.List getErrors()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = new java.util.LinkedList;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedList errorHandlers>;
specialinvoke v.<java.util.LinkedList: void <init>(java.util.Collection)>(v);
v = v;
label:
if v == null goto label;
staticinvoke <org.jvnet.hk.internal.Utilities: void handleErrors(org.jvnet.hk.internal.NarrowResults,java.util.LinkedList)>(v, v);
label:
v = new java.util.TreeSet;
v = <org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ServiceHandleComparator HANDLE_COMPARATOR>;
specialinvoke v.<java.util.TreeSet: void <init>(java.util.Comparator)>(v);
v = virtualinvoke v.<org.jvnet.hk.internal.NarrowResults: java.util.List getResults()>();
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.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ServiceHandle getServiceHandle(org.glassfish.hk.api.ActiveDescriptor)>(v);
interfaceinvoke v.<java.util.SortedSet: boolean add(java.lang.Object)>(v);
goto label;
label:
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>(java.util.Collection)>(v);
return v;
}
public transient java.util.List getAllServiceHandles(java.lang.'annotation'.Annotation, java.lang.'annotation'.Annotation[]) throws org.glassfish.hk.api.MultiException
{
org.jvnet.hk.internal.ServiceLocatorImpl$11 v;
java.lang.'annotation'.Annotation[] v;
int v, v;
java.lang.String v, v, v;
java.util.LinkedHashSet v;
boolean v;
java.lang.IllegalArgumentException v, v;
java.util.List v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.'annotation'.Annotation v, v;
java.lang.Class v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.'annotation'.Annotation;
v := @parameter: java.lang.'annotation'.Annotation[];
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void checkState()>();
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("qualifier is null");
throw v;
label:
v = new java.util.LinkedHashSet;
specialinvoke v.<java.util.LinkedHashSet: void <init>()>();
v = interfaceinvoke v.<java.lang.'annotation'.Annotation: java.lang.Class annotationType()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = interfaceinvoke v.<java.lang.'annotation'.Annotation: java.lang.Class annotationType()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
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[])>("Multiple qualifiers with name \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
v = new org.jvnet.hk.internal.ServiceLocatorImpl$11;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$11: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl,java.util.Set)>(v, v);
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getAllServiceHandles(org.glassfish.hk.api.Filter)>(v);
return v;
}
java.util.List getInterceptionServices()
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.util.LinkedList v, v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: boolean hasInterceptionServices>;
if v != 0 goto label;
return null;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = new java.util.LinkedList;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedList interceptionServices>;
specialinvoke v.<java.util.LinkedList: void <init>(java.util.Collection)>(v);
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
private org.jvnet.hk.internal.ServiceLocatorImpl$CheckConfigurationData checkConfiguration(org.jvnet.hk.internal.DynamicConfigurationImpl)
{
org.glassfish.hk.utilities.reflection.Logger v;
org.glassfish.hk.api.Operation v, v;
java.util.HashSet v;
java.util.LinkedList v, v, v, v, v, v, v;
org.jvnet.hk.internal.ValidationInformationImpl v, v;
org.jvnet.hk.internal.TwoPhaseTransactionDataImpl v;
java.lang.Class v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Object v, v, v, v, v, v, v, v, v;
org.glassfish.hk.api.Validator v;
org.glassfish.hk.api.Filter v;
java.util.Set v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.glassfish.hk.api.MultiException v, v, v, v, v, v;
java.lang.Throwable v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.LinkedHashSet v, v;
org.glassfish.hk.api.DuplicateServiceException v;
java.lang.RuntimeException v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.List v, v, v, v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.jvnet.hk.internal.DynamicConfigurationImpl v;
org.jvnet.hk.internal.ServiceLocatorImpl$CheckConfigurationData v;
java.util.Iterator v, v, v, v, v, v, v, v, v;
java.lang.IllegalArgumentException v, v, v, v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.jvnet.hk.internal.DynamicConfigurationImpl;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v = 0;
v = 0;
v = 0;
v = 0;
v = 0;
v = 0;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = new org.jvnet.hk.internal.TwoPhaseTransactionDataImpl;
specialinvoke v.<org.jvnet.hk.internal.TwoPhaseTransactionDataImpl: void <init>()>();
v = virtualinvoke v.<org.jvnet.hk.internal.DynamicConfigurationImpl: java.util.LinkedList getUnbindFilters()>();
v = virtualinvoke v.<java.util.LinkedList: 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 = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getDescriptors(org.glassfish.hk.api.Filter,org.glassfish.hk.api.Injectee,boolean,boolean,boolean)>(v, null, 0, 0, 1);
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.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getAllContracts(org.glassfish.hk.api.ActiveDescriptor)>(v);
virtualinvoke v.<java.util.HashSet: boolean addAll(java.util.Collection)>(v);
v = interfaceinvoke v.<java.util.List: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedHashSet getAllValidators()>();
v = virtualinvoke v.<java.util.LinkedHashSet: 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 = new org.jvnet.hk.internal.ValidationInformationImpl;
v = <org.glassfish.hk.api.Operation: org.glassfish.hk.api.Operation UNBIND>;
specialinvoke v.<org.jvnet.hk.internal.ValidationInformationImpl: void <init>(org.glassfish.hk.api.Operation,org.glassfish.hk.api.ActiveDescriptor)>(v, v);
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: boolean callValidate(org.glassfish.hk.api.ValidationService,org.glassfish.hk.api.ValidationInformation)>(v, v);
if v != 0 goto label;
v = new org.glassfish.hk.api.MultiException;
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.jvnet.hk.internal.SystemDescriptor)>(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[])>("Descriptor \u did not pass the UNBIND validation");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
specialinvoke v.<org.glassfish.hk.api.MultiException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = class "Lorg/glassfish/hk2/api/InstanceLifecycleListener;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = class "Lorg/glassfish/hk2/api/InjectionResolver;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = class "Lorg/glassfish/hk2/api/ErrorService;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = class "Lorg/glassfish/hk2/api/ClassAnalyzer;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = class "Lorg/glassfish/hk2/api/DynamicConfigurationListener;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = class "Lorg/glassfish/hk2/api/InterceptionService;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
label:
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
virtualinvoke v.<org.jvnet.hk.internal.TwoPhaseTransactionDataImpl: void toRemove(org.glassfish.hk.api.ActiveDescriptor)>(v);
goto label;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.DynamicConfigurationImpl: java.util.LinkedList getAllDescriptors()>();
v = virtualinvoke v.<java.util.LinkedList: 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.<org.jvnet.hk.internal.TwoPhaseTransactionDataImpl: void toAdd(org.glassfish.hk.api.ActiveDescriptor)>(v);
v = staticinvoke <org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getAllContracts(org.glassfish.hk.api.ActiveDescriptor)>(v);
virtualinvoke v.<java.util.HashSet: boolean addAll(java.util.Collection)>(v);
v = 0;
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = class "Lorg/glassfish/hk2/api/ValidationService;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = class "Lorg/glassfish/hk2/api/ErrorService;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = class "Lorg/glassfish/hk2/api/InterceptionService;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = class "Lorg/glassfish/hk2/api/InstanceLifecycleListener;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
label:
virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ActiveDescriptor reifyDescriptor(org.glassfish.hk.api.Descriptor)>(v);
v = 1;
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = class "Lorg/glassfish/hk2/api/ErrorService;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = class "Lorg/glassfish/hk2/api/InstanceLifecycleListener;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = class "Lorg/glassfish/hk2/api/InterceptionService;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = class "Lorg/glassfish/hk2/api/InjectionResolver;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ActiveDescriptor reifyDescriptor(org.glassfish.hk.api.Descriptor)>(v);
v = 1;
v = staticinvoke <org.jvnet.hk.internal.Utilities: java.lang.Class getInjectionResolverType(org.glassfish.hk.api.ActiveDescriptor)>(v);
if v != null goto label;
v = new org.glassfish.hk.api.MultiException;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("An implementation of InjectionResolver must be a parameterized type and the actual type must be an annotation");
specialinvoke v.<org.glassfish.hk.api.MultiException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = 1;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = class "Lorg/glassfish/hk2/api/DynamicConfigurationListener;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ActiveDescriptor reifyDescriptor(org.glassfish.hk.api.Descriptor)>(v);
v = 1;
v = 1;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = class "Lorg/glassfish/hk2/api/Context;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = class "Lorg/glassfish/hk2/api/ClassAnalyzer;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
label:
if v == 0 goto label;
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.lang.String getScope()>();
if v != null goto label;
v = class "Lorg/glassfish/hk2/api/PerLookup;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
goto label;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.lang.String getScope()>();
label:
v = class "Ljakarta/inject/Singleton;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = new org.glassfish.hk.api.MultiException;
v = new java.lang.IllegalArgumentException;
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.lang.String getImplementation()>();
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[])>("The implementation class \u must be in the Singleton scope");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
specialinvoke v.<org.glassfish.hk.api.MultiException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedHashSet getAllValidators()>();
v = virtualinvoke v.<java.util.LinkedHashSet: 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.<org.glassfish.hk.api.ValidationService: org.glassfish.hk.api.Validator getValidator()>();
if v != null goto label;
v = new org.glassfish.hk.api.MultiException;
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.hk.api.ValidationService)>(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[])>("Validator was null from validation service\u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
specialinvoke v.<org.glassfish.hk.api.MultiException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = new org.jvnet.hk.internal.ValidationInformationImpl;
v = <org.glassfish.hk.api.Operation: org.glassfish.hk.api.Operation BIND>;
specialinvoke v.<org.jvnet.hk.internal.ValidationInformationImpl: void <init>(org.glassfish.hk.api.Operation,org.glassfish.hk.api.ActiveDescriptor)>(v, v);
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: boolean callValidate(org.glassfish.hk.api.ValidationService,org.glassfish.hk.api.ValidationInformation)>(v, v);
if v != 0 goto label;
v = new org.glassfish.hk.api.MultiException;
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.jvnet.hk.internal.SystemDescriptor)>(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[])>("Descriptor \u did not pass the BIND validation");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
specialinvoke v.<org.glassfish.hk.api.MultiException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.DynamicConfigurationImpl: java.util.LinkedList getIdempotentFilters()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = staticinvoke <org.glassfish.hk.utilities.BuilderHelper: org.glassfish.hk.api.Filter allFilter()>();
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getDescriptors(org.glassfish.hk.api.Filter)>(v);
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
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 = 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.hk.utilities.BuilderHelper: boolean filterMatches(org.glassfish.hk.api.Descriptor,org.glassfish.hk.api.Filter)>(v, v);
if v == 0 goto label;
v = new org.glassfish.hk.api.DuplicateServiceException;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.String locatorName>;
specialinvoke v.<org.glassfish.hk.api.DuplicateServiceException: void <init>(org.glassfish.hk.api.Descriptor,java.lang.String)>(v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = new org.glassfish.hk.api.MultiException;
specialinvoke v.<org.glassfish.hk.api.MultiException: void <init>(java.util.List)>(v);
throw v;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.DynamicConfigurationImpl: java.util.LinkedList getResources()>();
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v = virtualinvoke v.<java.util.LinkedList: 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.TwoPhaseResource: void prepareDynamicConfiguration(org.glassfish.hk.api.TwoPhaseTransactionData)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
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:
interfaceinvoke v.<org.glassfish.hk.api.TwoPhaseResource: void rollbackDynamicConfiguration(org.glassfish.hk.api.TwoPhaseTransactionData)>(v);
label:
goto label;
label:
v := @caughtexception;
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.TwoPhaseResource)>(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[])>("Rollback of TwoPhaseResource \u failed with exception");
virtualinvoke v.<org.glassfish.hk.utilities.reflection.Logger: void debug(java.lang.String,java.lang.Throwable)>(v, v);
goto label;
label:
v = v instanceof java.lang.RuntimeException;
if v == 0 goto label;
throw v;
label:
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = new org.jvnet.hk.internal.ServiceLocatorImpl$CheckConfigurationData;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$CheckConfigurationData: void <init>(java.util.List,boolean,boolean,boolean,boolean,boolean,java.util.HashSet,boolean,org.glassfish.hk.api.TwoPhaseTransactionData)>(v, v, v, v, v, v, v, v, v);
return v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private static java.util.List getAllContracts(org.glassfish.hk.api.ActiveDescriptor)
{
org.glassfish.hk.api.ActiveDescriptor v;
java.util.Set v, v;
java.lang.Class v;
java.lang.String v, v;
java.util.LinkedList v;
v := @parameter: org.glassfish.hk.api.ActiveDescriptor;
v = new java.util.LinkedList;
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.util.Set getAdvertisedContracts()>();
specialinvoke v.<java.util.LinkedList: void <init>(java.util.Collection)>(v);
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.util.Set getQualifiers()>();
virtualinvoke v.<java.util.LinkedList: boolean addAll(java.util.Collection)>(v);
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.lang.String getScope()>();
if v != null goto label;
v = class "Lorg/glassfish/hk2/api/PerLookup;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
goto label;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.lang.String getScope()>();
label:
virtualinvoke v.<java.util.LinkedList: boolean add(java.lang.Object)>(v);
return v;
}
private void removeConfigurationInternal(java.util.List)
{
org.glassfish.hk.utilities.reflection.Logger v, v;
org.glassfish.hk.utilities.reflection.ClassReflectionHelper v;
org.jvnet.hk.internal.PerLocatorUtilities v;
boolean v, v, v, v, v, v, v, v, v, v, v, v;
java.util.Set v;
java.util.List v, v, v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Throwable v;
java.util.HashMap v, v, v, v;
java.lang.String v, v, v, v;
java.util.LinkedHashSet v;
java.util.Iterator v, v, v, v;
org.jvnet.hk.internal.IndexedListData v;
org.glassfish.hk.api.ServiceHandle v;
org.glassfish.hk.api.Injectee v;
org.glassfish.hk.utilities.cache.Cache v;
java.lang.Class v, v;
java.lang.Object v, v, v, v, v, v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
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 = <org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.String BIND_TRACING_PATTERN>;
if v == null goto label;
v = staticinvoke <org.jvnet.hk.internal.ServiceLocatorImpl: boolean doTrace(org.glassfish.hk.api.ActiveDescriptor)>(v);
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.jvnet.hk.internal.SystemDescriptor)>(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 Bind Tracing: Removing Descriptor \u0001");
virtualinvoke v.<org.glassfish.hk.utilities.reflection.Logger: void debug(java.lang.String)>(v);
v = <org.jvnet.hk.internal.ServiceLocatorImpl: boolean BIND_TRACING_STACKS>;
if v == 0 goto label;
v = staticinvoke <org.glassfish.hk.utilities.reflection.Logger: org.glassfish.hk.utilities.reflection.Logger getLogger()>();
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.String,java.lang.Throwable)>("ServiceLocatorImpl", "removeConfigurationInternal", v);
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.IndexedListData allDescriptors>;
virtualinvoke v.<org.jvnet.hk.internal.IndexedListData: void removeDescriptor(org.jvnet.hk.internal.SystemDescriptor)>(v);
v = staticinvoke <org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getAllContracts(org.glassfish.hk.api.ActiveDescriptor)>(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()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.HashMap descriptorsByAdvertisedContract>;
v = virtualinvoke v.<java.util.HashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
virtualinvoke v.<org.jvnet.hk.internal.IndexedListData: void removeDescriptor(org.jvnet.hk.internal.SystemDescriptor)>(v);
v = virtualinvoke v.<org.jvnet.hk.internal.IndexedListData: boolean isEmpty()>();
if v == 0 goto label;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.HashMap descriptorsByAdvertisedContract>;
virtualinvoke v.<java.util.HashMap: java.lang.Object remove(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.lang.String getName()>();
if v == null goto label;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.HashMap descriptorsByName>;
v = virtualinvoke v.<java.util.HashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
virtualinvoke v.<org.jvnet.hk.internal.IndexedListData: void removeDescriptor(org.jvnet.hk.internal.SystemDescriptor)>(v);
v = virtualinvoke v.<org.jvnet.hk.internal.IndexedListData: boolean isEmpty()>();
if v == 0 goto label;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.HashMap descriptorsByName>;
virtualinvoke v.<java.util.HashMap: java.lang.Object remove(java.lang.Object)>(v);
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = class "Lorg/glassfish/hk2/api/ValidationService;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ServiceHandle getServiceHandle(org.glassfish.hk.api.ActiveDescriptor)>(v);
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: java.lang.Object getService()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedHashSet allValidators>;
virtualinvoke v.<java.util.LinkedHashSet: boolean remove(java.lang.Object)>(v);
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: boolean isReified()>();
if v == 0 goto label;
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.List getInjectees()>();
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 = v instanceof org.jvnet.hk.internal.SystemInjecteeImpl;
if v == 0 goto label;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.Cache injecteeToResolverCache>;
virtualinvoke v.<org.glassfish.hk.utilities.cache.Cache: void remove(java.lang.Object)>(v);
goto label;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.reflection.ClassReflectionHelper classReflectionHelper>;
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.lang.Class getImplementationClass()>();
interfaceinvoke v.<org.glassfish.hk.utilities.reflection.ClassReflectionHelper: void clean(java.lang.Class)>(v);
goto label;
label:
v = 0;
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 = 1;
virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: boolean close()>();
goto label;
label:
if v == 0 goto label;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.PerLocatorUtilities perLocatorUtilities>;
virtualinvoke v.<org.jvnet.hk.internal.PerLocatorUtilities: void releaseCaches()>();
label:
return;
}
private static boolean doTrace(org.glassfish.hk.api.ActiveDescriptor)
{
org.glassfish.hk.api.ActiveDescriptor v;
java.util.StringTokenizer v;
java.lang.String v, v, v, v, v, v, v;
boolean v, v, v, v, v;
java.util.Iterator v;
java.util.Set v;
java.lang.Object v;
v := @parameter: org.glassfish.hk.api.ActiveDescriptor;
v = <org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.String BIND_TRACING_PATTERN>;
if v != null goto label;
return 0;
label:
v = "*";
v = <org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.String BIND_TRACING_PATTERN>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return 1;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.lang.String getImplementation()>();
if v != null goto label;
return 1;
label:
v = new java.util.StringTokenizer;
v = <org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.String BIND_TRACING_PATTERN>;
specialinvoke v.<java.util.StringTokenizer: void <init>(java.lang.String,java.lang.String)>(v, "|");
label:
v = virtualinvoke v.<java.util.StringTokenizer: boolean hasMoreTokens()>();
if v == 0 goto label;
v = virtualinvoke v.<java.util.StringTokenizer: java.lang.String nextToken()>();
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.lang.String getImplementation()>();
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>(v);
if v == 0 goto label;
return 1;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.util.Set getAdvertisedContracts()>();
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.<java.lang.String: boolean contains(java.lang.CharSequence)>(v);
if v == 0 goto label;
return 1;
label:
return 0;
}
private java.util.List addConfigurationInternal(org.jvnet.hk.internal.DynamicConfigurationImpl)
{
org.glassfish.hk.utilities.reflection.Logger v, v;
boolean v, v, v, v, v;
java.util.Set v;
java.util.List v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Throwable v;
java.util.HashMap v, v, v, v;
java.lang.String v, v, v, v, v;
java.util.LinkedList v, v;
java.util.LinkedHashSet v;
org.jvnet.hk.internal.DynamicConfigurationImpl v;
java.util.Iterator v, v;
org.jvnet.hk.internal.IndexedListData v, v, v;
org.glassfish.hk.api.ServiceHandle v;
java.lang.Class v;
java.lang.Object v, v, v, v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.jvnet.hk.internal.DynamicConfigurationImpl;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v = virtualinvoke v.<org.jvnet.hk.internal.DynamicConfigurationImpl: java.util.LinkedList getAllDescriptors()>();
v = virtualinvoke v.<java.util.LinkedList: 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 = <org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.String BIND_TRACING_PATTERN>;
if v == null goto label;
v = staticinvoke <org.jvnet.hk.internal.ServiceLocatorImpl: boolean doTrace(org.glassfish.hk.api.ActiveDescriptor)>(v);
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.jvnet.hk.internal.SystemDescriptor)>(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 Bind Tracing: Adding Descriptor \u0001");
virtualinvoke v.<org.glassfish.hk.utilities.reflection.Logger: void debug(java.lang.String)>(v);
v = <org.jvnet.hk.internal.ServiceLocatorImpl: boolean BIND_TRACING_STACKS>;
if v == 0 goto label;
v = staticinvoke <org.glassfish.hk.utilities.reflection.Logger: org.glassfish.hk.utilities.reflection.Logger getLogger()>();
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.String,java.lang.Throwable)>("ServiceLocatorImpl", "addConfigurationInternal", v);
label:
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.IndexedListData allDescriptors>;
virtualinvoke v.<org.jvnet.hk.internal.IndexedListData: void addDescriptor(org.jvnet.hk.internal.SystemDescriptor)>(v);
v = staticinvoke <org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List getAllContracts(org.glassfish.hk.api.ActiveDescriptor)>(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()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.HashMap descriptorsByAdvertisedContract>;
v = virtualinvoke v.<java.util.HashMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new org.jvnet.hk.internal.IndexedListData;
specialinvoke v.<org.jvnet.hk.internal.IndexedListData: void <init>()>();
v = v;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.HashMap descriptorsByAdvertisedContract>;
virtualinvoke v.<java.util.HashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
virtualinvoke v.<org.jvnet.hk.internal.IndexedListData: void addDescriptor(org.jvnet.hk.internal.SystemDescriptor)>(v);
goto label;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.lang.String getName()>();
if v == null goto label;
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.lang.String getName()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.HashMap descriptorsByName>;
v = virtualinvoke v.<java.util.HashMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new org.jvnet.hk.internal.IndexedListData;
specialinvoke v.<org.jvnet.hk.internal.IndexedListData: void <init>()>();
v = v;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.HashMap descriptorsByName>;
virtualinvoke v.<java.util.HashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
virtualinvoke v.<org.jvnet.hk.internal.IndexedListData: void addDescriptor(org.jvnet.hk.internal.SystemDescriptor)>(v);
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: java.util.Set getAdvertisedContracts()>();
v = class "Lorg/glassfish/hk2/api/ValidationService;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ServiceHandle getServiceHandle(org.glassfish.hk.api.ActiveDescriptor)>(v);
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: java.lang.Object getService()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedHashSet allValidators>;
virtualinvoke v.<java.util.LinkedHashSet: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
}
private void reupInjectionResolvers()
{
java.lang.Throwable v;
java.util.HashMap v;
java.lang.String v;
boolean v, v;
org.glassfish.hk.api.IndexedFilter v;
java.util.Iterator v;
java.util.concurrent.ConcurrentHashMap v, v, v;
org.glassfish.hk.api.ServiceHandle v;
org.glassfish.hk.utilities.cache.Cache v;
java.util.List v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Class v, v;
java.lang.Object v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = class "Lorg/glassfish/hk2/api/InjectionResolver;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = staticinvoke <org.glassfish.hk.utilities.BuilderHelper: org.glassfish.hk.api.IndexedFilter createContractFilter(java.lang.String)>(v);
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List protectedGetDescriptors(org.glassfish.hk.api.Filter)>(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()>();
v = staticinvoke <org.jvnet.hk.internal.Utilities: java.lang.Class getInjectionResolverType(org.glassfish.hk.api.ActiveDescriptor)>(v);
if v == null goto label;
v = virtualinvoke v.<java.util.HashMap: boolean containsKey(java.lang.Object)>(v);
if v != 0 goto label;
v = virtualinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ServiceHandle getServiceHandle(org.glassfish.hk.api.ActiveDescriptor)>(v);
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: java.lang.Object getService()>();
virtualinvoke v.<java.util.HashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.ConcurrentHashMap allResolvers>;
entermonitor v;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.ConcurrentHashMap allResolvers>;
virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: void clear()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.ConcurrentHashMap allResolvers>;
virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: void putAll(java.util.Map)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.Cache injecteeToResolverCache>;
virtualinvoke v.<org.glassfish.hk.utilities.cache.Cache: void clear()>();
return;
catch java.lang.Throwable from label to label with label;
}
private void reupInterceptionServices()
{
java.lang.'annotation'.Annotation[] v;
java.util.List v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.util.LinkedList v, v, v;
boolean v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = newarray (java.lang.'annotation'.Annotation)[0];
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List protectedGetAllServices(java.lang.reflect.Type,java.lang.'annotation'.Annotation[])>(class "Lorg/glassfish/hk2/api/InterceptionService;", v);
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedList interceptionServices>;
virtualinvoke v.<java.util.LinkedList: void clear()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedList interceptionServices>;
virtualinvoke v.<java.util.LinkedList: boolean addAll(java.util.Collection)>(v);
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedList interceptionServices>;
v = virtualinvoke v.<java.util.LinkedList: boolean isEmpty()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v.<org.jvnet.hk.internal.ServiceLocatorImpl: boolean hasInterceptionServices> = v;
return;
}
private void reupErrorHandlers()
{
java.util.List v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.'annotation'.Annotation[] v;
java.util.LinkedList v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = newarray (java.lang.'annotation'.Annotation)[0];
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List protectedGetAllServices(java.lang.reflect.Type,java.lang.'annotation'.Annotation[])>(class "Lorg/glassfish/hk2/api/ErrorService;", v);
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedList errorHandlers>;
virtualinvoke v.<java.util.LinkedList: void clear()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedList errorHandlers>;
virtualinvoke v.<java.util.LinkedList: boolean addAll(java.util.Collection)>(v);
return;
}
private void reupConfigListeners()
{
java.util.List v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.'annotation'.Annotation[] v;
java.util.LinkedList v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = newarray (java.lang.'annotation'.Annotation)[0];
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List protectedGetAllServiceHandles(java.lang.reflect.Type,java.lang.'annotation'.Annotation[])>(class "Lorg/glassfish/hk2/api/DynamicConfigurationListener;", v);
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedList configListeners>;
virtualinvoke v.<java.util.LinkedList: void clear()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedList configListeners>;
virtualinvoke v.<java.util.LinkedList: boolean addAll(java.util.Collection)>(v);
return;
}
private void reupInstanceListenersHandlers(java.util.Collection)
{
java.util.List v;
java.util.Iterator v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.util.Collection v;
java.lang.Object v;
java.lang.'annotation'.Annotation[] v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.util.Collection;
v = newarray (java.lang.'annotation'.Annotation)[0];
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List protectedGetAllServices(java.lang.reflect.Type,java.lang.'annotation'.Annotation[])>(class "Lorg/glassfish/hk2/api/InstanceLifecycleListener;", v);
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()>();
virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: void reupInstanceListeners(java.util.List)>(v);
goto label;
label:
return;
}
private void reupClassAnalyzers()
{
java.lang.Throwable v;
java.util.Iterator v;
java.util.HashMap v, v;
java.lang.'annotation'.Annotation[] v;
java.util.List v;
org.glassfish.hk.api.ActiveDescriptor v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Object v, v, v;
java.lang.String v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = newarray (java.lang.'annotation'.Annotation)[0];
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List protectedGetAllServiceHandles(java.lang.reflect.Type,java.lang.'annotation'.Annotation[])>(class "Lorg/glassfish/hk2/api/ClassAnalyzer;", v);
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Object classAnalyzerLock>;
entermonitor v;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.HashMap classAnalyzers>;
virtualinvoke v.<java.util.HashMap: void clear()>();
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 = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: org.glassfish.hk.api.ActiveDescriptor getActiveDescriptor()>();
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.lang.String getName()>();
if v == null goto label;
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: java.lang.Object getService()>();
if v == null goto label;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.HashMap classAnalyzers>;
virtualinvoke v.<java.util.HashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void reupCache(java.util.HashSet)
{
java.lang.Throwable v;
java.util.Iterator v;
org.jvnet.hk.internal.ServiceLocatorImpl$12 v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
java.util.HashSet v;
org.glassfish.hk.utilities.cache.WeakCARCache v, v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Object v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.util.HashSet;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void lock()>();
label:
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()>();
v = new org.jvnet.hk.internal.ServiceLocatorImpl$12;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$12: void <init>(org.jvnet.hk.internal.ServiceLocatorImpl,java.lang.String)>(v, v);
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.WeakCARCache igdCache>;
interfaceinvoke v.<org.glassfish.hk.utilities.cache.WeakCARCache: void releaseMatching(org.glassfish.hk.utilities.cache.CacheKeyFilter)>(v);
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.WeakCARCache igashCache>;
interfaceinvoke v.<org.glassfish.hk.utilities.cache.WeakCARCache: void releaseMatching(org.glassfish.hk.utilities.cache.CacheKeyFilter)>(v);
goto label;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void reup(java.util.List, boolean, boolean, boolean, boolean, boolean, java.util.HashSet, boolean)
{
java.util.Collection v;
org.jvnet.hk.internal.IndexedListData v;
java.util.HashSet v;
org.glassfish.hk.utilities.cache.Cache v;
java.util.List v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
boolean v, v, v, v, v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.util.List;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: java.util.HashSet;
v := @parameter: boolean;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void reupCache(java.util.HashSet)>(v);
if v == 0 goto label;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void reupInjectionResolvers()>();
label:
if v == 0 goto label;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void reupErrorHandlers()>();
label:
if v == 0 goto label;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void reupConfigListeners()>();
label:
if v == 0 goto label;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.IndexedListData allDescriptors>;
v = virtualinvoke v.<org.jvnet.hk.internal.IndexedListData: java.util.Collection getSortedList()>();
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void reupInstanceListenersHandlers(java.util.Collection)>(v);
goto label;
label:
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void reupInstanceListenersHandlers(java.util.Collection)>(v);
label:
if v == 0 goto label;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void reupClassAnalyzers()>();
label:
if v == 0 goto label;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void reupInterceptionServices()>();
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.Cache contextCache>;
virtualinvoke v.<org.glassfish.hk.utilities.cache.Cache: void clear()>();
return;
}
private void getAllChildren(java.util.LinkedList)
{
java.lang.Throwable v;
java.util.Iterator v;
java.util.Set v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.util.Map v, v;
java.lang.Object v;
java.util.LinkedList v, v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.util.LinkedList;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.Map children>;
entermonitor v;
label:
v = new java.util.LinkedList;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.Map children>;
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
specialinvoke v.<java.util.LinkedList: void <init>(java.util.Collection)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
virtualinvoke v.<java.util.LinkedList: boolean addAll(java.util.Collection)>(v);
v = virtualinvoke v.<java.util.LinkedList: 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()>();
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void getAllChildren(java.util.LinkedList)>(v);
goto label;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void callAllConfigurationListeners(java.util.List)
{
java.lang.Throwable v;
java.util.Iterator v;
long v, v;
java.util.List v;
org.glassfish.hk.api.ActiveDescriptor v;
byte v;
java.lang.Long v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Object v, v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.util.List;
if v != null goto label;
return;
label:
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 = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: org.glassfish.hk.api.ActiveDescriptor getActiveDescriptor()>();
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.lang.Long getLocatorId()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: long id>;
v = v cmp v;
if v != 0 goto label;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: java.lang.Object getService()>();
interfaceinvoke v.<org.glassfish.hk.api.DynamicConfigurationListener: void configurationChanged()>();
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
return;
catch java.lang.Throwable from label to label with label;
}
void addConfiguration(org.jvnet.hk.internal.DynamicConfigurationImpl)
{
org.glassfish.hk.utilities.reflection.Logger v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
boolean v, v, v, v, v, v, v, v;
java.util.List v, v;
org.glassfish.hk.api.MultiException v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Throwable v, v;
org.glassfish.hk.api.TwoPhaseTransactionData v;
java.util.HashSet v, v;
java.lang.String v;
java.util.LinkedList v, v, v, v, v, v;
org.jvnet.hk.internal.DynamicConfigurationImpl v;
org.jvnet.hk.internal.ServiceLocatorImpl$CheckConfigurationData v;
java.util.Iterator v, v;
java.lang.Object v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.jvnet.hk.internal.DynamicConfigurationImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void lock()>();
label:
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ServiceLocatorImpl$CheckConfigurationData checkConfiguration(org.jvnet.hk.internal.DynamicConfigurationImpl)>(v);
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$CheckConfigurationData: java.util.List getUnbinds()>();
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void removeConfigurationInternal(java.util.List)>(v);
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List addConfigurationInternal(org.jvnet.hk.internal.DynamicConfigurationImpl)>(v);
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$CheckConfigurationData: boolean getInstanceLifecycleModificationsMade()>();
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$CheckConfigurationData: boolean getInjectionResolverModificationMade()>();
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$CheckConfigurationData: boolean getErrorHandlerModificationMade()>();
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$CheckConfigurationData: boolean getClassAnalyzerModificationMade()>();
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$CheckConfigurationData: boolean getDynamicConfigurationListenerModificationMade()>();
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$CheckConfigurationData: java.util.HashSet getAffectedContracts()>();
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$CheckConfigurationData: boolean getInterceptionServiceModificationMade()>();
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void reup(java.util.List,boolean,boolean,boolean,boolean,boolean,java.util.HashSet,boolean)>(v, v, v, v, v, v, v, v);
v = new java.util.LinkedList;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedList configListeners>;
specialinvoke v.<java.util.LinkedList: void <init>(java.util.Collection)>(v);
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
throw v;
label:
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void getAllChildren(java.util.LinkedList)>(v);
v = virtualinvoke v.<java.util.LinkedList: 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 = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$CheckConfigurationData: java.util.HashSet getAffectedContracts()>();
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void reupCache(java.util.HashSet)>(v);
goto label;
label:
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: void callAllConfigurationListeners(java.util.List)>(v);
v = virtualinvoke v.<org.jvnet.hk.internal.DynamicConfigurationImpl: java.util.LinkedList getResources()>();
v = virtualinvoke v.<java.util.LinkedList: 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 = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$CheckConfigurationData: org.glassfish.hk.api.TwoPhaseTransactionData getTransactionData()>();
interfaceinvoke v.<org.glassfish.hk.api.TwoPhaseResource: void activateDynamicConfiguration(org.glassfish.hk.api.TwoPhaseTransactionData)>(v);
label:
goto label;
label:
v := @caughtexception;
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.TwoPhaseResource)>(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[])>("Activate of TwoPhaseResource \u failed with exception");
virtualinvoke v.<org.glassfish.hk.utilities.reflection.Logger: void debug(java.lang.String,java.lang.Throwable)>(v, v);
goto label;
label:
return;
catch org.glassfish.hk.api.MultiException 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;
}
boolean isInjectAnnotation(java.lang.'annotation'.Annotation)
{
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.'annotation'.Annotation v;
java.util.concurrent.ConcurrentHashMap v;
java.lang.Class v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.'annotation'.Annotation;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.ConcurrentHashMap allResolvers>;
v = interfaceinvoke v.<java.lang.'annotation'.Annotation: java.lang.Class annotationType()>();
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: boolean containsKey(java.lang.Object)>(v);
return v;
}
boolean isInjectAnnotation(java.lang.'annotation'.Annotation, boolean)
{
java.util.concurrent.ConcurrentHashMap v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.'annotation'.Annotation v;
java.lang.Class v;
java.lang.Object v;
boolean v, v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.'annotation'.Annotation;
v := @parameter: boolean;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.ConcurrentHashMap allResolvers>;
v = interfaceinvoke v.<java.lang.'annotation'.Annotation: java.lang.Class annotationType()>();
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
return 0;
label:
if v == 0 goto label;
v = interfaceinvoke v.<org.glassfish.hk.api.InjectionResolver: boolean isConstructorParameterIndicator()>();
return v;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.InjectionResolver: boolean isMethodParameterIndicator()>();
return v;
}
org.glassfish.hk.api.InjectionResolver getInjectionResolver(java.lang.Class)
{
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.util.concurrent.ConcurrentHashMap v;
java.lang.Class v;
java.lang.Object v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Class;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.ConcurrentHashMap allResolvers>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
return v;
}
private org.glassfish.hk.api.Context _resolveContext(java.lang.Class) throws java.lang.IllegalStateException
{
java.lang.IllegalStateException v, v;
java.lang.'annotation'.Annotation[] v;
java.lang.String v, v, v, v;
boolean v, v;
java.util.Iterator v;
org.glassfish.hk.utilities.reflection.ParameterizedTypeImpl v;
java.util.List v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.reflect.Type[] v;
java.lang.Class v;
java.lang.Object v, v, v;
org.glassfish.hk.api.Context v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Class;
v = null;
v = newarray (java.lang.reflect.Type)[1];
v[0] = v;
v = new org.glassfish.hk.utilities.reflection.ParameterizedTypeImpl;
specialinvoke v.<org.glassfish.hk.utilities.reflection.ParameterizedTypeImpl: void <init>(java.lang.reflect.Type,java.lang.reflect.Type[])>(class "Lorg/glassfish/hk2/api/Context;", v);
v = newarray (java.lang.'annotation'.Annotation)[0];
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.List protectedGetAllServiceHandles(java.lang.reflect.Type,java.lang.'annotation'.Annotation[])>(v, v);
v = staticinvoke <org.glassfish.hk.utilities.reflection.ReflectionHelper: java.lang.Object cast(java.lang.Object)>(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()>();
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: java.lang.Object getService()>();
v = interfaceinvoke v.<org.glassfish.hk.api.Context: boolean isActive()>();
if v == 0 goto label;
if v == null goto label;
v = new java.lang.IllegalStateException;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
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[])>("There is more than one active context for \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v;
goto label;
label:
if v != null goto label;
v = new java.lang.IllegalStateException;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
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 find an active context for \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
}
org.glassfish.hk.api.Context resolveContext(java.lang.Class) throws java.lang.IllegalStateException
{
org.glassfish.hk.utilities.cache.Cache v, v, v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Class v;
java.lang.Object v, v;
boolean v, v, v;
org.glassfish.hk.api.Context v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.Class;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(class "Ljakarta/inject/Singleton;");
if v == 0 goto label;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.Context singletonContext>;
return v;
label:
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(class "Lorg/glassfish/hk2/api/PerLookup;");
if v == 0 goto label;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.Context perLookupContext>;
return v;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.Cache contextCache>;
v = virtualinvoke v.<org.glassfish.hk.utilities.cache.Cache: java.lang.Object compute(java.lang.Object)>(v);
v = interfaceinvoke v.<org.glassfish.hk.api.Context: boolean isActive()>();
if v == 0 goto label;
return v;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.Cache contextCache>;
virtualinvoke v.<org.glassfish.hk.utilities.cache.Cache: void remove(java.lang.Object)>(v);
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.Cache contextCache>;
v = virtualinvoke v.<org.glassfish.hk.utilities.cache.Cache: java.lang.Object compute(java.lang.Object)>(v);
return v;
}
private java.lang.Class loadClass(org.glassfish.hk.api.Descriptor, org.glassfish.hk.api.Injectee)
{
java.lang.Throwable v;
java.lang.IllegalStateException v, v;
org.glassfish.hk.api.HK2Loader v;
java.lang.String v, v, v, v;
org.glassfish.hk.api.Descriptor v;
java.lang.IllegalArgumentException v;
org.glassfish.hk.api.Injectee v;
org.glassfish.hk.api.MultiException v, v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Class v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.Descriptor;
v := @parameter: org.glassfish.hk.api.Injectee;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>()>();
throw v;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.Descriptor: org.glassfish.hk.api.HK2Loader getLoader()>();
if v != null goto label;
v = interfaceinvoke v.<org.glassfish.hk.api.Descriptor: java.lang.String getImplementation()>();
v = staticinvoke <org.jvnet.hk.internal.Utilities: java.lang.Class loadClass(java.lang.String,org.glassfish.hk.api.Injectee)>(v, v);
return v;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.Descriptor: java.lang.String getImplementation()>();
v = interfaceinvoke v.<org.glassfish.hk.api.HK2Loader: java.lang.Class loadClass(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.hk.api.Descriptor)>(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 load descriptor \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
virtualinvoke v.<org.glassfish.hk.api.MultiException: void addError(java.lang.Throwable)>(v);
throw v;
label:
v := @caughtexception;
v = new org.glassfish.hk.api.MultiException;
specialinvoke v.<org.glassfish.hk.api.MultiException: void <init>(java.lang.Throwable)>(v);
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.hk.api.Descriptor)>(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 load descriptor \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
virtualinvoke v.<org.glassfish.hk.api.MultiException: void addError(java.lang.Throwable)>(v);
throw v;
label:
return v;
catch org.glassfish.hk.api.MultiException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private transient org.jvnet.hk.internal.ImmediateResults narrow(org.glassfish.hk.api.ServiceLocator, java.util.List, java.lang.reflect.Type, java.lang.String, org.glassfish.hk.api.Injectee, boolean, boolean, org.jvnet.hk.internal.NarrowResults, org.glassfish.hk.api.Filter, java.lang.'annotation'.Annotation[])
{
org.glassfish.hk.api.Filter v;
org.glassfish.hk.api.ActiveDescriptor v, v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.jvnet.hk.internal.ImmediateResults v;
java.util.Set v, v, v;
org.jvnet.hk.internal.NarrowResults v, v;
java.util.List v, v;
org.glassfish.hk.api.MultiException v, v;
java.lang.reflect.Type v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.ServiceLocator v;
java.lang.Throwable v;
java.lang.'annotation'.Annotation[] v;
java.lang.String v;
java.util.Iterator v, v;
org.glassfish.hk.api.Injectee v;
java.lang.Object v, v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.ServiceLocator;
v := @parameter: java.util.List;
v := @parameter: java.lang.reflect.Type;
v := @parameter: java.lang.String;
v := @parameter: org.glassfish.hk.api.Injectee;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: org.jvnet.hk.internal.NarrowResults;
v := @parameter: org.glassfish.hk.api.Filter;
v := @parameter: java.lang.'annotation'.Annotation[];
v = new org.jvnet.hk.internal.ImmediateResults;
specialinvoke v.<org.jvnet.hk.internal.ImmediateResults: void <init>(org.jvnet.hk.internal.NarrowResults)>(v);
v = virtualinvoke v.<org.jvnet.hk.internal.ImmediateResults: org.jvnet.hk.internal.NarrowResults getTimelessResults()>();
if v == null goto label;
v = staticinvoke <org.glassfish.hk.utilities.reflection.ReflectionHelper: java.lang.Object cast(java.lang.Object)>(v);
virtualinvoke v.<org.jvnet.hk.internal.NarrowResults: void setUnnarrowedResults(java.util.List)>(v);
label:
v = staticinvoke <org.jvnet.hk.internal.Utilities: java.util.Set fixAndCheckQualifiers(java.lang.'annotation'.Annotation[],java.lang.String)>(v, v);
v = virtualinvoke v.<org.jvnet.hk.internal.NarrowResults: java.util.List getResults()>();
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()>();
if v == 0 goto label;
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: boolean validate(org.jvnet.hk.internal.SystemDescriptor,org.glassfish.hk.api.Injectee,org.glassfish.hk.api.Filter)>(v, v, v);
if v == 0 goto label;
label:
virtualinvoke v.<org.jvnet.hk.internal.ImmediateResults: void addValidatedResult(org.glassfish.hk.api.ActiveDescriptor)>(v);
if v == 0 goto label;
return v;
label:
if v == null goto label;
v = v instanceof java.lang.Class;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Class: boolean isAnnotation()>();
if v == 0 goto label;
v = null;
label:
v = virtualinvoke v.<org.jvnet.hk.internal.NarrowResults: org.glassfish.hk.api.ActiveDescriptor removeUnnarrowedResult()>();
v = v;
if v == null goto label;
v = 0;
if v != null goto label;
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v != 0 goto label;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: boolean isReified()>();
if v != 0 goto label;
v = 1;
label:
if v == 0 goto label;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceLocator: org.glassfish.hk.api.ActiveDescriptor reifyDescriptor(org.glassfish.hk.api.Descriptor,org.glassfish.hk.api.Injectee)>(v, v);
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.jvnet.hk.internal.NarrowResults: void addError(org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.Injectee,org.glassfish.hk.api.MultiException)>(v, v, v);
goto label;
label:
v := @caughtexception;
v = new org.glassfish.hk.api.MultiException;
specialinvoke v.<org.glassfish.hk.api.MultiException: void <init>(java.lang.Throwable)>(v);
virtualinvoke v.<org.jvnet.hk.internal.NarrowResults: void addError(org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.Injectee,org.glassfish.hk.api.MultiException)>(v, v, v);
goto label;
label:
if v == null goto label;
v = 0;
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.util.Set getContractTypes()>();
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 = staticinvoke <org.jvnet.hk.internal.Utilities: boolean isTypeSafe(java.lang.reflect.Type,java.lang.reflect.Type)>(v, v);
if v == 0 goto label;
v = 1;
label:
if v == 0 goto label;
label:
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.util.Set getQualifierAnnotations()>();
v = staticinvoke <org.glassfish.hk.utilities.reflection.ReflectionHelper: boolean annotationContainsAll(java.util.Set,java.util.Set)>(v, v);
if v == 0 goto label;
label:
virtualinvoke v.<org.jvnet.hk.internal.NarrowResults: void addGoodResult(org.glassfish.hk.api.ActiveDescriptor)>(v);
if v == 0 goto label;
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: boolean validate(org.jvnet.hk.internal.SystemDescriptor,org.glassfish.hk.api.Injectee,org.glassfish.hk.api.Filter)>(v, v, v);
if v == 0 goto label;
label:
virtualinvoke v.<org.jvnet.hk.internal.ImmediateResults: void addValidatedResult(org.glassfish.hk.api.ActiveDescriptor)>(v);
if v == 0 goto label;
return v;
label:
return v;
catch org.glassfish.hk.api.MultiException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public long getLocatorId()
{
long v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: long id>;
return v;
}
long getNextServiceId()
{
java.util.concurrent.atomic.AtomicLong v;
long v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.atomic.AtomicLong nextServiceId>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long getAndIncrement()>();
return v;
}
private void addChild(org.jvnet.hk.internal.ServiceLocatorImpl)
{
java.lang.Throwable v;
org.jvnet.hk.internal.ServiceLocatorImpl v, v;
java.util.Map v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.Map children>;
entermonitor v;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.Map children>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, null);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void removeChild(org.jvnet.hk.internal.ServiceLocatorImpl)
{
java.lang.Throwable v;
org.jvnet.hk.internal.ServiceLocatorImpl v, v;
java.util.Map v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.Map children>;
entermonitor v;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.Map children>;
interfaceinvoke v.<java.util.Map: java.lang.Object 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;
}
private void checkState()
{
java.lang.IllegalStateException v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.ServiceLocatorState v, v;
java.lang.String v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = <org.glassfish.hk.api.ServiceLocatorState: org.glassfish.hk.api.ServiceLocatorState SHUTDOWN>;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.ServiceLocatorState state>;
v = virtualinvoke v.<org.glassfish.hk.api.ServiceLocatorState: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.jvnet.hk.internal.ServiceLocatorImpl)>(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 has been shut down");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
private java.util.LinkedHashSet getAllValidators()
{
org.jvnet.hk.internal.ServiceLocatorImpl v, v, v;
java.util.LinkedHashSet v, v, v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ServiceLocatorImpl parent>;
if v != null goto label;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedHashSet allValidators>;
return v;
label:
v = new java.util.LinkedHashSet;
specialinvoke v.<java.util.LinkedHashSet: void <init>()>();
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ServiceLocatorImpl parent>;
v = specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedHashSet getAllValidators()>();
virtualinvoke v.<java.util.LinkedHashSet: boolean addAll(java.util.Collection)>(v);
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedHashSet allValidators>;
virtualinvoke v.<java.util.LinkedHashSet: boolean addAll(java.util.Collection)>(v);
return v;
}
public java.lang.String getDefaultClassAnalyzerName()
{
java.lang.Throwable v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Object v;
java.lang.String v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Object classAnalyzerLock>;
entermonitor v;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.String defaultClassAnalyzer>;
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public void setDefaultClassAnalyzerName(java.lang.String)
{
java.lang.Throwable v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Object v;
java.lang.String v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.String;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Object classAnalyzerLock>;
entermonitor v;
label:
if v != null goto label;
v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.String defaultClassAnalyzer> = "default";
goto label;
label:
v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.String defaultClassAnalyzer> = v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public org.glassfish.hk.api.Unqualified getDefaultUnqualified()
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Unqualified v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.Unqualified defaultUnqualified>;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public void setDefaultUnqualified(org.glassfish.hk.api.Unqualified)
{
java.lang.Throwable v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.api.Unqualified v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.glassfish.hk.api.Unqualified;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void lock()>();
label:
v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.api.Unqualified defaultUnqualified> = v;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
org.glassfish.hk.api.ClassAnalyzer getAnalyzer(java.lang.String, org.jvnet.hk.internal.Collector)
{
java.lang.Throwable v;
java.lang.IllegalStateException v;
java.util.HashMap v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Object v, v;
java.lang.String v, v;
org.jvnet.hk.internal.Collector v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.String;
v := @parameter: org.jvnet.hk.internal.Collector;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Object classAnalyzerLock>;
entermonitor v;
label:
if v != null goto label;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.String defaultClassAnalyzer>;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.HashMap classAnalyzers>;
v = virtualinvoke v.<java.util.HashMap: java.lang.Object get(java.lang.Object)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v != null goto 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[])>("Could not find an implementation of ClassAnalyzer with name \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
virtualinvoke v.<org.jvnet.hk.internal.Collector: void addThrowable(java.lang.Throwable)>(v);
return null;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
public org.glassfish.hk.api.ServiceLocator getParent()
{
org.jvnet.hk.internal.ServiceLocatorImpl v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ServiceLocatorImpl parent>;
return v;
}
public boolean getNeutralContextClassLoader()
{
org.jvnet.hk.internal.ServiceLocatorImpl v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: boolean neutralContextClassLoader>;
return v;
}
public void setNeutralContextClassLoader(boolean)
{
java.lang.Throwable v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: boolean;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void lock()>();
label:
v.<org.jvnet.hk.internal.ServiceLocatorImpl: boolean neutralContextClassLoader> = v;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private org.jvnet.hk.internal.ServiceLocatorImpl getMe()
{
org.jvnet.hk.internal.ServiceLocatorImpl v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
return v;
}
boolean hasInjectAnnotation(java.lang.reflect.AnnotatedElement)
{
org.jvnet.hk.internal.PerLocatorUtilities v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
boolean v;
java.lang.reflect.AnnotatedElement v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: java.lang.reflect.AnnotatedElement;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.PerLocatorUtilities perLocatorUtilities>;
v = virtualinvoke v.<org.jvnet.hk.internal.PerLocatorUtilities: boolean hasInjectAnnotation(java.lang.reflect.AnnotatedElement)>(v);
return v;
}
org.glassfish.hk.api.InjectionResolver getInjectionResolverForInjectee(org.jvnet.hk.internal.SystemInjecteeImpl)
{
org.glassfish.hk.utilities.cache.Cache v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.lang.Object v;
org.jvnet.hk.internal.SystemInjecteeImpl v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: org.jvnet.hk.internal.SystemInjecteeImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.Cache injecteeToResolverCache>;
v = virtualinvoke v.<org.glassfish.hk.utilities.cache.Cache: java.lang.Object compute(java.lang.Object)>(v);
return v;
}
org.glassfish.hk.utilities.reflection.ClassReflectionHelper getClassReflectionHelper()
{
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.utilities.reflection.ClassReflectionHelper v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.reflection.ClassReflectionHelper classReflectionHelper>;
return v;
}
java.util.LinkedList getErrorHandlers()
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.util.LinkedList v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = new java.util.LinkedList;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.LinkedList errorHandlers>;
specialinvoke v.<java.util.LinkedList: void <init>(java.util.Collection)>(v);
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
org.jvnet.hk.internal.PerLocatorUtilities getPerLocatorUtilities()
{
org.jvnet.hk.internal.PerLocatorUtilities v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.PerLocatorUtilities perLocatorUtilities>;
return v;
}
int getNumberOfDescriptors()
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
int v;
org.jvnet.hk.internal.IndexedListData v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.IndexedListData allDescriptors>;
v = virtualinvoke v.<org.jvnet.hk.internal.IndexedListData: int size()>();
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock rLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
int getNumberOfChildren()
{
int v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.util.Map v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.Map children>;
v = interfaceinvoke v.<java.util.Map: int size()>();
return v;
}
int getServiceCacheSize()
{
int v;
org.glassfish.hk.utilities.cache.WeakCARCache v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.WeakCARCache igdCache>;
v = interfaceinvoke v.<org.glassfish.hk.utilities.cache.WeakCARCache: int getValueSize()>();
return v;
}
int getServiceCacheMaximumSize()
{
int v;
org.glassfish.hk.utilities.cache.WeakCARCache v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.WeakCARCache igdCache>;
v = interfaceinvoke v.<org.glassfish.hk.utilities.cache.WeakCARCache: int getMaxSize()>();
return v;
}
void clearServiceCache()
{
org.glassfish.hk.utilities.cache.WeakCARCache v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.cache.WeakCARCache igdCache>;
interfaceinvoke v.<org.glassfish.hk.utilities.cache.WeakCARCache: void clear()>();
return;
}
int getReflectionCacheSize()
{
int v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
org.glassfish.hk.utilities.reflection.ClassReflectionHelper v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.reflection.ClassReflectionHelper classReflectionHelper>;
v = interfaceinvoke v.<org.glassfish.hk.utilities.reflection.ClassReflectionHelper: int size()>();
return v;
}
void clearReflectionCache()
{
java.lang.Throwable v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
org.glassfish.hk.utilities.reflection.ClassReflectionHelper v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void lock()>();
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: org.glassfish.hk.utilities.reflection.ClassReflectionHelper classReflectionHelper>;
interfaceinvoke v.<org.glassfish.hk.utilities.reflection.ClassReflectionHelper: void dispose()>();
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
int unsortIndexes(int, org.jvnet.hk.internal.SystemDescriptor, java.util.Set)
{
java.lang.Throwable v;
java.util.Iterator v;
java.util.Set v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
org.jvnet.hk.internal.SystemDescriptor v;
org.jvnet.hk.internal.ServiceLocatorImpl v;
int v, v;
java.lang.Object v;
boolean v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v := @parameter: int;
v := @parameter: org.jvnet.hk.internal.SystemDescriptor;
v := @parameter: java.util.Set;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void lock()>();
label:
v = virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: int setRankWithLock(int)>(v);
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()>();
virtualinvoke v.<org.jvnet.hk.internal.IndexedListData: void unSort()>();
goto label;
label:
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock wLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public java.lang.String toString()
{
org.jvnet.hk.internal.ServiceLocatorImpl v;
int v;
long v;
java.lang.String v, v;
v := @this: org.jvnet.hk.internal.ServiceLocatorImpl;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.String locatorName>;
v = v.<org.jvnet.hk.internal.ServiceLocatorImpl: long id>;
v = staticinvoke <java.lang.System: int identityHashCode(java.lang.Object)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,long,int)>(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[])>("ServiceLocatorImpl(\u,\u,\u)");
return v;
}
static void <clinit>()
{
org.jvnet.hk.internal.ServiceLocatorImpl$1 v;
org.jvnet.hk.internal.ServiceLocatorImpl$2 v;
org.jvnet.hk.internal.DescriptorComparator v;
org.jvnet.hk.internal.ServiceHandleComparator v;
java.lang.Object v, v, v;
boolean v;
v = new org.jvnet.hk.internal.ServiceLocatorImpl$1;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$1: void <init>()>();
v = staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedAction)>(v);
<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.String BIND_TRACING_PATTERN> = v;
v = new org.jvnet.hk.internal.ServiceLocatorImpl$2;
specialinvoke v.<org.jvnet.hk.internal.ServiceLocatorImpl$2: void <init>()>();
v = staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedAction)>(v);
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
<org.jvnet.hk.internal.ServiceLocatorImpl: boolean BIND_TRACING_STACKS> = v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
<org.jvnet.hk.internal.ServiceLocatorImpl: java.lang.Object sLock> = v;
<org.jvnet.hk.internal.ServiceLocatorImpl: long currentLocatorId> = 0L;
v = new org.jvnet.hk.internal.DescriptorComparator;
specialinvoke v.<org.jvnet.hk.internal.DescriptorComparator: void <init>()>();
<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.DescriptorComparator DESCRIPTOR_COMPARATOR> = v;
v = new org.jvnet.hk.internal.ServiceHandleComparator;
specialinvoke v.<org.jvnet.hk.internal.ServiceHandleComparator: void <init>()>();
<org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.ServiceHandleComparator HANDLE_COMPARATOR> = v;
return;
}
}