public abstract class com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy
super_class: java.lang.Object
{
private static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy.logger:Lorg/slf4j/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
public java.util.concurrent.ThreadPoolExecutor getThreadPool(com.netflix.hystrix.HystrixThreadPoolKey, com.netflix.hystrix.strategy.properties.HystrixProperty<java.lang.Integer>, com.netflix.hystrix.strategy.properties.HystrixProperty<java.lang.Integer>, com.netflix.hystrix.strategy.properties.HystrixProperty<java.lang.Integer>, java.util.concurrent.TimeUnit, java.util.concurrent.BlockingQueue<java.lang.Runnable>);
descriptor: (Lcom/netflix/hystrix/HystrixThreadPoolKey;Lcom/netflix/hystrix/strategy/properties/HystrixProperty;Lcom/netflix/hystrix/strategy/properties/HystrixProperty;Lcom/netflix/hystrix/strategy/properties/HystrixProperty;Ljava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;)Ljava/util/concurrent/ThreadPoolExecutor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=10, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 1
invokestatic com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy.getThreadFactory:(Lcom/netflix/hystrix/HystrixThreadPoolKey;)Ljava/util/concurrent/ThreadFactory;
astore 7
start local 7 1: aload 2
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 8
start local 8 2: aload 3
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 9
start local 9 3: iload 8
iload 9
if_icmple 9
4: getstatic com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy.logger:Lorg/slf4j/Logger;
new java.lang.StringBuilder
dup
ldc "Hystrix ThreadPool configuration at startup for : "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface com.netflix.hystrix.HystrixThreadPoolKey.name:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " is trying to set coreSize = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: iload 8
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " and maximumSize = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 9
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ". Maximum size will be set to "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: iload 8
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", the coreSize value, since it must be equal to or greater than the coreSize value"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;)V
8: new java.util.concurrent.ThreadPoolExecutor
dup
iload 8
iload 8
aload 4
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
i2l
aload 5
aload 6
aload 7
invokespecial java.util.concurrent.ThreadPoolExecutor.<init>:(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
areturn
9: StackMap locals: java.util.concurrent.ThreadFactory int int
StackMap stack:
new java.util.concurrent.ThreadPoolExecutor
dup
iload 8
iload 9
aload 4
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
i2l
aload 5
aload 6
aload 7
invokespecial java.util.concurrent.ThreadPoolExecutor.<init>:(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
areturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
0 10 1 threadPoolKey Lcom/netflix/hystrix/HystrixThreadPoolKey;
0 10 2 corePoolSize Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Integer;>;
0 10 3 maximumPoolSize Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Integer;>;
0 10 4 keepAliveTime Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Integer;>;
0 10 5 unit Ljava/util/concurrent/TimeUnit;
0 10 6 workQueue Ljava/util/concurrent/BlockingQueue<Ljava/lang/Runnable;>;
1 10 7 threadFactory Ljava/util/concurrent/ThreadFactory;
2 10 8 dynamicCoreSize I
3 10 9 dynamicMaximumSize I
Signature: (Lcom/netflix/hystrix/HystrixThreadPoolKey;Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Integer;>;Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Integer;>;Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Integer;>;Ljava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue<Ljava/lang/Runnable;>;)Ljava/util/concurrent/ThreadPoolExecutor;
MethodParameters:
Name Flags
threadPoolKey final
corePoolSize
maximumPoolSize
keepAliveTime
unit
workQueue
public java.util.concurrent.ThreadPoolExecutor getThreadPool(com.netflix.hystrix.HystrixThreadPoolKey, com.netflix.hystrix.HystrixThreadPoolProperties);
descriptor: (Lcom/netflix/hystrix/HystrixThreadPoolKey;Lcom/netflix/hystrix/HystrixThreadPoolProperties;)Ljava/util/concurrent/ThreadPoolExecutor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy.getThreadFactory:(Lcom/netflix/hystrix/HystrixThreadPoolKey;)Ljava/util/concurrent/ThreadFactory;
astore 3
start local 3 1: aload 2
invokevirtual com.netflix.hystrix.HystrixThreadPoolProperties.getAllowMaximumSizeToDivergeFromCoreSize:()Lcom/netflix/hystrix/strategy/properties/HystrixProperty;
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
istore 4
start local 4 2: aload 2
invokevirtual com.netflix.hystrix.HystrixThreadPoolProperties.coreSize:()Lcom/netflix/hystrix/strategy/properties/HystrixProperty;
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 5
start local 5 3: aload 2
invokevirtual com.netflix.hystrix.HystrixThreadPoolProperties.keepAliveTimeMinutes:()Lcom/netflix/hystrix/strategy/properties/HystrixProperty;
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 6
start local 6 4: aload 2
invokevirtual com.netflix.hystrix.HystrixThreadPoolProperties.maxQueueSize:()Lcom/netflix/hystrix/strategy/properties/HystrixProperty;
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 7
start local 7 5: aload 0
iload 7
invokevirtual com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy.getBlockingQueue:(I)Ljava/util/concurrent/BlockingQueue;
astore 8
start local 8 6: iload 4
ifeq 15
7: aload 2
invokevirtual com.netflix.hystrix.HystrixThreadPoolProperties.maximumSize:()Lcom/netflix/hystrix/strategy/properties/HystrixProperty;
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 9
start local 9 8: iload 5
iload 9
if_icmple 14
9: getstatic com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy.logger:Lorg/slf4j/Logger;
new java.lang.StringBuilder
dup
ldc "Hystrix ThreadPool configuration at startup for : "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface com.netflix.hystrix.HystrixThreadPoolKey.name:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " is trying to set coreSize = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " and maximumSize = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 9
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ". Maximum size will be set to "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", the coreSize value, since it must be equal to or greater than the coreSize value"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;)V
13: new java.util.concurrent.ThreadPoolExecutor
dup
iload 5
iload 5
iload 6
i2l
getstatic java.util.concurrent.TimeUnit.MINUTES:Ljava/util/concurrent/TimeUnit;
aload 8
aload 3
invokespecial java.util.concurrent.ThreadPoolExecutor.<init>:(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
areturn
14: StackMap locals: com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy com.netflix.hystrix.HystrixThreadPoolKey com.netflix.hystrix.HystrixThreadPoolProperties java.util.concurrent.ThreadFactory int int int int java.util.concurrent.BlockingQueue int
StackMap stack:
new java.util.concurrent.ThreadPoolExecutor
dup
iload 5
iload 9
iload 6
i2l
getstatic java.util.concurrent.TimeUnit.MINUTES:Ljava/util/concurrent/TimeUnit;
aload 8
aload 3
invokespecial java.util.concurrent.ThreadPoolExecutor.<init>:(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
areturn
end local 9 15: StackMap locals:
StackMap stack:
new java.util.concurrent.ThreadPoolExecutor
dup
iload 5
iload 5
iload 6
i2l
getstatic java.util.concurrent.TimeUnit.MINUTES:Ljava/util/concurrent/TimeUnit;
aload 8
aload 3
invokespecial java.util.concurrent.ThreadPoolExecutor.<init>:(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
0 16 1 threadPoolKey Lcom/netflix/hystrix/HystrixThreadPoolKey;
0 16 2 threadPoolProperties Lcom/netflix/hystrix/HystrixThreadPoolProperties;
1 16 3 threadFactory Ljava/util/concurrent/ThreadFactory;
2 16 4 allowMaximumSizeToDivergeFromCoreSize Z
3 16 5 dynamicCoreSize I
4 16 6 keepAliveTime I
5 16 7 maxQueueSize I
6 16 8 workQueue Ljava/util/concurrent/BlockingQueue<Ljava/lang/Runnable;>;
8 15 9 dynamicMaximumSize I
MethodParameters:
Name Flags
threadPoolKey final
threadPoolProperties
private static java.util.concurrent.ThreadFactory getThreadFactory(com.netflix.hystrix.HystrixThreadPoolKey);
descriptor: (Lcom/netflix/hystrix/HystrixThreadPoolKey;)Ljava/util/concurrent/ThreadFactory;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: invokestatic com.netflix.hystrix.util.PlatformSpecific.isAppEngineStandardEnvironment:()Z
ifne 2
1: new com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy$1
dup
aload 0
invokespecial com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy$1.<init>:(Lcom/netflix/hystrix/HystrixThreadPoolKey;)V
areturn
2: StackMap locals:
StackMap stack:
invokestatic com.netflix.hystrix.util.PlatformSpecific.getAppEngineThreadFactory:()Ljava/util/concurrent/ThreadFactory;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 threadPoolKey Lcom/netflix/hystrix/HystrixThreadPoolKey;
MethodParameters:
Name Flags
threadPoolKey final
public java.util.concurrent.BlockingQueue<java.lang.Runnable> getBlockingQueue(int);
descriptor: (I)Ljava/util/concurrent/BlockingQueue;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifgt 2
1: new java.util.concurrent.SynchronousQueue
dup
invokespecial java.util.concurrent.SynchronousQueue.<init>:()V
areturn
2: StackMap locals:
StackMap stack:
new java.util.concurrent.LinkedBlockingQueue
dup
iload 1
invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:(I)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
0 3 1 maxQueueSize I
Signature: (I)Ljava/util/concurrent/BlockingQueue<Ljava/lang/Runnable;>;
MethodParameters:
Name Flags
maxQueueSize
public <T> java.util.concurrent.Callable<T> wrapCallable(java.util.concurrent.Callable<T>);
descriptor: (Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Callable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
0 1 1 callable Ljava/util/concurrent/Callable<TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/Callable<TT;>;)Ljava/util/concurrent/Callable<TT;>;
MethodParameters:
Name Flags
callable
public <T> com.netflix.hystrix.strategy.concurrency.HystrixRequestVariable<T> getRequestVariable(com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableLifecycle<T>);
descriptor: (Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariableLifecycle;)Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new com.netflix.hystrix.strategy.concurrency.HystrixLifecycleForwardingRequestVariable
dup
aload 1
invokespecial com.netflix.hystrix.strategy.concurrency.HystrixLifecycleForwardingRequestVariable.<init>:(Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariableLifecycle;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
0 1 1 rv Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariableLifecycle<TT;>;
Signature: <T:Ljava/lang/Object;>(Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariableLifecycle<TT;>;)Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestVariable<TT;>;
MethodParameters:
Name Flags
rv final
}
SourceFile: "HystrixConcurrencyStrategy.java"
NestMembers:
com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy$1
InnerClasses:
com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy$1