abstract class com.netflix.hystrix.AbstractCommand<R> implements com.netflix.hystrix.HystrixInvokableInfo<R>, com.netflix.hystrix.HystrixObservable<R>
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.netflix.hystrix.AbstractCommand
super_class: java.lang.Object
{
private static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
protected final com.netflix.hystrix.HystrixCircuitBreaker circuitBreaker;
descriptor: Lcom/netflix/hystrix/HystrixCircuitBreaker;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.netflix.hystrix.HystrixThreadPool threadPool;
descriptor: Lcom/netflix/hystrix/HystrixThreadPool;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.netflix.hystrix.HystrixThreadPoolKey threadPoolKey;
descriptor: Lcom/netflix/hystrix/HystrixThreadPoolKey;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.netflix.hystrix.HystrixCommandProperties properties;
descriptor: Lcom/netflix/hystrix/HystrixCommandProperties;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.netflix.hystrix.HystrixCommandMetrics metrics;
descriptor: Lcom/netflix/hystrix/HystrixCommandMetrics;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.netflix.hystrix.HystrixCommandKey commandKey;
descriptor: Lcom/netflix/hystrix/HystrixCommandKey;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.netflix.hystrix.HystrixCommandGroupKey commandGroup;
descriptor: Lcom/netflix/hystrix/HystrixCommandGroupKey;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.netflix.hystrix.strategy.eventnotifier.HystrixEventNotifier eventNotifier;
descriptor: Lcom/netflix/hystrix/strategy/eventnotifier/HystrixEventNotifier;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy concurrencyStrategy;
descriptor: Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook executionHook;
descriptor: Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.netflix.hystrix.AbstractCommand$TryableSemaphore fallbackSemaphoreOverride;
descriptor: Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected static final java.util.concurrent.ConcurrentHashMap<java.lang.String, com.netflix.hystrix.AbstractCommand$TryableSemaphore> fallbackSemaphorePerCircuit;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/String;Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;>;
protected final com.netflix.hystrix.AbstractCommand$TryableSemaphore executionSemaphoreOverride;
descriptor: Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected static final java.util.concurrent.ConcurrentHashMap<java.lang.String, com.netflix.hystrix.AbstractCommand$TryableSemaphore> executionSemaphorePerCircuit;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/String;Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;>;
protected final java.util.concurrent.atomic.AtomicReference<java.lang.ref.Reference<com.netflix.hystrix.util.HystrixTimer$TimerListener>> timeoutTimer;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Ljava/lang/ref/Reference<Lcom/netflix/hystrix/util/HystrixTimer$TimerListener;>;>;
protected java.util.concurrent.atomic.AtomicReference<com.netflix.hystrix.AbstractCommand$CommandState> commandState;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0004) ACC_PROTECTED
Signature: Ljava/util/concurrent/atomic/AtomicReference<Lcom/netflix/hystrix/AbstractCommand$CommandState;>;
protected java.util.concurrent.atomic.AtomicReference<com.netflix.hystrix.AbstractCommand$ThreadState> threadState;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0004) ACC_PROTECTED
Signature: Ljava/util/concurrent/atomic/AtomicReference<Lcom/netflix/hystrix/AbstractCommand$ThreadState;>;
protected volatile com.netflix.hystrix.ExecutionResult executionResult;
descriptor: Lcom/netflix/hystrix/ExecutionResult;
flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
protected volatile boolean isResponseFromCache;
descriptor: Z
flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
protected volatile com.netflix.hystrix.ExecutionResult executionResultAtTimeOfCancellation;
descriptor: Lcom/netflix/hystrix/ExecutionResult;
flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
protected volatile long commandStartTimestamp;
descriptor: J
flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
protected final java.util.concurrent.atomic.AtomicReference<com.netflix.hystrix.AbstractCommand$TimedOutStatus> isCommandTimedOut;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Lcom/netflix/hystrix/AbstractCommand$TimedOutStatus;>;
protected volatile rx.functions.Action0 endCurrentThreadExecutingCommand;
descriptor: Lrx/functions/Action0;
flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
protected final com.netflix.hystrix.HystrixRequestCache requestCache;
descriptor: Lcom/netflix/hystrix/HystrixRequestCache;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.netflix.hystrix.HystrixRequestLog currentRequestLog;
descriptor: Lcom/netflix/hystrix/HystrixRequestLog;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private static java.util.concurrent.ConcurrentHashMap<java.lang.Class<?>, java.lang.String> defaultNameCache;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/Class<*>;Ljava/lang/String;>;
protected static java.util.concurrent.ConcurrentHashMap<com.netflix.hystrix.HystrixCommandKey, java.lang.Boolean> commandContainsFallback;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Signature: Ljava/util/concurrent/ConcurrentHashMap<Lcom/netflix/hystrix/HystrixCommandKey;Ljava/lang/Boolean;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lcom/netflix/hystrix/AbstractCommand;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
1: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putstatic com.netflix.hystrix.AbstractCommand.fallbackSemaphorePerCircuit:Ljava/util/concurrent/ConcurrentHashMap;
2: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putstatic com.netflix.hystrix.AbstractCommand.executionSemaphorePerCircuit:Ljava/util/concurrent/ConcurrentHashMap;
3: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putstatic com.netflix.hystrix.AbstractCommand.defaultNameCache:Ljava/util/concurrent/ConcurrentHashMap;
4: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putstatic com.netflix.hystrix.AbstractCommand.commandContainsFallback:Ljava/util/concurrent/ConcurrentHashMap;
return
LocalVariableTable:
Start End Slot Name Signature
static java.lang.String getDefaultNameFromClass(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: getstatic com.netflix.hystrix.AbstractCommand.defaultNameCache:Ljava/util/concurrent/ConcurrentHashMap;
aload 0
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
areturn
3: StackMap locals: java.lang.String
StackMap stack:
aload 0
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
astore 2
start local 2 4: aload 2
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 7
5: aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
astore 2
6: aload 2
aload 2
bipush 46
invokevirtual java.lang.String.lastIndexOf:(I)I
iconst_1
iadd
aload 2
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 2
7: StackMap locals: java.lang.String
StackMap stack:
getstatic com.netflix.hystrix.AbstractCommand.defaultNameCache:Ljava/util/concurrent/ConcurrentHashMap;
aload 0
aload 2
invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 cls Ljava/lang/Class<*>;
1 9 1 fromCache Ljava/lang/String;
4 9 2 name Ljava/lang/String;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/String;
MethodParameters:
Name Flags
cls
protected void <init>(com.netflix.hystrix.HystrixCommandGroupKey, com.netflix.hystrix.HystrixCommandKey, com.netflix.hystrix.HystrixThreadPoolKey, com.netflix.hystrix.HystrixCircuitBreaker, com.netflix.hystrix.HystrixThreadPool, com.netflix.hystrix.HystrixCommandProperties$Setter, com.netflix.hystrix.HystrixThreadPoolProperties$Setter, com.netflix.hystrix.HystrixCommandMetrics, com.netflix.hystrix.AbstractCommand$TryableSemaphore, com.netflix.hystrix.AbstractCommand$TryableSemaphore, com.netflix.hystrix.strategy.properties.HystrixPropertiesStrategy, com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook);
descriptor: (Lcom/netflix/hystrix/HystrixCommandGroupKey;Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixThreadPoolKey;Lcom/netflix/hystrix/HystrixCircuitBreaker;Lcom/netflix/hystrix/HystrixThreadPool;Lcom/netflix/hystrix/HystrixCommandProperties$Setter;Lcom/netflix/hystrix/HystrixThreadPoolProperties$Setter;Lcom/netflix/hystrix/HystrixCommandMetrics;Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;Lcom/netflix/hystrix/strategy/properties/HystrixPropertiesStrategy;Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=13, args_size=13
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 start local 10 start local 11 start local 12 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
putfield com.netflix.hystrix.AbstractCommand.timeoutTimer:Ljava/util/concurrent/atomic/AtomicReference;
2: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
getstatic com.netflix.hystrix.AbstractCommand$CommandState.NOT_STARTED:Lcom/netflix/hystrix/AbstractCommand$CommandState;
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
putfield com.netflix.hystrix.AbstractCommand.commandState:Ljava/util/concurrent/atomic/AtomicReference;
3: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
getstatic com.netflix.hystrix.AbstractCommand$ThreadState.NOT_USING_THREAD:Lcom/netflix/hystrix/AbstractCommand$ThreadState;
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
putfield com.netflix.hystrix.AbstractCommand.threadState:Ljava/util/concurrent/atomic/AtomicReference;
4: aload 0
getstatic com.netflix.hystrix.ExecutionResult.EMPTY:Lcom/netflix/hystrix/ExecutionResult;
putfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
5: aload 0
iconst_0
putfield com.netflix.hystrix.AbstractCommand.isResponseFromCache:Z
6: aload 0
ldc -1
putfield com.netflix.hystrix.AbstractCommand.commandStartTimestamp:J
7: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
getstatic com.netflix.hystrix.AbstractCommand$TimedOutStatus.NOT_EXECUTED:Lcom/netflix/hystrix/AbstractCommand$TimedOutStatus;
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
putfield com.netflix.hystrix.AbstractCommand.isCommandTimedOut:Ljava/util/concurrent/atomic/AtomicReference;
8: aload 0
aload 1
invokestatic com.netflix.hystrix.AbstractCommand.initGroupKey:(Lcom/netflix/hystrix/HystrixCommandGroupKey;)Lcom/netflix/hystrix/HystrixCommandGroupKey;
putfield com.netflix.hystrix.AbstractCommand.commandGroup:Lcom/netflix/hystrix/HystrixCommandGroupKey;
9: aload 0
aload 2
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic com.netflix.hystrix.AbstractCommand.initCommandKey:(Lcom/netflix/hystrix/HystrixCommandKey;Ljava/lang/Class;)Lcom/netflix/hystrix/HystrixCommandKey;
putfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
10: aload 0
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
aload 11
aload 6
invokestatic com.netflix.hystrix.AbstractCommand.initCommandProperties:(Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/strategy/properties/HystrixPropertiesStrategy;Lcom/netflix/hystrix/HystrixCommandProperties$Setter;)Lcom/netflix/hystrix/HystrixCommandProperties;
putfield com.netflix.hystrix.AbstractCommand.properties:Lcom/netflix/hystrix/HystrixCommandProperties;
11: aload 0
aload 3
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandGroup:Lcom/netflix/hystrix/HystrixCommandGroupKey;
aload 0
getfield com.netflix.hystrix.AbstractCommand.properties:Lcom/netflix/hystrix/HystrixCommandProperties;
invokevirtual com.netflix.hystrix.HystrixCommandProperties.executionIsolationThreadPoolKeyOverride:()Lcom/netflix/hystrix/strategy/properties/HystrixProperty;
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
checkcast java.lang.String
invokestatic com.netflix.hystrix.AbstractCommand.initThreadPoolKey:(Lcom/netflix/hystrix/HystrixThreadPoolKey;Lcom/netflix/hystrix/HystrixCommandGroupKey;Ljava/lang/String;)Lcom/netflix/hystrix/HystrixThreadPoolKey;
putfield com.netflix.hystrix.AbstractCommand.threadPoolKey:Lcom/netflix/hystrix/HystrixThreadPoolKey;
12: aload 0
aload 8
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandGroup:Lcom/netflix/hystrix/HystrixCommandGroupKey;
aload 0
getfield com.netflix.hystrix.AbstractCommand.threadPoolKey:Lcom/netflix/hystrix/HystrixThreadPoolKey;
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
aload 0
getfield com.netflix.hystrix.AbstractCommand.properties:Lcom/netflix/hystrix/HystrixCommandProperties;
invokestatic com.netflix.hystrix.AbstractCommand.initMetrics:(Lcom/netflix/hystrix/HystrixCommandMetrics;Lcom/netflix/hystrix/HystrixCommandGroupKey;Lcom/netflix/hystrix/HystrixThreadPoolKey;Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixCommandProperties;)Lcom/netflix/hystrix/HystrixCommandMetrics;
putfield com.netflix.hystrix.AbstractCommand.metrics:Lcom/netflix/hystrix/HystrixCommandMetrics;
13: aload 0
aload 0
getfield com.netflix.hystrix.AbstractCommand.properties:Lcom/netflix/hystrix/HystrixCommandProperties;
invokevirtual com.netflix.hystrix.HystrixCommandProperties.circuitBreakerEnabled:()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
aload 4
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandGroup:Lcom/netflix/hystrix/HystrixCommandGroupKey;
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
aload 0
getfield com.netflix.hystrix.AbstractCommand.properties:Lcom/netflix/hystrix/HystrixCommandProperties;
aload 0
getfield com.netflix.hystrix.AbstractCommand.metrics:Lcom/netflix/hystrix/HystrixCommandMetrics;
invokestatic com.netflix.hystrix.AbstractCommand.initCircuitBreaker:(ZLcom/netflix/hystrix/HystrixCircuitBreaker;Lcom/netflix/hystrix/HystrixCommandGroupKey;Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixCommandProperties;Lcom/netflix/hystrix/HystrixCommandMetrics;)Lcom/netflix/hystrix/HystrixCircuitBreaker;
putfield com.netflix.hystrix.AbstractCommand.circuitBreaker:Lcom/netflix/hystrix/HystrixCircuitBreaker;
14: aload 0
aload 5
aload 0
getfield com.netflix.hystrix.AbstractCommand.threadPoolKey:Lcom/netflix/hystrix/HystrixThreadPoolKey;
aload 7
invokestatic com.netflix.hystrix.AbstractCommand.initThreadPool:(Lcom/netflix/hystrix/HystrixThreadPool;Lcom/netflix/hystrix/HystrixThreadPoolKey;Lcom/netflix/hystrix/HystrixThreadPoolProperties$Setter;)Lcom/netflix/hystrix/HystrixThreadPool;
putfield com.netflix.hystrix.AbstractCommand.threadPool:Lcom/netflix/hystrix/HystrixThreadPool;
15: aload 0
invokestatic com.netflix.hystrix.strategy.HystrixPlugins.getInstance:()Lcom/netflix/hystrix/strategy/HystrixPlugins;
invokevirtual com.netflix.hystrix.strategy.HystrixPlugins.getEventNotifier:()Lcom/netflix/hystrix/strategy/eventnotifier/HystrixEventNotifier;
putfield com.netflix.hystrix.AbstractCommand.eventNotifier:Lcom/netflix/hystrix/strategy/eventnotifier/HystrixEventNotifier;
16: aload 0
invokestatic com.netflix.hystrix.strategy.HystrixPlugins.getInstance:()Lcom/netflix/hystrix/strategy/HystrixPlugins;
invokevirtual com.netflix.hystrix.strategy.HystrixPlugins.getConcurrencyStrategy:()Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
putfield com.netflix.hystrix.AbstractCommand.concurrencyStrategy:Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
17: aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandGroup:Lcom/netflix/hystrix/HystrixCommandGroupKey;
aload 0
getfield com.netflix.hystrix.AbstractCommand.metrics:Lcom/netflix/hystrix/HystrixCommandMetrics;
aload 0
getfield com.netflix.hystrix.AbstractCommand.circuitBreaker:Lcom/netflix/hystrix/HystrixCircuitBreaker;
aload 0
getfield com.netflix.hystrix.AbstractCommand.properties:Lcom/netflix/hystrix/HystrixCommandProperties;
invokestatic com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.createOrRetrievePublisherForCommand:(Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixCommandGroupKey;Lcom/netflix/hystrix/HystrixCommandMetrics;Lcom/netflix/hystrix/HystrixCircuitBreaker;Lcom/netflix/hystrix/HystrixCommandProperties;)Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherCommand;
pop
18: aload 0
aload 12
invokestatic com.netflix.hystrix.AbstractCommand.initExecutionHook:(Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;)Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
putfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
19: aload 0
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
aload 0
getfield com.netflix.hystrix.AbstractCommand.concurrencyStrategy:Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
invokestatic com.netflix.hystrix.HystrixRequestCache.getInstance:(Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;)Lcom/netflix/hystrix/HystrixRequestCache;
putfield com.netflix.hystrix.AbstractCommand.requestCache:Lcom/netflix/hystrix/HystrixRequestCache;
20: aload 0
aload 0
getfield com.netflix.hystrix.AbstractCommand.properties:Lcom/netflix/hystrix/HystrixCommandProperties;
invokevirtual com.netflix.hystrix.HystrixCommandProperties.requestLogEnabled:()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
aload 0
getfield com.netflix.hystrix.AbstractCommand.concurrencyStrategy:Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
invokestatic com.netflix.hystrix.AbstractCommand.initRequestLog:(ZLcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;)Lcom/netflix/hystrix/HystrixRequestLog;
putfield com.netflix.hystrix.AbstractCommand.currentRequestLog:Lcom/netflix/hystrix/HystrixRequestLog;
21: aload 0
aload 9
putfield com.netflix.hystrix.AbstractCommand.fallbackSemaphoreOverride:Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
22: aload 0
aload 10
putfield com.netflix.hystrix.AbstractCommand.executionSemaphoreOverride:Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
23: return
end local 12 end local 11 end local 10 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 24 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 24 1 group Lcom/netflix/hystrix/HystrixCommandGroupKey;
0 24 2 key Lcom/netflix/hystrix/HystrixCommandKey;
0 24 3 threadPoolKey Lcom/netflix/hystrix/HystrixThreadPoolKey;
0 24 4 circuitBreaker Lcom/netflix/hystrix/HystrixCircuitBreaker;
0 24 5 threadPool Lcom/netflix/hystrix/HystrixThreadPool;
0 24 6 commandPropertiesDefaults Lcom/netflix/hystrix/HystrixCommandProperties$Setter;
0 24 7 threadPoolPropertiesDefaults Lcom/netflix/hystrix/HystrixThreadPoolProperties$Setter;
0 24 8 metrics Lcom/netflix/hystrix/HystrixCommandMetrics;
0 24 9 fallbackSemaphore Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
0 24 10 executionSemaphore Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
0 24 11 propertiesStrategy Lcom/netflix/hystrix/strategy/properties/HystrixPropertiesStrategy;
0 24 12 executionHook Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
MethodParameters:
Name Flags
group
key
threadPoolKey
circuitBreaker
threadPool
commandPropertiesDefaults
threadPoolPropertiesDefaults
metrics
fallbackSemaphore
executionSemaphore
propertiesStrategy
executionHook
private static com.netflix.hystrix.HystrixCommandGroupKey initGroupKey(com.netflix.hystrix.HystrixCommandGroupKey);
descriptor: (Lcom/netflix/hystrix/HystrixCommandGroupKey;)Lcom/netflix/hystrix/HystrixCommandGroupKey;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: new java.lang.IllegalStateException
dup
ldc "HystrixCommandGroup can not be NULL"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 fromConstructor Lcom/netflix/hystrix/HystrixCommandGroupKey;
MethodParameters:
Name Flags
fromConstructor final
private static com.netflix.hystrix.HystrixCommandKey initCommandKey(com.netflix.hystrix.HystrixCommandKey, java.lang.Class<?>);
descriptor: (Lcom/netflix/hystrix/HystrixCommandKey;Ljava/lang/Class;)Lcom/netflix/hystrix/HystrixCommandKey;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
ifnull 1
aload 0
invokeinterface com.netflix.hystrix.HystrixCommandKey.name:()Ljava/lang/String;
invokevirtual java.lang.String.trim:()Ljava/lang/String;
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 3
1: StackMap locals:
StackMap stack:
aload 1
invokestatic com.netflix.hystrix.AbstractCommand.getDefaultNameFromClass:(Ljava/lang/Class;)Ljava/lang/String;
astore 2
start local 2 2: aload 2
invokestatic com.netflix.hystrix.HystrixCommandKey$Factory.asKey:(Ljava/lang/String;)Lcom/netflix/hystrix/HystrixCommandKey;
areturn
end local 2 3: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 fromConstructor Lcom/netflix/hystrix/HystrixCommandKey;
0 4 1 clazz Ljava/lang/Class<*>;
2 3 2 keyName Ljava/lang/String;
Signature: (Lcom/netflix/hystrix/HystrixCommandKey;Ljava/lang/Class<*>;)Lcom/netflix/hystrix/HystrixCommandKey;
MethodParameters:
Name Flags
fromConstructor final
clazz
private static com.netflix.hystrix.HystrixCommandProperties initCommandProperties(com.netflix.hystrix.HystrixCommandKey, com.netflix.hystrix.strategy.properties.HystrixPropertiesStrategy, com.netflix.hystrix.HystrixCommandProperties$Setter);
descriptor: (Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/strategy/properties/HystrixPropertiesStrategy;Lcom/netflix/hystrix/HystrixCommandProperties$Setter;)Lcom/netflix/hystrix/HystrixCommandProperties;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: aload 0
aload 2
invokestatic com.netflix.hystrix.strategy.properties.HystrixPropertiesFactory.getCommandProperties:(Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixCommandProperties$Setter;)Lcom/netflix/hystrix/HystrixCommandProperties;
areturn
2: StackMap locals:
StackMap stack:
aload 1
aload 0
aload 2
invokevirtual com.netflix.hystrix.strategy.properties.HystrixPropertiesStrategy.getCommandProperties:(Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixCommandProperties$Setter;)Lcom/netflix/hystrix/HystrixCommandProperties;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 commandKey Lcom/netflix/hystrix/HystrixCommandKey;
0 3 1 propertiesStrategy Lcom/netflix/hystrix/strategy/properties/HystrixPropertiesStrategy;
0 3 2 commandPropertiesDefaults Lcom/netflix/hystrix/HystrixCommandProperties$Setter;
MethodParameters:
Name Flags
commandKey
propertiesStrategy
commandPropertiesDefaults
private static com.netflix.hystrix.HystrixThreadPoolKey initThreadPoolKey(com.netflix.hystrix.HystrixThreadPoolKey, com.netflix.hystrix.HystrixCommandGroupKey, java.lang.String);
descriptor: (Lcom/netflix/hystrix/HystrixThreadPoolKey;Lcom/netflix/hystrix/HystrixCommandGroupKey;Ljava/lang/String;)Lcom/netflix/hystrix/HystrixThreadPoolKey;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 4
1: aload 0
ifnonnull 3
2: aload 1
invokeinterface com.netflix.hystrix.HystrixCommandGroupKey.name:()Ljava/lang/String;
invokestatic com.netflix.hystrix.HystrixThreadPoolKey$Factory.asKey:(Ljava/lang/String;)Lcom/netflix/hystrix/HystrixThreadPoolKey;
areturn
3: StackMap locals:
StackMap stack:
aload 0
areturn
4: StackMap locals:
StackMap stack:
aload 2
invokestatic com.netflix.hystrix.HystrixThreadPoolKey$Factory.asKey:(Ljava/lang/String;)Lcom/netflix/hystrix/HystrixThreadPoolKey;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 threadPoolKey Lcom/netflix/hystrix/HystrixThreadPoolKey;
0 5 1 groupKey Lcom/netflix/hystrix/HystrixCommandGroupKey;
0 5 2 threadPoolKeyOverride Ljava/lang/String;
MethodParameters:
Name Flags
threadPoolKey
groupKey
threadPoolKeyOverride
private static com.netflix.hystrix.HystrixCommandMetrics initMetrics(com.netflix.hystrix.HystrixCommandMetrics, com.netflix.hystrix.HystrixCommandGroupKey, com.netflix.hystrix.HystrixThreadPoolKey, com.netflix.hystrix.HystrixCommandKey, com.netflix.hystrix.HystrixCommandProperties);
descriptor: (Lcom/netflix/hystrix/HystrixCommandMetrics;Lcom/netflix/hystrix/HystrixCommandGroupKey;Lcom/netflix/hystrix/HystrixThreadPoolKey;Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixCommandProperties;)Lcom/netflix/hystrix/HystrixCommandMetrics;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
ifnonnull 2
1: aload 3
aload 1
aload 2
aload 4
invokestatic com.netflix.hystrix.HystrixCommandMetrics.getInstance:(Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixCommandGroupKey;Lcom/netflix/hystrix/HystrixThreadPoolKey;Lcom/netflix/hystrix/HystrixCommandProperties;)Lcom/netflix/hystrix/HystrixCommandMetrics;
areturn
2: StackMap locals:
StackMap stack:
aload 0
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 fromConstructor Lcom/netflix/hystrix/HystrixCommandMetrics;
0 3 1 groupKey Lcom/netflix/hystrix/HystrixCommandGroupKey;
0 3 2 threadPoolKey Lcom/netflix/hystrix/HystrixThreadPoolKey;
0 3 3 commandKey Lcom/netflix/hystrix/HystrixCommandKey;
0 3 4 properties Lcom/netflix/hystrix/HystrixCommandProperties;
MethodParameters:
Name Flags
fromConstructor
groupKey
threadPoolKey
commandKey
properties
private static com.netflix.hystrix.HystrixCircuitBreaker initCircuitBreaker(boolean, com.netflix.hystrix.HystrixCircuitBreaker, com.netflix.hystrix.HystrixCommandGroupKey, com.netflix.hystrix.HystrixCommandKey, com.netflix.hystrix.HystrixCommandProperties, com.netflix.hystrix.HystrixCommandMetrics);
descriptor: (ZLcom/netflix/hystrix/HystrixCircuitBreaker;Lcom/netflix/hystrix/HystrixCommandGroupKey;Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixCommandProperties;Lcom/netflix/hystrix/HystrixCommandMetrics;)Lcom/netflix/hystrix/HystrixCircuitBreaker;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iload 0
ifeq 4
1: aload 1
ifnonnull 3
2: aload 3
aload 2
aload 4
aload 5
invokestatic com.netflix.hystrix.HystrixCircuitBreaker$Factory.getInstance:(Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixCommandGroupKey;Lcom/netflix/hystrix/HystrixCommandProperties;Lcom/netflix/hystrix/HystrixCommandMetrics;)Lcom/netflix/hystrix/HystrixCircuitBreaker;
areturn
3: StackMap locals:
StackMap stack:
aload 1
areturn
4: StackMap locals:
StackMap stack:
new com.netflix.hystrix.HystrixCircuitBreaker$NoOpCircuitBreaker
dup
invokespecial com.netflix.hystrix.HystrixCircuitBreaker$NoOpCircuitBreaker.<init>:()V
areturn
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 5 0 enabled Z
0 5 1 fromConstructor Lcom/netflix/hystrix/HystrixCircuitBreaker;
0 5 2 groupKey Lcom/netflix/hystrix/HystrixCommandGroupKey;
0 5 3 commandKey Lcom/netflix/hystrix/HystrixCommandKey;
0 5 4 properties Lcom/netflix/hystrix/HystrixCommandProperties;
0 5 5 metrics Lcom/netflix/hystrix/HystrixCommandMetrics;
MethodParameters:
Name Flags
enabled
fromConstructor
groupKey
commandKey
properties
metrics
private static com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook initExecutionHook(com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook);
descriptor: (Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;)Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: new com.netflix.hystrix.AbstractCommand$ExecutionHookDeprecationWrapper
dup
invokestatic com.netflix.hystrix.strategy.HystrixPlugins.getInstance:()Lcom/netflix/hystrix/strategy/HystrixPlugins;
invokevirtual com.netflix.hystrix.strategy.HystrixPlugins.getCommandExecutionHook:()Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
invokespecial com.netflix.hystrix.AbstractCommand$ExecutionHookDeprecationWrapper.<init>:(Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;)V
areturn
2: StackMap locals:
StackMap stack:
aload 0
instanceof com.netflix.hystrix.AbstractCommand$ExecutionHookDeprecationWrapper
ifeq 4
3: aload 0
areturn
4: StackMap locals:
StackMap stack:
new com.netflix.hystrix.AbstractCommand$ExecutionHookDeprecationWrapper
dup
aload 0
invokespecial com.netflix.hystrix.AbstractCommand$ExecutionHookDeprecationWrapper.<init>:(Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 fromConstructor Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
MethodParameters:
Name Flags
fromConstructor
private static com.netflix.hystrix.HystrixThreadPool initThreadPool(com.netflix.hystrix.HystrixThreadPool, com.netflix.hystrix.HystrixThreadPoolKey, com.netflix.hystrix.HystrixThreadPoolProperties$Setter);
descriptor: (Lcom/netflix/hystrix/HystrixThreadPool;Lcom/netflix/hystrix/HystrixThreadPoolKey;Lcom/netflix/hystrix/HystrixThreadPoolProperties$Setter;)Lcom/netflix/hystrix/HystrixThreadPool;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ifnonnull 2
1: aload 1
aload 2
invokestatic com.netflix.hystrix.HystrixThreadPool$Factory.getInstance:(Lcom/netflix/hystrix/HystrixThreadPoolKey;Lcom/netflix/hystrix/HystrixThreadPoolProperties$Setter;)Lcom/netflix/hystrix/HystrixThreadPool;
areturn
2: StackMap locals:
StackMap stack:
aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 fromConstructor Lcom/netflix/hystrix/HystrixThreadPool;
0 3 1 threadPoolKey Lcom/netflix/hystrix/HystrixThreadPoolKey;
0 3 2 threadPoolPropertiesDefaults Lcom/netflix/hystrix/HystrixThreadPoolProperties$Setter;
MethodParameters:
Name Flags
fromConstructor
threadPoolKey
threadPoolPropertiesDefaults
private static com.netflix.hystrix.HystrixRequestLog initRequestLog(boolean, com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy);
descriptor: (ZLcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;)Lcom/netflix/hystrix/HystrixRequestLog;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iload 0
ifeq 2
1: aload 1
invokestatic com.netflix.hystrix.HystrixRequestLog.getCurrentRequest:(Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;)Lcom/netflix/hystrix/HystrixRequestLog;
areturn
2: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 enabled Z
0 3 1 concurrencyStrategy Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;
MethodParameters:
Name Flags
enabled
concurrencyStrategy
void markAsCollapsedCommand(com.netflix.hystrix.HystrixCollapserKey, int);
descriptor: (Lcom/netflix/hystrix/HystrixCollapserKey;I)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.eventNotifier:Lcom/netflix/hystrix/strategy/eventnotifier/HystrixEventNotifier;
getstatic com.netflix.hystrix.HystrixEventType.COLLAPSED:Lcom/netflix/hystrix/HystrixEventType;
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
invokevirtual com.netflix.hystrix.strategy.eventnotifier.HystrixEventNotifier.markEvent:(Lcom/netflix/hystrix/HystrixEventType;Lcom/netflix/hystrix/HystrixCommandKey;)V
1: aload 0
aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
aload 1
iload 2
invokevirtual com.netflix.hystrix.ExecutionResult.markCollapsed:(Lcom/netflix/hystrix/HystrixCollapserKey;I)Lcom/netflix/hystrix/ExecutionResult;
putfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 3 1 collapserKey Lcom/netflix/hystrix/HystrixCollapserKey;
0 3 2 sizeOfBatch I
MethodParameters:
Name Flags
collapserKey
sizeOfBatch
public rx.Observable<R> observe();
descriptor: ()Lrx/Observable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: invokestatic rx.subjects.ReplaySubject.create:()Lrx/subjects/ReplaySubject;
astore 1
start local 1 1: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.toObservable:()Lrx/Observable;
aload 1
invokevirtual rx.Observable.subscribe:(Lrx/Observer;)Lrx/Subscription;
astore 2
start local 2 2: aload 1
new com.netflix.hystrix.AbstractCommand$1
dup
aload 0
aload 2
invokespecial com.netflix.hystrix.AbstractCommand$1.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lrx/Subscription;)V
invokevirtual rx.subjects.ReplaySubject.doOnUnsubscribe:(Lrx/functions/Action0;)Lrx/Observable;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
1 3 1 subject Lrx/subjects/ReplaySubject<TR;>;
2 3 2 sourceSubscription Lrx/Subscription;
Signature: ()Lrx/Observable<TR;>;
protected abstract rx.Observable<R> getExecutionObservable();
descriptor: ()Lrx/Observable;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: ()Lrx/Observable<TR;>;
protected abstract rx.Observable<R> getFallbackObservable();
descriptor: ()Lrx/Observable;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: ()Lrx/Observable<TR;>;
public rx.Observable<R> toObservable();
descriptor: ()Lrx/Observable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=7, args_size=1
start local 0 0: aload 0
astore 1
start local 1 1: new com.netflix.hystrix.AbstractCommand$2
dup
aload 0
aload 1
invokespecial com.netflix.hystrix.AbstractCommand$2.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/AbstractCommand;)V
astore 2
start local 2 2: new com.netflix.hystrix.AbstractCommand$3
dup
aload 0
aload 1
invokespecial com.netflix.hystrix.AbstractCommand$3.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/AbstractCommand;)V
astore 3
start local 3 3: new com.netflix.hystrix.AbstractCommand$4
dup
aload 0
aload 1
invokespecial com.netflix.hystrix.AbstractCommand$4.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/AbstractCommand;)V
astore 4
start local 4 4: new com.netflix.hystrix.AbstractCommand$5
dup
aload 0
aload 1
invokespecial com.netflix.hystrix.AbstractCommand$5.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/AbstractCommand;)V
astore 5
start local 5 5: new com.netflix.hystrix.AbstractCommand$6
dup
aload 0
aload 1
invokespecial com.netflix.hystrix.AbstractCommand$6.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/AbstractCommand;)V
astore 6
start local 6 6: new com.netflix.hystrix.AbstractCommand$7
dup
aload 0
aload 1
aload 4
aload 5
aload 2
aload 3
aload 6
invokespecial com.netflix.hystrix.AbstractCommand$7.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/AbstractCommand;Lrx/functions/Func0;Lrx/functions/Func1;Lrx/functions/Action0;Lrx/functions/Action0;Lrx/functions/Action0;)V
invokestatic rx.Observable.defer:(Lrx/functions/Func0;)Lrx/Observable;
areturn
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 7 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
1 7 1 _cmd Lcom/netflix/hystrix/AbstractCommand<TR;>;
2 7 2 terminateCommandCleanup Lrx/functions/Action0;
3 7 3 unsubscribeCommandCleanup Lrx/functions/Action0;
4 7 4 applyHystrixSemantics Lrx/functions/Func0<Lrx/Observable<TR;>;>;
5 7 5 wrapWithAllOnNextHooks Lrx/functions/Func1<TR;TR;>;
6 7 6 fireOnCompletedHook Lrx/functions/Action0;
Signature: ()Lrx/Observable<TR;>;
private rx.Observable<R> applyHystrixSemantics(com.netflix.hystrix.AbstractCommand<R>);
descriptor: (Lcom/netflix/hystrix/AbstractCommand;)Lrx/Observable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
aload 1
invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onStart:(Lcom/netflix/hystrix/HystrixInvokable;)V
1: aload 0
getfield com.netflix.hystrix.AbstractCommand.circuitBreaker:Lcom/netflix/hystrix/HystrixCircuitBreaker;
invokeinterface com.netflix.hystrix.HystrixCircuitBreaker.allowRequest:()Z
ifeq 16
2: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getExecutionSemaphore:()Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
astore 2
start local 2 3: new java.util.concurrent.atomic.AtomicBoolean
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
astore 3
start local 3 4: new com.netflix.hystrix.AbstractCommand$8
dup
aload 0
aload 3
aload 2
invokespecial com.netflix.hystrix.AbstractCommand$8.<init>:(Lcom/netflix/hystrix/AbstractCommand;Ljava/util/concurrent/atomic/AtomicBoolean;Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;)V
astore 4
start local 4 5: new com.netflix.hystrix.AbstractCommand$9
dup
aload 0
invokespecial com.netflix.hystrix.AbstractCommand$9.<init>:(Lcom/netflix/hystrix/AbstractCommand;)V
astore 5
start local 5 6: aload 2
invokeinterface com.netflix.hystrix.AbstractCommand$TryableSemaphore.tryAcquire:()Z
ifeq 15
7: aload 0
aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
invokestatic java.lang.System.currentTimeMillis:()J
invokevirtual com.netflix.hystrix.ExecutionResult.setInvocationStartTime:(J)Lcom/netflix/hystrix/ExecutionResult;
putfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
8: aload 0
aload 1
invokevirtual com.netflix.hystrix.AbstractCommand.executeCommandAndObserve:(Lcom/netflix/hystrix/AbstractCommand;)Lrx/Observable;
9: aload 5
invokevirtual rx.Observable.doOnError:(Lrx/functions/Action1;)Lrx/Observable;
10: aload 4
invokevirtual rx.Observable.doOnTerminate:(Lrx/functions/Action0;)Lrx/Observable;
11: aload 4
invokevirtual rx.Observable.doOnUnsubscribe:(Lrx/functions/Action0;)Lrx/Observable;
12: areturn
13: StackMap locals: com.netflix.hystrix.AbstractCommand com.netflix.hystrix.AbstractCommand com.netflix.hystrix.AbstractCommand$TryableSemaphore java.util.concurrent.atomic.AtomicBoolean rx.functions.Action0 rx.functions.Action1
StackMap stack: java.lang.RuntimeException
astore 6
start local 6 14: aload 6
invokestatic rx.Observable.error:(Ljava/lang/Throwable;)Lrx/Observable;
areturn
end local 6 15: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.handleSemaphoreRejectionViaFallback:()Lrx/Observable;
areturn
end local 5 end local 4 end local 3 end local 2 16: StackMap locals: com.netflix.hystrix.AbstractCommand com.netflix.hystrix.AbstractCommand
StackMap stack:
aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.handleShortCircuitViaFallback:()Lrx/Observable;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 17 1 _cmd Lcom/netflix/hystrix/AbstractCommand<TR;>;
3 16 2 executionSemaphore Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
4 16 3 semaphoreHasBeenReleased Ljava/util/concurrent/atomic/AtomicBoolean;
5 16 4 singleSemaphoreRelease Lrx/functions/Action0;
6 16 5 markExceptionThrown Lrx/functions/Action1<Ljava/lang/Throwable;>;
14 15 6 e Ljava/lang/RuntimeException;
Exception table:
from to target type
7 12 13 Class java.lang.RuntimeException
Signature: (Lcom/netflix/hystrix/AbstractCommand<TR;>;)Lrx/Observable<TR;>;
MethodParameters:
Name Flags
_cmd final
protected abstract boolean commandIsScalar();
descriptor: ()Z
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
private rx.Observable<R> executeCommandAndObserve(com.netflix.hystrix.AbstractCommand<R>);
descriptor: (Lcom/netflix/hystrix/AbstractCommand;)Lrx/Observable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: invokestatic com.netflix.hystrix.strategy.concurrency.HystrixRequestContext.getContextForCurrentThread:()Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestContext;
astore 2
start local 2 1: new com.netflix.hystrix.AbstractCommand$10
dup
aload 0
invokespecial com.netflix.hystrix.AbstractCommand$10.<init>:(Lcom/netflix/hystrix/AbstractCommand;)V
astore 3
start local 3 2: new com.netflix.hystrix.AbstractCommand$11
dup
aload 0
invokespecial com.netflix.hystrix.AbstractCommand$11.<init>:(Lcom/netflix/hystrix/AbstractCommand;)V
astore 4
start local 4 3: new com.netflix.hystrix.AbstractCommand$12
dup
aload 0
invokespecial com.netflix.hystrix.AbstractCommand$12.<init>:(Lcom/netflix/hystrix/AbstractCommand;)V
astore 5
start local 5 4: new com.netflix.hystrix.AbstractCommand$13
dup
aload 0
aload 2
invokespecial com.netflix.hystrix.AbstractCommand$13.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestContext;)V
astore 6
start local 6 5: aload 0
getfield com.netflix.hystrix.AbstractCommand.properties:Lcom/netflix/hystrix/HystrixCommandProperties;
invokevirtual com.netflix.hystrix.HystrixCommandProperties.executionTimeoutEnabled:()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
ifeq 10
6: aload 0
aload 1
invokevirtual com.netflix.hystrix.AbstractCommand.executeCommandWithSpecifiedIsolation:(Lcom/netflix/hystrix/AbstractCommand;)Lrx/Observable;
7: new com.netflix.hystrix.AbstractCommand$HystrixObservableTimeoutOperator
dup
aload 1
invokespecial com.netflix.hystrix.AbstractCommand$HystrixObservableTimeoutOperator.<init>:(Lcom/netflix/hystrix/AbstractCommand;)V
invokevirtual rx.Observable.lift:(Lrx/Observable$Operator;)Lrx/Observable;
8: astore 7
start local 7 9: goto 11
end local 7 10: StackMap locals: com.netflix.hystrix.AbstractCommand com.netflix.hystrix.AbstractCommand com.netflix.hystrix.strategy.concurrency.HystrixRequestContext rx.functions.Action1 rx.functions.Action0 rx.functions.Func1 rx.functions.Action1
StackMap stack:
aload 0
aload 1
invokevirtual com.netflix.hystrix.AbstractCommand.executeCommandWithSpecifiedIsolation:(Lcom/netflix/hystrix/AbstractCommand;)Lrx/Observable;
astore 7
start local 7 11: StackMap locals: rx.Observable
StackMap stack:
aload 7
aload 3
invokevirtual rx.Observable.doOnNext:(Lrx/functions/Action1;)Lrx/Observable;
12: aload 4
invokevirtual rx.Observable.doOnCompleted:(Lrx/functions/Action0;)Lrx/Observable;
13: aload 5
invokevirtual rx.Observable.onErrorResumeNext:(Lrx/functions/Func1;)Lrx/Observable;
14: aload 6
invokevirtual rx.Observable.doOnEach:(Lrx/functions/Action1;)Lrx/Observable;
15: areturn
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/AbstractCommand<TR;>;
0 16 1 _cmd Lcom/netflix/hystrix/AbstractCommand<TR;>;
1 16 2 currentRequestContext Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestContext;
2 16 3 markEmits Lrx/functions/Action1<TR;>;
3 16 4 markOnCompleted Lrx/functions/Action0;
4 16 5 handleFallback Lrx/functions/Func1<Ljava/lang/Throwable;Lrx/Observable<TR;>;>;
5 16 6 setRequestContext Lrx/functions/Action1<Lrx/Notification<-TR;>;>;
9 10 7 execution Lrx/Observable<TR;>;
11 16 7 execution Lrx/Observable<TR;>;
Signature: (Lcom/netflix/hystrix/AbstractCommand<TR;>;)Lrx/Observable<TR;>;
MethodParameters:
Name Flags
_cmd final
private rx.Observable<R> executeCommandWithSpecifiedIsolation(com.netflix.hystrix.AbstractCommand<R>);
descriptor: (Lcom/netflix/hystrix/AbstractCommand;)Lrx/Observable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.properties:Lcom/netflix/hystrix/HystrixCommandProperties;
invokevirtual com.netflix.hystrix.HystrixCommandProperties.executionIsolationStrategy:()Lcom/netflix/hystrix/strategy/properties/HystrixProperty;
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
getstatic com.netflix.hystrix.HystrixCommandProperties$ExecutionIsolationStrategy.THREAD:Lcom/netflix/hystrix/HystrixCommandProperties$ExecutionIsolationStrategy;
if_acmpne 6
1: new com.netflix.hystrix.AbstractCommand$14
dup
aload 0
aload 1
invokespecial com.netflix.hystrix.AbstractCommand$14.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/AbstractCommand;)V
invokestatic rx.Observable.defer:(Lrx/functions/Func0;)Lrx/Observable;
2: new com.netflix.hystrix.AbstractCommand$15
dup
aload 0
aload 1
invokespecial com.netflix.hystrix.AbstractCommand$15.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/AbstractCommand;)V
invokevirtual rx.Observable.doOnTerminate:(Lrx/functions/Action0;)Lrx/Observable;
3: new com.netflix.hystrix.AbstractCommand$16
dup
aload 0
aload 1
invokespecial com.netflix.hystrix.AbstractCommand$16.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/AbstractCommand;)V
invokevirtual rx.Observable.doOnUnsubscribe:(Lrx/functions/Action0;)Lrx/Observable;
4: aload 0
getfield com.netflix.hystrix.AbstractCommand.threadPool:Lcom/netflix/hystrix/HystrixThreadPool;
new com.netflix.hystrix.AbstractCommand$17
dup
aload 0
aload 1
invokespecial com.netflix.hystrix.AbstractCommand$17.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/AbstractCommand;)V
invokeinterface com.netflix.hystrix.HystrixThreadPool.getScheduler:(Lrx/functions/Func0;)Lrx/Scheduler;
invokevirtual rx.Observable.subscribeOn:(Lrx/Scheduler;)Lrx/Observable;
5: areturn
6: StackMap locals:
StackMap stack:
new com.netflix.hystrix.AbstractCommand$18
dup
aload 0
aload 1
invokespecial com.netflix.hystrix.AbstractCommand$18.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/AbstractCommand;)V
invokestatic rx.Observable.defer:(Lrx/functions/Func0;)Lrx/Observable;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 7 1 _cmd Lcom/netflix/hystrix/AbstractCommand<TR;>;
Signature: (Lcom/netflix/hystrix/AbstractCommand<TR;>;)Lrx/Observable<TR;>;
MethodParameters:
Name Flags
_cmd final
private rx.Observable<R> getFallbackOrThrowException(com.netflix.hystrix.AbstractCommand<R>, com.netflix.hystrix.HystrixEventType, com.netflix.hystrix.exception.HystrixRuntimeException$FailureType, java.lang.String, java.lang.Exception);
descriptor: (Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/HystrixEventType;Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/String;Ljava/lang/Exception;)Lrx/Observable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=18, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: invokestatic com.netflix.hystrix.strategy.concurrency.HystrixRequestContext.getContextForCurrentThread:()Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestContext;
astore 6
start local 6 1: invokestatic java.lang.System.currentTimeMillis:()J
aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.getStartTimestamp:()J
lsub
lstore 7
start local 7 2: aload 0
aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
lload 7
l2i
aload 2
invokevirtual com.netflix.hystrix.ExecutionResult.addEvent:(ILcom/netflix/hystrix/HystrixEventType;)Lcom/netflix/hystrix/ExecutionResult;
putfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
3: aload 0
aload 5
invokevirtual com.netflix.hystrix.AbstractCommand.shouldNotBeWrapped:(Ljava/lang/Throwable;)Z
ifeq 6
4: aload 0
aload 3
aload 5
invokevirtual com.netflix.hystrix.AbstractCommand.wrapWithOnErrorHook:(Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/Throwable;)Ljava/lang/Exception;
astore 9
start local 9 5: aload 9
invokestatic rx.Observable.error:(Ljava/lang/Throwable;)Lrx/Observable;
areturn
end local 9 6: StackMap locals: com.netflix.hystrix.strategy.concurrency.HystrixRequestContext long
StackMap stack:
aload 0
aload 5
invokevirtual com.netflix.hystrix.AbstractCommand.isUnrecoverable:(Ljava/lang/Throwable;)Z
ifeq 10
7: getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
ldc "Unrecoverable Error for HystrixCommand so will throw HystrixRuntimeException and not apply fallback. "
aload 5
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
8: aload 0
aload 3
aload 5
invokevirtual com.netflix.hystrix.AbstractCommand.wrapWithOnErrorHook:(Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/Throwable;)Ljava/lang/Exception;
astore 9
start local 9 9: new com.netflix.hystrix.exception.HystrixRuntimeException
dup
aload 3
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
new java.lang.StringBuilder
dup
aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getLogMessagePrefix:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " and encountered unrecoverable error."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 9
aconst_null
invokespecial com.netflix.hystrix.exception.HystrixRuntimeException.<init>:(Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Exception;Ljava/lang/Throwable;)V
invokestatic rx.Observable.error:(Ljava/lang/Throwable;)Lrx/Observable;
areturn
end local 9 10: StackMap locals:
StackMap stack:
aload 0
aload 5
invokevirtual com.netflix.hystrix.AbstractCommand.isRecoverableError:(Ljava/lang/Throwable;)Z
ifeq 12
11: getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
ldc "Recovered from java.lang.Error by serving Hystrix fallback"
aload 5
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
12: StackMap locals:
StackMap stack:
aload 0
getfield com.netflix.hystrix.AbstractCommand.properties:Lcom/netflix/hystrix/HystrixCommandProperties;
invokevirtual com.netflix.hystrix.HystrixCommandProperties.fallbackEnabled:()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
ifeq 40
13: new com.netflix.hystrix.AbstractCommand$19
dup
aload 0
aload 6
invokespecial com.netflix.hystrix.AbstractCommand$19.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestContext;)V
astore 9
start local 9 14: new com.netflix.hystrix.AbstractCommand$20
dup
aload 0
invokespecial com.netflix.hystrix.AbstractCommand$20.<init>:(Lcom/netflix/hystrix/AbstractCommand;)V
astore 10
start local 10 15: new com.netflix.hystrix.AbstractCommand$21
dup
aload 0
invokespecial com.netflix.hystrix.AbstractCommand$21.<init>:(Lcom/netflix/hystrix/AbstractCommand;)V
astore 11
start local 11 16: new com.netflix.hystrix.AbstractCommand$22
dup
aload 0
aload 5
aload 3
aload 1
aload 4
invokespecial com.netflix.hystrix.AbstractCommand$22.<init>:(Lcom/netflix/hystrix/AbstractCommand;Ljava/lang/Exception;Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Lcom/netflix/hystrix/AbstractCommand;Ljava/lang/String;)V
astore 12
start local 12 17: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getFallbackSemaphore:()Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
astore 13
start local 13 18: new java.util.concurrent.atomic.AtomicBoolean
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
astore 14
start local 14 19: new com.netflix.hystrix.AbstractCommand$23
dup
aload 0
aload 14
aload 13
invokespecial com.netflix.hystrix.AbstractCommand$23.<init>:(Lcom/netflix/hystrix/AbstractCommand;Ljava/util/concurrent/atomic/AtomicBoolean;Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;)V
astore 15
start local 15 20: aload 13
invokeinterface com.netflix.hystrix.AbstractCommand$TryableSemaphore.tryAcquire:()Z
ifeq 39
21: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.isFallbackUserDefined:()Z
ifeq 25
22: aload 0
getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
aload 0
invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onFallbackStart:(Lcom/netflix/hystrix/HystrixInvokable;)V
23: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getFallbackObservable:()Lrx/Observable;
astore 16
start local 16 24: goto 29
end local 16 25: StackMap locals: com.netflix.hystrix.AbstractCommand com.netflix.hystrix.AbstractCommand com.netflix.hystrix.HystrixEventType com.netflix.hystrix.exception.HystrixRuntimeException$FailureType java.lang.String java.lang.Exception com.netflix.hystrix.strategy.concurrency.HystrixRequestContext long rx.functions.Action1 rx.functions.Action1 rx.functions.Action0 rx.functions.Func1 com.netflix.hystrix.AbstractCommand$TryableSemaphore java.util.concurrent.atomic.AtomicBoolean rx.functions.Action0
StackMap stack:
aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getFallbackObservable:()Lrx/Observable;
astore 16
start local 16 26: goto 29
end local 16 StackMap locals:
StackMap stack: java.lang.Throwable
27: astore 17
start local 17 28: aload 17
invokestatic rx.Observable.error:(Ljava/lang/Throwable;)Lrx/Observable;
astore 16
end local 17 start local 16 29: StackMap locals: rx.Observable
StackMap stack:
aload 16
30: aload 9
invokevirtual rx.Observable.doOnEach:(Lrx/functions/Action1;)Lrx/Observable;
31: new com.netflix.hystrix.AbstractCommand$FallbackHookApplication
dup
aload 0
aload 1
invokespecial com.netflix.hystrix.AbstractCommand$FallbackHookApplication.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/HystrixInvokable;)V
invokevirtual rx.Observable.lift:(Lrx/Observable$Operator;)Lrx/Observable;
32: new com.netflix.hystrix.AbstractCommand$DeprecatedOnFallbackHookApplication
dup
aload 0
aload 1
invokespecial com.netflix.hystrix.AbstractCommand$DeprecatedOnFallbackHookApplication.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/HystrixInvokable;)V
invokevirtual rx.Observable.lift:(Lrx/Observable$Operator;)Lrx/Observable;
33: aload 10
invokevirtual rx.Observable.doOnNext:(Lrx/functions/Action1;)Lrx/Observable;
34: aload 11
invokevirtual rx.Observable.doOnCompleted:(Lrx/functions/Action0;)Lrx/Observable;
35: aload 12
invokevirtual rx.Observable.onErrorResumeNext:(Lrx/functions/Func1;)Lrx/Observable;
36: aload 15
invokevirtual rx.Observable.doOnTerminate:(Lrx/functions/Action0;)Lrx/Observable;
37: aload 15
invokevirtual rx.Observable.doOnUnsubscribe:(Lrx/functions/Action0;)Lrx/Observable;
38: areturn
end local 16 39: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.handleFallbackRejectionByEmittingError:()Lrx/Observable;
areturn
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 40: StackMap locals: com.netflix.hystrix.AbstractCommand com.netflix.hystrix.AbstractCommand com.netflix.hystrix.HystrixEventType com.netflix.hystrix.exception.HystrixRuntimeException$FailureType java.lang.String java.lang.Exception com.netflix.hystrix.strategy.concurrency.HystrixRequestContext long
StackMap stack:
aload 0
aload 5
aload 3
aload 4
invokevirtual com.netflix.hystrix.AbstractCommand.handleFallbackDisabledByEmittingError:(Ljava/lang/Exception;Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/String;)Lrx/Observable;
areturn
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 41 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 41 1 _cmd Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 41 2 eventType Lcom/netflix/hystrix/HystrixEventType;
0 41 3 failureType Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;
0 41 4 message Ljava/lang/String;
0 41 5 originalException Ljava/lang/Exception;
1 41 6 requestContext Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestContext;
2 41 7 latency J
5 6 9 e Ljava/lang/Exception;
9 10 9 e Ljava/lang/Exception;
14 40 9 setRequestContext Lrx/functions/Action1<Lrx/Notification<-TR;>;>;
15 40 10 markFallbackEmit Lrx/functions/Action1<TR;>;
16 40 11 markFallbackCompleted Lrx/functions/Action0;
17 40 12 handleFallbackError Lrx/functions/Func1<Ljava/lang/Throwable;Lrx/Observable<TR;>;>;
18 40 13 fallbackSemaphore Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
19 40 14 semaphoreHasBeenReleased Ljava/util/concurrent/atomic/AtomicBoolean;
20 40 15 singleSemaphoreRelease Lrx/functions/Action0;
24 25 16 fallbackExecutionChain Lrx/Observable<TR;>;
26 27 16 fallbackExecutionChain Lrx/Observable<TR;>;
29 39 16 fallbackExecutionChain Lrx/Observable<TR;>;
28 29 17 ex Ljava/lang/Throwable;
Exception table:
from to target type
21 26 27 Class java.lang.Throwable
Signature: (Lcom/netflix/hystrix/AbstractCommand<TR;>;Lcom/netflix/hystrix/HystrixEventType;Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/String;Ljava/lang/Exception;)Lrx/Observable<TR;>;
MethodParameters:
Name Flags
_cmd final
eventType final
failureType final
message final
originalException final
private rx.Observable<R> getUserExecutionObservable(com.netflix.hystrix.AbstractCommand<R>);
descriptor: (Lcom/netflix/hystrix/AbstractCommand;)Lrx/Observable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getExecutionObservable:()Lrx/Observable;
astore 2
start local 2 1: goto 4
end local 2 StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 3
start local 3 3: aload 3
invokestatic rx.Observable.error:(Ljava/lang/Throwable;)Lrx/Observable;
astore 2
end local 3 start local 2 4: StackMap locals: rx.Observable
StackMap stack:
aload 2
5: new com.netflix.hystrix.AbstractCommand$ExecutionHookApplication
dup
aload 0
aload 1
invokespecial com.netflix.hystrix.AbstractCommand$ExecutionHookApplication.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/HystrixInvokable;)V
invokevirtual rx.Observable.lift:(Lrx/Observable$Operator;)Lrx/Observable;
6: new com.netflix.hystrix.AbstractCommand$DeprecatedOnRunHookApplication
dup
aload 0
aload 1
invokespecial com.netflix.hystrix.AbstractCommand$DeprecatedOnRunHookApplication.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/HystrixInvokable;)V
invokevirtual rx.Observable.lift:(Lrx/Observable$Operator;)Lrx/Observable;
7: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 8 1 _cmd Lcom/netflix/hystrix/AbstractCommand<TR;>;
1 2 2 userObservable Lrx/Observable<TR;>;
4 8 2 userObservable Lrx/Observable<TR;>;
3 4 3 ex Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
Signature: (Lcom/netflix/hystrix/AbstractCommand<TR;>;)Lrx/Observable<TR;>;
MethodParameters:
Name Flags
_cmd final
private rx.Observable<R> handleRequestCacheHitAndEmitValues(com.netflix.hystrix.HystrixCommandResponseFromCache<R>, com.netflix.hystrix.AbstractCommand<R>);
descriptor: (Lcom/netflix/hystrix/HystrixCommandResponseFromCache;Lcom/netflix/hystrix/AbstractCommand;)Lrx/Observable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
aload 0
invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onCacheHit:(Lcom/netflix/hystrix/HystrixInvokable;)V
1: goto 4
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 3
start local 3 3: getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
ldc "Error calling HystrixCommandExecutionHook.onCacheHit"
aload 3
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 3 4: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual com.netflix.hystrix.HystrixCommandResponseFromCache.toObservableWithStateCopiedInto:(Lcom/netflix/hystrix/AbstractCommand;)Lrx/Observable;
5: new com.netflix.hystrix.AbstractCommand$24
dup
aload 0
invokespecial com.netflix.hystrix.AbstractCommand$24.<init>:(Lcom/netflix/hystrix/AbstractCommand;)V
invokevirtual rx.Observable.doOnTerminate:(Lrx/functions/Action0;)Lrx/Observable;
6: new com.netflix.hystrix.AbstractCommand$25
dup
aload 0
invokespecial com.netflix.hystrix.AbstractCommand$25.<init>:(Lcom/netflix/hystrix/AbstractCommand;)V
invokevirtual rx.Observable.doOnUnsubscribe:(Lrx/functions/Action0;)Lrx/Observable;
7: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 8 1 fromCache Lcom/netflix/hystrix/HystrixCommandResponseFromCache<TR;>;
0 8 2 _cmd Lcom/netflix/hystrix/AbstractCommand<TR;>;
3 4 3 hookEx Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
Signature: (Lcom/netflix/hystrix/HystrixCommandResponseFromCache<TR;>;Lcom/netflix/hystrix/AbstractCommand<TR;>;)Lrx/Observable<TR;>;
MethodParameters:
Name Flags
fromCache final
_cmd final
private void cleanUpAfterResponseFromCache(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.timeoutTimer:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast java.lang.ref.Reference
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 2
invokevirtual java.lang.ref.Reference.clear:()V
3: StackMap locals: java.lang.ref.Reference
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandStartTimestamp:J
lsub
lstore 3
start local 3 4: aload 0
aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
5: iconst_m1
getstatic com.netflix.hystrix.HystrixEventType.RESPONSE_FROM_CACHE:Lcom/netflix/hystrix/HystrixEventType;
invokevirtual com.netflix.hystrix.ExecutionResult.addEvent:(ILcom/netflix/hystrix/HystrixEventType;)Lcom/netflix/hystrix/ExecutionResult;
6: lload 3
invokevirtual com.netflix.hystrix.ExecutionResult.markUserThreadCompletion:(J)Lcom/netflix/hystrix/ExecutionResult;
7: invokevirtual com.netflix.hystrix.ExecutionResult.setNotExecutedInThread:()Lcom/netflix/hystrix/ExecutionResult;
8: putfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
9: iconst_1
anewarray com.netflix.hystrix.HystrixEventType
dup
iconst_0
getstatic com.netflix.hystrix.HystrixEventType.RESPONSE_FROM_CACHE:Lcom/netflix/hystrix/HystrixEventType;
aastore
invokestatic com.netflix.hystrix.ExecutionResult.from:([Lcom/netflix/hystrix/HystrixEventType;)Lcom/netflix/hystrix/ExecutionResult;
10: lload 3
invokevirtual com.netflix.hystrix.ExecutionResult.markUserThreadCompletion:(J)Lcom/netflix/hystrix/ExecutionResult;
11: astore 5
start local 5 12: aload 0
getfield com.netflix.hystrix.AbstractCommand.metrics:Lcom/netflix/hystrix/HystrixCommandMetrics;
aload 5
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
aload 0
getfield com.netflix.hystrix.AbstractCommand.threadPoolKey:Lcom/netflix/hystrix/HystrixThreadPoolKey;
iload 1
invokevirtual com.netflix.hystrix.HystrixCommandMetrics.markCommandDone:(Lcom/netflix/hystrix/ExecutionResult;Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixThreadPoolKey;Z)V
13: aload 0
getfield com.netflix.hystrix.AbstractCommand.eventNotifier:Lcom/netflix/hystrix/strategy/eventnotifier/HystrixEventNotifier;
getstatic com.netflix.hystrix.HystrixEventType.RESPONSE_FROM_CACHE:Lcom/netflix/hystrix/HystrixEventType;
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
invokevirtual com.netflix.hystrix.strategy.eventnotifier.HystrixEventNotifier.markEvent:(Lcom/netflix/hystrix/HystrixEventType;Lcom/netflix/hystrix/HystrixCommandKey;)V
14: return
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 15 1 commandExecutionStarted Z
1 15 2 tl Ljava/lang/ref/Reference<Lcom/netflix/hystrix/util/HystrixTimer$TimerListener;>;
4 15 3 latency J
12 15 5 cacheOnlyForMetrics Lcom/netflix/hystrix/ExecutionResult;
MethodParameters:
Name Flags
commandExecutionStarted
private void handleCommandEnd(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.timeoutTimer:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast java.lang.ref.Reference
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 2
invokevirtual java.lang.ref.Reference.clear:()V
3: StackMap locals: java.lang.ref.Reference
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandStartTimestamp:J
lsub
lstore 3
start local 3 4: aload 0
aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
lload 3
l2i
i2l
invokevirtual com.netflix.hystrix.ExecutionResult.markUserThreadCompletion:(J)Lcom/netflix/hystrix/ExecutionResult;
putfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
5: aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResultAtTimeOfCancellation:Lcom/netflix/hystrix/ExecutionResult;
ifnonnull 8
6: aload 0
getfield com.netflix.hystrix.AbstractCommand.metrics:Lcom/netflix/hystrix/HystrixCommandMetrics;
aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
aload 0
getfield com.netflix.hystrix.AbstractCommand.threadPoolKey:Lcom/netflix/hystrix/HystrixThreadPoolKey;
iload 1
invokevirtual com.netflix.hystrix.HystrixCommandMetrics.markCommandDone:(Lcom/netflix/hystrix/ExecutionResult;Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixThreadPoolKey;Z)V
7: goto 9
8: StackMap locals: long
StackMap stack:
aload 0
getfield com.netflix.hystrix.AbstractCommand.metrics:Lcom/netflix/hystrix/HystrixCommandMetrics;
aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResultAtTimeOfCancellation:Lcom/netflix/hystrix/ExecutionResult;
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
aload 0
getfield com.netflix.hystrix.AbstractCommand.threadPoolKey:Lcom/netflix/hystrix/HystrixThreadPoolKey;
iload 1
invokevirtual com.netflix.hystrix.HystrixCommandMetrics.markCommandDone:(Lcom/netflix/hystrix/ExecutionResult;Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixThreadPoolKey;Z)V
9: StackMap locals:
StackMap stack:
aload 0
getfield com.netflix.hystrix.AbstractCommand.endCurrentThreadExecutingCommand:Lrx/functions/Action0;
ifnull 11
10: aload 0
getfield com.netflix.hystrix.AbstractCommand.endCurrentThreadExecutingCommand:Lrx/functions/Action0;
invokeinterface rx.functions.Action0.call:()V
11: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 12 1 commandExecutionStarted Z
1 12 2 tl Ljava/lang/ref/Reference<Lcom/netflix/hystrix/util/HystrixTimer$TimerListener;>;
4 12 3 userThreadLatency J
MethodParameters:
Name Flags
commandExecutionStarted
private rx.Observable<R> handleSemaphoreRejectionViaFallback();
descriptor: ()Lrx/Observable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=1
start local 0 0: new java.lang.RuntimeException
dup
ldc "could not acquire a semaphore for execution"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: aload 0
aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
aload 1
invokevirtual com.netflix.hystrix.ExecutionResult.setExecutionException:(Ljava/lang/Exception;)Lcom/netflix/hystrix/ExecutionResult;
putfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
2: aload 0
getfield com.netflix.hystrix.AbstractCommand.eventNotifier:Lcom/netflix/hystrix/strategy/eventnotifier/HystrixEventNotifier;
getstatic com.netflix.hystrix.HystrixEventType.SEMAPHORE_REJECTED:Lcom/netflix/hystrix/HystrixEventType;
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
invokevirtual com.netflix.hystrix.strategy.eventnotifier.HystrixEventNotifier.markEvent:(Lcom/netflix/hystrix/HystrixEventType;Lcom/netflix/hystrix/HystrixCommandKey;)V
3: getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
ldc "HystrixCommand Execution Rejection by Semaphore."
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
4: aload 0
aload 0
getstatic com.netflix.hystrix.HystrixEventType.SEMAPHORE_REJECTED:Lcom/netflix/hystrix/HystrixEventType;
getstatic com.netflix.hystrix.exception.HystrixRuntimeException$FailureType.REJECTED_SEMAPHORE_EXECUTION:Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;
5: ldc "could not acquire a semaphore for execution"
aload 1
6: invokevirtual com.netflix.hystrix.AbstractCommand.getFallbackOrThrowException:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/HystrixEventType;Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/String;Ljava/lang/Exception;)Lrx/Observable;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
1 7 1 semaphoreRejectionException Ljava/lang/Exception;
Signature: ()Lrx/Observable<TR;>;
private rx.Observable<R> handleShortCircuitViaFallback();
descriptor: ()Lrx/Observable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.eventNotifier:Lcom/netflix/hystrix/strategy/eventnotifier/HystrixEventNotifier;
getstatic com.netflix.hystrix.HystrixEventType.SHORT_CIRCUITED:Lcom/netflix/hystrix/HystrixEventType;
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
invokevirtual com.netflix.hystrix.strategy.eventnotifier.HystrixEventNotifier.markEvent:(Lcom/netflix/hystrix/HystrixEventType;Lcom/netflix/hystrix/HystrixCommandKey;)V
1: new java.lang.RuntimeException
dup
ldc "Hystrix circuit short-circuited and is OPEN"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
astore 1
start local 1 2: aload 0
aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
aload 1
invokevirtual com.netflix.hystrix.ExecutionResult.setExecutionException:(Ljava/lang/Exception;)Lcom/netflix/hystrix/ExecutionResult;
putfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
3: aload 0
aload 0
getstatic com.netflix.hystrix.HystrixEventType.SHORT_CIRCUITED:Lcom/netflix/hystrix/HystrixEventType;
getstatic com.netflix.hystrix.exception.HystrixRuntimeException$FailureType.SHORTCIRCUIT:Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;
4: ldc "short-circuited"
aload 1
5: invokevirtual com.netflix.hystrix.AbstractCommand.getFallbackOrThrowException:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/HystrixEventType;Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/String;Ljava/lang/Exception;)Lrx/Observable;
6: areturn
7: StackMap locals: com.netflix.hystrix.AbstractCommand java.lang.Exception
StackMap stack: java.lang.Exception
astore 2
start local 2 8: aload 2
invokestatic rx.Observable.error:(Ljava/lang/Throwable;)Lrx/Observable;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
2 9 1 shortCircuitException Ljava/lang/Exception;
8 9 2 e Ljava/lang/Exception;
Exception table:
from to target type
3 6 7 Class java.lang.Exception
Signature: ()Lrx/Observable<TR;>;
private rx.Observable<R> handleThreadPoolRejectionViaFallback(java.lang.Exception);
descriptor: (Ljava/lang/Exception;)Lrx/Observable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.eventNotifier:Lcom/netflix/hystrix/strategy/eventnotifier/HystrixEventNotifier;
getstatic com.netflix.hystrix.HystrixEventType.THREAD_POOL_REJECTED:Lcom/netflix/hystrix/HystrixEventType;
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
invokevirtual com.netflix.hystrix.strategy.eventnotifier.HystrixEventNotifier.markEvent:(Lcom/netflix/hystrix/HystrixEventType;Lcom/netflix/hystrix/HystrixCommandKey;)V
1: aload 0
getfield com.netflix.hystrix.AbstractCommand.threadPool:Lcom/netflix/hystrix/HystrixThreadPool;
invokeinterface com.netflix.hystrix.HystrixThreadPool.markThreadRejection:()V
2: aload 0
aload 0
getstatic com.netflix.hystrix.HystrixEventType.THREAD_POOL_REJECTED:Lcom/netflix/hystrix/HystrixEventType;
getstatic com.netflix.hystrix.exception.HystrixRuntimeException$FailureType.REJECTED_THREAD_EXECUTION:Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;
ldc "could not be queued for execution"
aload 1
invokevirtual com.netflix.hystrix.AbstractCommand.getFallbackOrThrowException:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/HystrixEventType;Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/String;Ljava/lang/Exception;)Lrx/Observable;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 3 1 underlying Ljava/lang/Exception;
Signature: (Ljava/lang/Exception;)Lrx/Observable<TR;>;
MethodParameters:
Name Flags
underlying
private rx.Observable<R> handleTimeoutViaFallback();
descriptor: ()Lrx/Observable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getstatic com.netflix.hystrix.HystrixEventType.TIMEOUT:Lcom/netflix/hystrix/HystrixEventType;
getstatic com.netflix.hystrix.exception.HystrixRuntimeException$FailureType.TIMEOUT:Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;
ldc "timed-out"
new java.util.concurrent.TimeoutException
dup
invokespecial java.util.concurrent.TimeoutException.<init>:()V
invokevirtual com.netflix.hystrix.AbstractCommand.getFallbackOrThrowException:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/HystrixEventType;Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/String;Ljava/lang/Exception;)Lrx/Observable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
Signature: ()Lrx/Observable<TR;>;
private rx.Observable<R> handleBadRequestByEmittingError(java.lang.Exception);
descriptor: (Ljava/lang/Exception;)Lrx/Observable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 1
astore 2
start local 2 1: invokestatic java.lang.System.currentTimeMillis:()J
aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.getStartTimestamp:()J
lsub
lstore 3
start local 3 2: aload 0
getfield com.netflix.hystrix.AbstractCommand.eventNotifier:Lcom/netflix/hystrix/strategy/eventnotifier/HystrixEventNotifier;
getstatic com.netflix.hystrix.HystrixEventType.BAD_REQUEST:Lcom/netflix/hystrix/HystrixEventType;
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
invokevirtual com.netflix.hystrix.strategy.eventnotifier.HystrixEventNotifier.markEvent:(Lcom/netflix/hystrix/HystrixEventType;Lcom/netflix/hystrix/HystrixCommandKey;)V
3: aload 0
aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
lload 3
l2i
getstatic com.netflix.hystrix.HystrixEventType.BAD_REQUEST:Lcom/netflix/hystrix/HystrixEventType;
invokevirtual com.netflix.hystrix.ExecutionResult.addEvent:(ILcom/netflix/hystrix/HystrixEventType;)Lcom/netflix/hystrix/ExecutionResult;
putfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
4: aload 0
getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
aload 0
getstatic com.netflix.hystrix.exception.HystrixRuntimeException$FailureType.BAD_REQUEST_EXCEPTION:Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;
aload 1
invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onError:(Lcom/netflix/hystrix/HystrixInvokable;Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/Exception;)Ljava/lang/Exception;
astore 5
start local 5 5: aload 5
instanceof com.netflix.hystrix.exception.HystrixBadRequestException
ifeq 8
6: aload 5
astore 2
7: goto 12
8: StackMap locals: java.lang.Exception long java.lang.Exception
StackMap stack:
getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
ldc "ExecutionHook.onError returned an exception that was not an instance of HystrixBadRequestException so will be ignored."
aload 5
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 5 end local 3 9: goto 12
StackMap locals: com.netflix.hystrix.AbstractCommand java.lang.Exception java.lang.Exception
StackMap stack: java.lang.Exception
10: astore 3
start local 3 11: getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
ldc "Error calling HystrixCommandExecutionHook.onError"
aload 3
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 3 12: StackMap locals:
StackMap stack:
aload 2
invokestatic rx.Observable.error:(Ljava/lang/Throwable;)Lrx/Observable;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 13 1 underlying Ljava/lang/Exception;
1 13 2 toEmit Ljava/lang/Exception;
2 9 3 executionLatency J
5 9 5 decorated Ljava/lang/Exception;
11 12 3 hookEx Ljava/lang/Exception;
Exception table:
from to target type
1 9 10 Class java.lang.Exception
Signature: (Ljava/lang/Exception;)Lrx/Observable<TR;>;
MethodParameters:
Name Flags
underlying
private rx.Observable<R> handleFailureViaFallback(java.lang.Exception);
descriptor: (Ljava/lang/Exception;)Lrx/Observable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
ldc "Error executing HystrixCommand.run(). Proceeding to fallback logic ..."
aload 1
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
1: aload 0
getfield com.netflix.hystrix.AbstractCommand.eventNotifier:Lcom/netflix/hystrix/strategy/eventnotifier/HystrixEventNotifier;
getstatic com.netflix.hystrix.HystrixEventType.FAILURE:Lcom/netflix/hystrix/HystrixEventType;
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
invokevirtual com.netflix.hystrix.strategy.eventnotifier.HystrixEventNotifier.markEvent:(Lcom/netflix/hystrix/HystrixEventType;Lcom/netflix/hystrix/HystrixCommandKey;)V
2: aload 0
aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
aload 1
invokevirtual com.netflix.hystrix.ExecutionResult.setException:(Ljava/lang/Exception;)Lcom/netflix/hystrix/ExecutionResult;
putfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
3: aload 0
aload 0
getstatic com.netflix.hystrix.HystrixEventType.FAILURE:Lcom/netflix/hystrix/HystrixEventType;
getstatic com.netflix.hystrix.exception.HystrixRuntimeException$FailureType.COMMAND_EXCEPTION:Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;
ldc "failed"
aload 1
invokevirtual com.netflix.hystrix.AbstractCommand.getFallbackOrThrowException:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/HystrixEventType;Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/String;Ljava/lang/Exception;)Lrx/Observable;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 4 1 underlying Ljava/lang/Exception;
Signature: (Ljava/lang/Exception;)Lrx/Observable<TR;>;
MethodParameters:
Name Flags
underlying
private rx.Observable<R> handleFallbackRejectionByEmittingError();
descriptor: ()Lrx/Observable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=1
start local 0 0: invokestatic java.lang.System.currentTimeMillis:()J
aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.getStartTimestamp:()J
lsub
lstore 1
start local 1 1: aload 0
getfield com.netflix.hystrix.AbstractCommand.eventNotifier:Lcom/netflix/hystrix/strategy/eventnotifier/HystrixEventNotifier;
getstatic com.netflix.hystrix.HystrixEventType.FALLBACK_REJECTION:Lcom/netflix/hystrix/HystrixEventType;
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
invokevirtual com.netflix.hystrix.strategy.eventnotifier.HystrixEventNotifier.markEvent:(Lcom/netflix/hystrix/HystrixEventType;Lcom/netflix/hystrix/HystrixCommandKey;)V
2: aload 0
aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
lload 1
l2i
getstatic com.netflix.hystrix.HystrixEventType.FALLBACK_REJECTION:Lcom/netflix/hystrix/HystrixEventType;
invokevirtual com.netflix.hystrix.ExecutionResult.addEvent:(ILcom/netflix/hystrix/HystrixEventType;)Lcom/netflix/hystrix/ExecutionResult;
putfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
3: getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
ldc "HystrixCommand Fallback Rejection."
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
4: new com.netflix.hystrix.exception.HystrixRuntimeException
dup
getstatic com.netflix.hystrix.exception.HystrixRuntimeException$FailureType.REJECTED_SEMAPHORE_FALLBACK:Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
new java.lang.StringBuilder
dup
aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getLogMessagePrefix:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " fallback execution rejected."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aconst_null
aconst_null
invokespecial com.netflix.hystrix.exception.HystrixRuntimeException.<init>:(Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Exception;Ljava/lang/Throwable;)V
invokestatic rx.Observable.error:(Ljava/lang/Throwable;)Lrx/Observable;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
1 5 1 latencyWithFallback J
Signature: ()Lrx/Observable<TR;>;
private rx.Observable<R> handleFallbackDisabledByEmittingError(java.lang.Exception, com.netflix.hystrix.exception.HystrixRuntimeException$FailureType, java.lang.String);
descriptor: (Ljava/lang/Exception;Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/String;)Lrx/Observable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
ldc "Fallback disabled for HystrixCommand so will throw HystrixRuntimeException. "
aload 1
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
1: aload 0
aload 2
aload 1
invokevirtual com.netflix.hystrix.AbstractCommand.wrapWithOnErrorHook:(Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/Throwable;)Ljava/lang/Exception;
astore 4
start local 4 2: new com.netflix.hystrix.exception.HystrixRuntimeException
dup
aload 2
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
new java.lang.StringBuilder
dup
aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getLogMessagePrefix:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " and fallback disabled."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
aconst_null
invokespecial com.netflix.hystrix.exception.HystrixRuntimeException.<init>:(Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Exception;Ljava/lang/Throwable;)V
invokestatic rx.Observable.error:(Ljava/lang/Throwable;)Lrx/Observable;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 3 1 underlying Ljava/lang/Exception;
0 3 2 failureType Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;
0 3 3 message Ljava/lang/String;
2 3 4 wrapped Ljava/lang/Exception;
Signature: (Ljava/lang/Exception;Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/String;)Lrx/Observable<TR;>;
MethodParameters:
Name Flags
underlying
failureType
message
protected boolean shouldNotBeWrapped(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof com.netflix.hystrix.exception.ExceptionNotWrappedByHystrix
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 1 1 underlying Ljava/lang/Throwable;
MethodParameters:
Name Flags
underlying
private boolean isUnrecoverable(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnull 10
aload 1
invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
ifnull 10
1: aload 1
invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
astore 2
start local 2 2: aload 2
instanceof java.lang.StackOverflowError
ifeq 4
3: iconst_1
ireturn
4: StackMap locals: java.lang.Throwable
StackMap stack:
aload 2
instanceof java.lang.VirtualMachineError
ifeq 6
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
aload 2
instanceof java.lang.ThreadDeath
ifeq 8
7: iconst_1
ireturn
8: StackMap locals:
StackMap stack:
aload 2
instanceof java.lang.LinkageError
ifeq 10
9: iconst_1
ireturn
end local 2 10: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 11 1 t Ljava/lang/Throwable;
2 10 2 cause Ljava/lang/Throwable;
MethodParameters:
Name Flags
t
private boolean isRecoverableError(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnull 6
aload 1
invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
ifnull 6
1: aload 1
invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
astore 2
start local 2 2: aload 2
instanceof java.lang.Error
ifeq 6
3: aload 0
aload 1
invokevirtual com.netflix.hystrix.AbstractCommand.isUnrecoverable:(Ljava/lang/Throwable;)Z
ifeq 4
iconst_0
goto 5
StackMap locals: java.lang.Throwable
StackMap stack:
4: iconst_1
StackMap locals:
StackMap stack: int
5: ireturn
end local 2 6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 7 1 t Ljava/lang/Throwable;
2 6 2 cause Ljava/lang/Throwable;
MethodParameters:
Name Flags
t
protected void handleThreadEnd(com.netflix.hystrix.AbstractCommand<R>);
descriptor: (Lcom/netflix/hystrix/AbstractCommand;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: invokestatic com.netflix.hystrix.HystrixCounters.decrementGlobalConcurrentThreads:()I
pop
1: aload 0
getfield com.netflix.hystrix.AbstractCommand.threadPool:Lcom/netflix/hystrix/HystrixThreadPool;
invokeinterface com.netflix.hystrix.HystrixThreadPool.markThreadCompletion:()V
2: aload 0
getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
aload 1
invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onThreadComplete:(Lcom/netflix/hystrix/HystrixInvokable;)V
3: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 2
start local 2 5: getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
ldc "Error calling HystrixCommandExecutionHook.onThreadComplete"
aload 2
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 2 6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 7 1 _cmd Lcom/netflix/hystrix/AbstractCommand<TR;>;
5 6 2 hookEx Ljava/lang/Throwable;
Exception table:
from to target type
2 3 4 Class java.lang.Throwable
Signature: (Lcom/netflix/hystrix/AbstractCommand<TR;>;)V
MethodParameters:
Name Flags
_cmd
protected boolean shouldOutputOnNextEvents();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
private static void setRequestContextIfNeeded(com.netflix.hystrix.strategy.concurrency.HystrixRequestContext);
descriptor: (Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestContext;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic com.netflix.hystrix.strategy.concurrency.HystrixRequestContext.isCurrentThreadInitialized:()Z
ifne 2
1: aload 0
invokestatic com.netflix.hystrix.strategy.concurrency.HystrixRequestContext.setContextOnCurrentThread:(Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestContext;)V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 currentRequestContext Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestContext;
MethodParameters:
Name Flags
currentRequestContext final
protected com.netflix.hystrix.AbstractCommand$TryableSemaphore getFallbackSemaphore();
descriptor: ()Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.fallbackSemaphoreOverride:Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
ifnonnull 6
1: getstatic com.netflix.hystrix.AbstractCommand.fallbackSemaphorePerCircuit:Ljava/util/concurrent/ConcurrentHashMap;
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
invokeinterface com.netflix.hystrix.HystrixCommandKey.name:()Ljava/lang/String;
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.netflix.hystrix.AbstractCommand$TryableSemaphore
astore 1
start local 1 2: aload 1
ifnonnull 5
3: getstatic com.netflix.hystrix.AbstractCommand.fallbackSemaphorePerCircuit:Ljava/util/concurrent/ConcurrentHashMap;
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
invokeinterface com.netflix.hystrix.HystrixCommandKey.name:()Ljava/lang/String;
new com.netflix.hystrix.AbstractCommand$TryableSemaphoreActual
dup
aload 0
getfield com.netflix.hystrix.AbstractCommand.properties:Lcom/netflix/hystrix/HystrixCommandProperties;
invokevirtual com.netflix.hystrix.HystrixCommandProperties.fallbackIsolationSemaphoreMaxConcurrentRequests:()Lcom/netflix/hystrix/strategy/properties/HystrixProperty;
invokespecial com.netflix.hystrix.AbstractCommand$TryableSemaphoreActual.<init>:(Lcom/netflix/hystrix/strategy/properties/HystrixProperty;)V
invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: getstatic com.netflix.hystrix.AbstractCommand.fallbackSemaphorePerCircuit:Ljava/util/concurrent/ConcurrentHashMap;
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
invokeinterface com.netflix.hystrix.HystrixCommandKey.name:()Ljava/lang/String;
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.netflix.hystrix.AbstractCommand$TryableSemaphore
areturn
5: StackMap locals: com.netflix.hystrix.AbstractCommand$TryableSemaphore
StackMap stack:
aload 1
areturn
end local 1 6: StackMap locals:
StackMap stack:
aload 0
getfield com.netflix.hystrix.AbstractCommand.fallbackSemaphoreOverride:Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
2 6 1 _s Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
protected com.netflix.hystrix.AbstractCommand$TryableSemaphore getExecutionSemaphore();
descriptor: ()Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.properties:Lcom/netflix/hystrix/HystrixCommandProperties;
invokevirtual com.netflix.hystrix.HystrixCommandProperties.executionIsolationStrategy:()Lcom/netflix/hystrix/strategy/properties/HystrixProperty;
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
getstatic com.netflix.hystrix.HystrixCommandProperties$ExecutionIsolationStrategy.SEMAPHORE:Lcom/netflix/hystrix/HystrixCommandProperties$ExecutionIsolationStrategy;
if_acmpne 8
1: aload 0
getfield com.netflix.hystrix.AbstractCommand.executionSemaphoreOverride:Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
ifnonnull 7
2: getstatic com.netflix.hystrix.AbstractCommand.executionSemaphorePerCircuit:Ljava/util/concurrent/ConcurrentHashMap;
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
invokeinterface com.netflix.hystrix.HystrixCommandKey.name:()Ljava/lang/String;
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.netflix.hystrix.AbstractCommand$TryableSemaphore
astore 1
start local 1 3: aload 1
ifnonnull 6
4: getstatic com.netflix.hystrix.AbstractCommand.executionSemaphorePerCircuit:Ljava/util/concurrent/ConcurrentHashMap;
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
invokeinterface com.netflix.hystrix.HystrixCommandKey.name:()Ljava/lang/String;
new com.netflix.hystrix.AbstractCommand$TryableSemaphoreActual
dup
aload 0
getfield com.netflix.hystrix.AbstractCommand.properties:Lcom/netflix/hystrix/HystrixCommandProperties;
invokevirtual com.netflix.hystrix.HystrixCommandProperties.executionIsolationSemaphoreMaxConcurrentRequests:()Lcom/netflix/hystrix/strategy/properties/HystrixProperty;
invokespecial com.netflix.hystrix.AbstractCommand$TryableSemaphoreActual.<init>:(Lcom/netflix/hystrix/strategy/properties/HystrixProperty;)V
invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: getstatic com.netflix.hystrix.AbstractCommand.executionSemaphorePerCircuit:Ljava/util/concurrent/ConcurrentHashMap;
aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
invokeinterface com.netflix.hystrix.HystrixCommandKey.name:()Ljava/lang/String;
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.netflix.hystrix.AbstractCommand$TryableSemaphore
areturn
6: StackMap locals: com.netflix.hystrix.AbstractCommand$TryableSemaphore
StackMap stack:
aload 1
areturn
end local 1 7: StackMap locals:
StackMap stack:
aload 0
getfield com.netflix.hystrix.AbstractCommand.executionSemaphoreOverride:Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
areturn
8: StackMap locals:
StackMap stack:
getstatic com.netflix.hystrix.AbstractCommand$TryableSemaphoreNoOp.DEFAULT:Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
3 7 1 _s Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
protected abstract java.lang.String getFallbackMethodName();
descriptor: ()Ljava/lang/String;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
RuntimeVisibleAnnotations:
java.lang.Deprecated()
protected abstract boolean isFallbackUserDefined();
descriptor: ()Z
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
public com.netflix.hystrix.HystrixCommandGroupKey getCommandGroup();
descriptor: ()Lcom/netflix/hystrix/HystrixCommandGroupKey;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.commandGroup:Lcom/netflix/hystrix/HystrixCommandGroupKey;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public com.netflix.hystrix.HystrixCommandKey getCommandKey();
descriptor: ()Lcom/netflix/hystrix/HystrixCommandKey;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public com.netflix.hystrix.HystrixThreadPoolKey getThreadPoolKey();
descriptor: ()Lcom/netflix/hystrix/HystrixThreadPoolKey;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.threadPoolKey:Lcom/netflix/hystrix/HystrixThreadPoolKey;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
com.netflix.hystrix.HystrixCircuitBreaker getCircuitBreaker();
descriptor: ()Lcom/netflix/hystrix/HystrixCircuitBreaker;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.circuitBreaker:Lcom/netflix/hystrix/HystrixCircuitBreaker;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public com.netflix.hystrix.HystrixCommandMetrics getMetrics();
descriptor: ()Lcom/netflix/hystrix/HystrixCommandMetrics;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.metrics:Lcom/netflix/hystrix/HystrixCommandMetrics;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public com.netflix.hystrix.HystrixCommandProperties getProperties();
descriptor: ()Lcom/netflix/hystrix/HystrixCommandProperties;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.properties:Lcom/netflix/hystrix/HystrixCommandProperties;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
private java.lang.Exception wrapWithOnExecutionErrorHook(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Ljava/lang/Exception;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.netflix.hystrix.AbstractCommand.getExceptionFromThrowable:(Ljava/lang/Throwable;)Ljava/lang/Exception;
astore 2
start local 2 1: aload 0
getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
aload 0
aload 2
invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onExecutionError:(Lcom/netflix/hystrix/HystrixInvokable;Ljava/lang/Exception;)Ljava/lang/Exception;
2: areturn
3: StackMap locals: com.netflix.hystrix.AbstractCommand java.lang.Throwable java.lang.Exception
StackMap stack: java.lang.Throwable
astore 3
start local 3 4: getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
ldc "Error calling HystrixCommandExecutionHook.onExecutionError"
aload 3
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
5: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 6 1 t Ljava/lang/Throwable;
1 6 2 e Ljava/lang/Exception;
4 6 3 hookEx Ljava/lang/Throwable;
Exception table:
from to target type
1 2 3 Class java.lang.Throwable
MethodParameters:
Name Flags
t
private java.lang.Exception wrapWithOnFallbackErrorHook(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Ljava/lang/Exception;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.netflix.hystrix.AbstractCommand.getExceptionFromThrowable:(Ljava/lang/Throwable;)Ljava/lang/Exception;
astore 2
start local 2 1: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.isFallbackUserDefined:()Z
ifeq 4
2: aload 0
getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
aload 0
aload 2
invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onFallbackError:(Lcom/netflix/hystrix/HystrixInvokable;Ljava/lang/Exception;)Ljava/lang/Exception;
3: areturn
4: StackMap locals: java.lang.Exception
StackMap stack:
aload 2
5: areturn
6: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
start local 3 7: getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
ldc "Error calling HystrixCommandExecutionHook.onFallbackError"
aload 3
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
8: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 9 1 t Ljava/lang/Throwable;
1 9 2 e Ljava/lang/Exception;
7 9 3 hookEx Ljava/lang/Throwable;
Exception table:
from to target type
1 3 6 Class java.lang.Throwable
4 5 6 Class java.lang.Throwable
MethodParameters:
Name Flags
t
private java.lang.Exception wrapWithOnErrorHook(com.netflix.hystrix.exception.HystrixRuntimeException$FailureType, java.lang.Throwable);
descriptor: (Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/Throwable;)Ljava/lang/Exception;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual com.netflix.hystrix.AbstractCommand.getExceptionFromThrowable:(Ljava/lang/Throwable;)Ljava/lang/Exception;
astore 3
start local 3 1: aload 0
getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
aload 0
aload 1
aload 3
invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onError:(Lcom/netflix/hystrix/HystrixInvokable;Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/Exception;)Ljava/lang/Exception;
2: areturn
3: StackMap locals: com.netflix.hystrix.AbstractCommand com.netflix.hystrix.exception.HystrixRuntimeException$FailureType java.lang.Throwable java.lang.Exception
StackMap stack: java.lang.Throwable
astore 4
start local 4 4: getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
ldc "Error calling HystrixCommandExecutionHook.onError"
aload 4
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
5: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 6 1 failureType Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;
0 6 2 t Ljava/lang/Throwable;
1 6 3 e Ljava/lang/Exception;
4 6 4 hookEx Ljava/lang/Throwable;
Exception table:
from to target type
1 2 3 Class java.lang.Throwable
MethodParameters:
Name Flags
failureType
t
private R wrapWithOnExecutionEmitHook();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
aload 0
aload 1
invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onExecutionEmit:(Lcom/netflix/hystrix/HystrixInvokable;Ljava/lang/Object;)Ljava/lang/Object;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
start local 2 3: getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
ldc "Error calling HystrixCommandExecutionHook.onExecutionEmit"
aload 2
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
4: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 5 1 r TR;
3 5 2 hookEx Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
Signature: (TR;)TR;
MethodParameters:
Name Flags
r
private R wrapWithOnFallbackEmitHook();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
aload 0
aload 1
invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onFallbackEmit:(Lcom/netflix/hystrix/HystrixInvokable;Ljava/lang/Object;)Ljava/lang/Object;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
start local 2 3: getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
ldc "Error calling HystrixCommandExecutionHook.onFallbackEmit"
aload 2
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
4: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 5 1 r TR;
3 5 2 hookEx Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
Signature: (TR;)TR;
MethodParameters:
Name Flags
r
private R wrapWithOnEmitHook();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
aload 0
aload 1
invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onEmit:(Lcom/netflix/hystrix/HystrixInvokable;Ljava/lang/Object;)Ljava/lang/Object;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
start local 2 3: getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
ldc "Error calling HystrixCommandExecutionHook.onEmit"
aload 2
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
4: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 5 1 r TR;
3 5 2 hookEx Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
Signature: (TR;)TR;
MethodParameters:
Name Flags
r
protected java.lang.Throwable decomposeException(java.lang.Exception);
descriptor: (Ljava/lang/Exception;)Ljava/lang/Throwable;
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof java.lang.IllegalStateException
ifeq 2
1: aload 1
checkcast java.lang.IllegalStateException
areturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof com.netflix.hystrix.exception.HystrixBadRequestException
ifeq 6
3: aload 0
aload 1
invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
invokevirtual com.netflix.hystrix.AbstractCommand.shouldNotBeWrapped:(Ljava/lang/Throwable;)Z
ifeq 5
4: aload 1
invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
areturn
5: StackMap locals:
StackMap stack:
aload 1
checkcast com.netflix.hystrix.exception.HystrixBadRequestException
areturn
6: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
instanceof com.netflix.hystrix.exception.HystrixBadRequestException
ifeq 10
7: aload 0
aload 1
invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
invokevirtual com.netflix.hystrix.AbstractCommand.shouldNotBeWrapped:(Ljava/lang/Throwable;)Z
ifeq 9
8: aload 1
invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
areturn
9: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
checkcast com.netflix.hystrix.exception.HystrixBadRequestException
areturn
10: StackMap locals:
StackMap stack:
aload 1
instanceof com.netflix.hystrix.exception.HystrixRuntimeException
ifeq 12
11: aload 1
checkcast com.netflix.hystrix.exception.HystrixRuntimeException
areturn
12: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
instanceof com.netflix.hystrix.exception.HystrixRuntimeException
ifeq 14
13: aload 1
invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
checkcast com.netflix.hystrix.exception.HystrixRuntimeException
areturn
14: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.netflix.hystrix.AbstractCommand.shouldNotBeWrapped:(Ljava/lang/Throwable;)Z
ifeq 16
15: aload 1
areturn
16: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
invokevirtual com.netflix.hystrix.AbstractCommand.shouldNotBeWrapped:(Ljava/lang/Throwable;)Z
ifeq 18
17: aload 1
invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
areturn
18: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getLogMessagePrefix:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " failed while executing."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 19: getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
aload 2
aload 1
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
20: new com.netflix.hystrix.exception.HystrixRuntimeException
dup
getstatic com.netflix.hystrix.exception.HystrixRuntimeException$FailureType.COMMAND_EXCEPTION:Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 2
aload 1
aconst_null
invokespecial com.netflix.hystrix.exception.HystrixRuntimeException.<init>:(Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Exception;Ljava/lang/Throwable;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 21 1 e Ljava/lang/Exception;
19 21 2 message Ljava/lang/String;
MethodParameters:
Name Flags
e
protected java.lang.String getCacheKey();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public java.lang.String getPublicCacheKey();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getCacheKey:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
protected boolean isRequestCachingEnabled();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.properties:Lcom/netflix/hystrix/HystrixCommandProperties;
invokevirtual com.netflix.hystrix.HystrixCommandProperties.requestCacheEnabled:()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
ifeq 1
aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getCacheKey:()Ljava/lang/String;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
protected java.lang.String getLogMessagePrefix();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getCommandKey:()Lcom/netflix/hystrix/HystrixCommandKey;
invokeinterface com.netflix.hystrix.HystrixCommandKey.name:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public boolean isCircuitBreakerOpen();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.properties:Lcom/netflix/hystrix/HystrixCommandProperties;
invokevirtual com.netflix.hystrix.HystrixCommandProperties.circuitBreakerForceOpen:()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
ifne 2
aload 0
getfield com.netflix.hystrix.AbstractCommand.properties:Lcom/netflix/hystrix/HystrixCommandProperties;
invokevirtual com.netflix.hystrix.HystrixCommandProperties.circuitBreakerForceClosed:()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
ifne 1
aload 0
getfield com.netflix.hystrix.AbstractCommand.circuitBreaker:Lcom/netflix/hystrix/HystrixCircuitBreaker;
invokeinterface com.netflix.hystrix.HystrixCircuitBreaker.isOpen:()Z
ifne 2
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
StackMap locals:
StackMap stack:
2: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public boolean isExecutionComplete();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.commandState:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
getstatic com.netflix.hystrix.AbstractCommand$CommandState.TERMINAL:Lcom/netflix/hystrix/AbstractCommand$CommandState;
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public boolean isExecutedInThread();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.isExecutedInThread:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public boolean isSuccessfulExecution();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.getEventCounts:()Lcom/netflix/hystrix/ExecutionResult$EventCounts;
getstatic com.netflix.hystrix.HystrixEventType.SUCCESS:Lcom/netflix/hystrix/HystrixEventType;
invokevirtual com.netflix.hystrix.ExecutionResult$EventCounts.contains:(Lcom/netflix/hystrix/HystrixEventType;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public boolean isFailedExecution();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.getEventCounts:()Lcom/netflix/hystrix/ExecutionResult$EventCounts;
getstatic com.netflix.hystrix.HystrixEventType.FAILURE:Lcom/netflix/hystrix/HystrixEventType;
invokevirtual com.netflix.hystrix.ExecutionResult$EventCounts.contains:(Lcom/netflix/hystrix/HystrixEventType;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public java.lang.Throwable getFailedExecutionException();
descriptor: ()Ljava/lang/Throwable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.getException:()Ljava/lang/Exception;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public java.lang.Throwable getExecutionException();
descriptor: ()Ljava/lang/Throwable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.getExecutionException:()Ljava/lang/Exception;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public boolean isResponseFromFallback();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.getEventCounts:()Lcom/netflix/hystrix/ExecutionResult$EventCounts;
getstatic com.netflix.hystrix.HystrixEventType.FALLBACK_SUCCESS:Lcom/netflix/hystrix/HystrixEventType;
invokevirtual com.netflix.hystrix.ExecutionResult$EventCounts.contains:(Lcom/netflix/hystrix/HystrixEventType;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public boolean isResponseTimedOut();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.getEventCounts:()Lcom/netflix/hystrix/ExecutionResult$EventCounts;
getstatic com.netflix.hystrix.HystrixEventType.TIMEOUT:Lcom/netflix/hystrix/HystrixEventType;
invokevirtual com.netflix.hystrix.ExecutionResult$EventCounts.contains:(Lcom/netflix/hystrix/HystrixEventType;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public boolean isResponseShortCircuited();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.getEventCounts:()Lcom/netflix/hystrix/ExecutionResult$EventCounts;
getstatic com.netflix.hystrix.HystrixEventType.SHORT_CIRCUITED:Lcom/netflix/hystrix/HystrixEventType;
invokevirtual com.netflix.hystrix.ExecutionResult$EventCounts.contains:(Lcom/netflix/hystrix/HystrixEventType;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public boolean isResponseFromCache();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.isResponseFromCache:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public boolean isResponseSemaphoreRejected();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.isResponseSemaphoreRejected:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public boolean isResponseThreadPoolRejected();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.isResponseThreadPoolRejected:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public boolean isResponseRejected();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.isResponseRejected:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public java.util.List<com.netflix.hystrix.HystrixEventType> getExecutionEvents();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.getOrderedList:()Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
Signature: ()Ljava/util/List<Lcom/netflix/hystrix/HystrixEventType;>;
private com.netflix.hystrix.ExecutionResult getCommandResult();
descriptor: ()Lcom/netflix/hystrix/ExecutionResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResultAtTimeOfCancellation:Lcom/netflix/hystrix/ExecutionResult;
ifnonnull 3
1: aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
astore 1
start local 1 2: goto 4
end local 1 3: StackMap locals:
StackMap stack:
aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResultAtTimeOfCancellation:Lcom/netflix/hystrix/ExecutionResult;
astore 1
start local 1 4: StackMap locals: com.netflix.hystrix.ExecutionResult
StackMap stack:
aload 0
getfield com.netflix.hystrix.AbstractCommand.isResponseFromCache:Z
ifeq 6
5: aload 1
getstatic com.netflix.hystrix.HystrixEventType.RESPONSE_FROM_CACHE:Lcom/netflix/hystrix/HystrixEventType;
invokevirtual com.netflix.hystrix.ExecutionResult.addEvent:(Lcom/netflix/hystrix/HystrixEventType;)Lcom/netflix/hystrix/ExecutionResult;
astore 1
6: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
2 3 1 resultToReturn Lcom/netflix/hystrix/ExecutionResult;
4 7 1 resultToReturn Lcom/netflix/hystrix/ExecutionResult;
public int getNumberEmissions();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.getEventCounts:()Lcom/netflix/hystrix/ExecutionResult$EventCounts;
getstatic com.netflix.hystrix.HystrixEventType.EMIT:Lcom/netflix/hystrix/HystrixEventType;
invokevirtual com.netflix.hystrix.ExecutionResult$EventCounts.getCount:(Lcom/netflix/hystrix/HystrixEventType;)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public int getNumberFallbackEmissions();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.getEventCounts:()Lcom/netflix/hystrix/ExecutionResult$EventCounts;
getstatic com.netflix.hystrix.HystrixEventType.FALLBACK_EMIT:Lcom/netflix/hystrix/HystrixEventType;
invokevirtual com.netflix.hystrix.ExecutionResult$EventCounts.getCount:(Lcom/netflix/hystrix/HystrixEventType;)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public int getNumberCollapsed();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.getEventCounts:()Lcom/netflix/hystrix/ExecutionResult$EventCounts;
getstatic com.netflix.hystrix.HystrixEventType.COLLAPSED:Lcom/netflix/hystrix/HystrixEventType;
invokevirtual com.netflix.hystrix.ExecutionResult$EventCounts.getCount:(Lcom/netflix/hystrix/HystrixEventType;)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public com.netflix.hystrix.HystrixCollapserKey getOriginatingCollapserKey();
descriptor: ()Lcom/netflix/hystrix/HystrixCollapserKey;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.getCollapserKey:()Lcom/netflix/hystrix/HystrixCollapserKey;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public int getExecutionTimeInMilliseconds();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.getExecutionLatency:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public long getCommandRunStartTimeInNanos();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.getCommandRunStartTimeInNanos:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
public com.netflix.hystrix.ExecutionResult$EventCounts getEventCounts();
descriptor: ()Lcom/netflix/hystrix/ExecutionResult$EventCounts;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.getEventCounts:()Lcom/netflix/hystrix/ExecutionResult$EventCounts;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
protected java.lang.Exception getExceptionFromThrowable(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Ljava/lang/Exception;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof java.lang.Exception
ifeq 3
1: aload 1
checkcast java.lang.Exception
astore 2
start local 2 2: goto 4
end local 2 3: StackMap locals:
StackMap stack:
new java.lang.Exception
dup
ldc "Throwable caught while executing."
aload 1
invokespecial java.lang.Exception.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
astore 2
start local 2 4: StackMap locals: java.lang.Exception
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/netflix/hystrix/AbstractCommand<TR;>;
0 5 1 t Ljava/lang/Throwable;
2 3 2 e Ljava/lang/Exception;
4 5 2 e Ljava/lang/Exception;
MethodParameters:
Name Flags
t
}
Signature: <R:Ljava/lang/Object;>Ljava/lang/Object;Lcom/netflix/hystrix/HystrixInvokableInfo<TR;>;Lcom/netflix/hystrix/HystrixObservable<TR;>;
SourceFile: "AbstractCommand.java"
NestMembers:
com.netflix.hystrix.AbstractCommand$1 com.netflix.hystrix.AbstractCommand$10 com.netflix.hystrix.AbstractCommand$11 com.netflix.hystrix.AbstractCommand$12 com.netflix.hystrix.AbstractCommand$13 com.netflix.hystrix.AbstractCommand$14 com.netflix.hystrix.AbstractCommand$15 com.netflix.hystrix.AbstractCommand$16 com.netflix.hystrix.AbstractCommand$17 com.netflix.hystrix.AbstractCommand$18 com.netflix.hystrix.AbstractCommand$19 com.netflix.hystrix.AbstractCommand$2 com.netflix.hystrix.AbstractCommand$20 com.netflix.hystrix.AbstractCommand$21 com.netflix.hystrix.AbstractCommand$22 com.netflix.hystrix.AbstractCommand$23 com.netflix.hystrix.AbstractCommand$24 com.netflix.hystrix.AbstractCommand$25 com.netflix.hystrix.AbstractCommand$3 com.netflix.hystrix.AbstractCommand$4 com.netflix.hystrix.AbstractCommand$5 com.netflix.hystrix.AbstractCommand$6 com.netflix.hystrix.AbstractCommand$7 com.netflix.hystrix.AbstractCommand$8 com.netflix.hystrix.AbstractCommand$9 com.netflix.hystrix.AbstractCommand$CommandState com.netflix.hystrix.AbstractCommand$DeprecatedOnFallbackHookApplication com.netflix.hystrix.AbstractCommand$DeprecatedOnFallbackHookApplication$1 com.netflix.hystrix.AbstractCommand$DeprecatedOnRunHookApplication com.netflix.hystrix.AbstractCommand$DeprecatedOnRunHookApplication$1 com.netflix.hystrix.AbstractCommand$ExecutionHookApplication com.netflix.hystrix.AbstractCommand$ExecutionHookApplication$1 com.netflix.hystrix.AbstractCommand$ExecutionHookDeprecationWrapper com.netflix.hystrix.AbstractCommand$FallbackHookApplication com.netflix.hystrix.AbstractCommand$FallbackHookApplication$1 com.netflix.hystrix.AbstractCommand$HystrixObservableTimeoutOperator com.netflix.hystrix.AbstractCommand$HystrixObservableTimeoutOperator$1 com.netflix.hystrix.AbstractCommand$HystrixObservableTimeoutOperator$2 com.netflix.hystrix.AbstractCommand$HystrixObservableTimeoutOperator$3 com.netflix.hystrix.AbstractCommand$ThreadState com.netflix.hystrix.AbstractCommand$TimedOutStatus com.netflix.hystrix.AbstractCommand$TryableSemaphore com.netflix.hystrix.AbstractCommand$TryableSemaphoreActual com.netflix.hystrix.AbstractCommand$TryableSemaphoreNoOp
InnerClasses:
com.netflix.hystrix.AbstractCommand$1
com.netflix.hystrix.AbstractCommand$10
com.netflix.hystrix.AbstractCommand$11
com.netflix.hystrix.AbstractCommand$12
com.netflix.hystrix.AbstractCommand$13
com.netflix.hystrix.AbstractCommand$14
com.netflix.hystrix.AbstractCommand$15
com.netflix.hystrix.AbstractCommand$16
com.netflix.hystrix.AbstractCommand$17
com.netflix.hystrix.AbstractCommand$18
com.netflix.hystrix.AbstractCommand$19
com.netflix.hystrix.AbstractCommand$2
com.netflix.hystrix.AbstractCommand$20
com.netflix.hystrix.AbstractCommand$21
com.netflix.hystrix.AbstractCommand$22
com.netflix.hystrix.AbstractCommand$23
com.netflix.hystrix.AbstractCommand$24
com.netflix.hystrix.AbstractCommand$25
com.netflix.hystrix.AbstractCommand$3
com.netflix.hystrix.AbstractCommand$4
com.netflix.hystrix.AbstractCommand$5
com.netflix.hystrix.AbstractCommand$6
com.netflix.hystrix.AbstractCommand$7
com.netflix.hystrix.AbstractCommand$8
com.netflix.hystrix.AbstractCommand$9
protected final CommandState = com.netflix.hystrix.AbstractCommand$CommandState of com.netflix.hystrix.AbstractCommand
private DeprecatedOnFallbackHookApplication = com.netflix.hystrix.AbstractCommand$DeprecatedOnFallbackHookApplication of com.netflix.hystrix.AbstractCommand
private DeprecatedOnRunHookApplication = com.netflix.hystrix.AbstractCommand$DeprecatedOnRunHookApplication of com.netflix.hystrix.AbstractCommand
private ExecutionHookApplication = com.netflix.hystrix.AbstractCommand$ExecutionHookApplication of com.netflix.hystrix.AbstractCommand
private ExecutionHookDeprecationWrapper = com.netflix.hystrix.AbstractCommand$ExecutionHookDeprecationWrapper of com.netflix.hystrix.AbstractCommand
private FallbackHookApplication = com.netflix.hystrix.AbstractCommand$FallbackHookApplication of com.netflix.hystrix.AbstractCommand
private HystrixObservableTimeoutOperator = com.netflix.hystrix.AbstractCommand$HystrixObservableTimeoutOperator of com.netflix.hystrix.AbstractCommand
protected final ThreadState = com.netflix.hystrix.AbstractCommand$ThreadState of com.netflix.hystrix.AbstractCommand
protected final TimedOutStatus = com.netflix.hystrix.AbstractCommand$TimedOutStatus of com.netflix.hystrix.AbstractCommand
abstract TryableSemaphore = com.netflix.hystrix.AbstractCommand$TryableSemaphore of com.netflix.hystrix.AbstractCommand
TryableSemaphoreActual = com.netflix.hystrix.AbstractCommand$TryableSemaphoreActual of com.netflix.hystrix.AbstractCommand
TryableSemaphoreNoOp = com.netflix.hystrix.AbstractCommand$TryableSemaphoreNoOp of com.netflix.hystrix.AbstractCommand
public EventCounts = com.netflix.hystrix.ExecutionResult$EventCounts of com.netflix.hystrix.ExecutionResult
public Factory = com.netflix.hystrix.HystrixCircuitBreaker$Factory of com.netflix.hystrix.HystrixCircuitBreaker
public NoOpCircuitBreaker = com.netflix.hystrix.HystrixCircuitBreaker$NoOpCircuitBreaker of com.netflix.hystrix.HystrixCircuitBreaker
public Factory = com.netflix.hystrix.HystrixCommandKey$Factory of com.netflix.hystrix.HystrixCommandKey
public final ExecutionIsolationStrategy = com.netflix.hystrix.HystrixCommandProperties$ExecutionIsolationStrategy of com.netflix.hystrix.HystrixCommandProperties
public Setter = com.netflix.hystrix.HystrixCommandProperties$Setter of com.netflix.hystrix.HystrixCommandProperties
public Factory = com.netflix.hystrix.HystrixThreadPool$Factory of com.netflix.hystrix.HystrixThreadPool
public Factory = com.netflix.hystrix.HystrixThreadPoolKey$Factory of com.netflix.hystrix.HystrixThreadPoolKey
public Setter = com.netflix.hystrix.HystrixThreadPoolProperties$Setter of com.netflix.hystrix.HystrixThreadPoolProperties
public final FailureType = com.netflix.hystrix.exception.HystrixRuntimeException$FailureType of com.netflix.hystrix.exception.HystrixRuntimeException
public abstract TimerListener = com.netflix.hystrix.util.HystrixTimer$TimerListener of com.netflix.hystrix.util.HystrixTimer
public abstract Operator = rx.Observable$Operator of rx.Observable