public class com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableHolder<T>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableHolder
super_class: java.lang.Object
{
static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static java.util.concurrent.ConcurrentHashMap<com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableHolder$RVCacheKey, com.netflix.hystrix.strategy.concurrency.HystrixRequestVariable<?>> requestVariableInstance;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/concurrent/ConcurrentHashMap<Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariableHolder$RVCacheKey;Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariable<*>;>;
private final com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableLifecycle<T> lifeCycleMethods;
descriptor: Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariableLifecycle;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariableLifecycle<TT;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariableHolder;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableHolder.logger:Lorg/slf4j/Logger;
1: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putstatic com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableHolder.requestVariableInstance:Ljava/util/concurrent/ConcurrentHashMap;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableLifecycle<T>);
descriptor: (Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariableLifecycle;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableHolder.lifeCycleMethods:Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariableLifecycle;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariableHolder<TT;>;
0 3 1 lifeCycleMethods Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariableLifecycle<TT;>;
Signature: (Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariableLifecycle<TT;>;)V
MethodParameters:
Name Flags
lifeCycleMethods
public T get(com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy);
descriptor: (Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: new com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableHolder$RVCacheKey
dup
aload 0
aload 1
invokespecial com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableHolder$RVCacheKey.<init>:(Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariableHolder;Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;)V
astore 2
start local 2 1: getstatic com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableHolder.requestVariableInstance:Ljava/util/concurrent/ConcurrentHashMap;
aload 2
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.netflix.hystrix.strategy.concurrency.HystrixRequestVariable
astore 3
start local 3 2: aload 3
ifnonnull 6
3: getstatic com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableHolder.requestVariableInstance:Ljava/util/concurrent/ConcurrentHashMap;
aload 2
aload 1
aload 0
getfield com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableHolder.lifeCycleMethods:Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariableLifecycle;
invokevirtual com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy.getRequestVariable:(Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariableLifecycle;)Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariable;
invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: getstatic com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableHolder.requestVariableInstance:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.size:()I
bipush 100
if_icmple 6
5: getstatic com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableHolder.logger:Lorg/slf4j/Logger;
ldc "Over 100 instances of HystrixRequestVariable are being stored. This is likely the sign of a memory leak caused by using unique instances of HystrixConcurrencyStrategy instead of a single instance."
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
6: StackMap locals: com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableHolder$RVCacheKey com.netflix.hystrix.strategy.concurrency.HystrixRequestVariable
StackMap stack:
getstatic com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableHolder.requestVariableInstance:Ljava/util/concurrent/ConcurrentHashMap;
aload 2
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.netflix.hystrix.strategy.concurrency.HystrixRequestVariable
invokeinterface com.netflix.hystrix.strategy.concurrency.HystrixRequestVariable.get:()Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariableHolder<TT;>;
0 7 1 concurrencyStrategy Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
1 7 2 key Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariableHolder$RVCacheKey;
2 7 3 rvInstance Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariable<*>;
Signature: (Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;)TT;
MethodParameters:
Name Flags
concurrencyStrategy
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "HystrixRequestVariableHolder.java"
NestMembers:
com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableHolder$RVCacheKey
InnerClasses:
private RVCacheKey = com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableHolder$RVCacheKey of com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableHolder