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: .line 61
            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: .line 94
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putstatic com.netflix.hystrix.AbstractCommand.fallbackSemaphorePerCircuit:Ljava/util/concurrent/ConcurrentHashMap;
         2: .line 100
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putstatic com.netflix.hystrix.AbstractCommand.executionSemaphorePerCircuit:Ljava/util/concurrent/ConcurrentHashMap;
         3: .line 136
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putstatic com.netflix.hystrix.AbstractCommand.defaultNameCache:Ljava/util/concurrent/ConcurrentHashMap;
         4: .line 138
            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 // java.lang.Class cls
         0: .line 141
            getstatic com.netflix.hystrix.AbstractCommand.defaultNameCache:Ljava/util/concurrent/ConcurrentHashMap;
            aload 0 /* cls */
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* fromCache */
        start local 1 // java.lang.String fromCache
         1: .line 142
            aload 1 /* fromCache */
            ifnull 3
         2: .line 143
            aload 1 /* fromCache */
            areturn
         3: .line 147
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* cls */
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         4: .line 148
            aload 2 /* name */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 150
            aload 0 /* cls */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 2 /* name */
         6: .line 151
            aload 2 /* name */
            aload 2 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_1
            iadd
            aload 2 /* name */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 2 /* name */
         7: .line 153
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic com.netflix.hystrix.AbstractCommand.defaultNameCache:Ljava/util/concurrent/ConcurrentHashMap;
            aload 0 /* cls */
            aload 2 /* name */
            invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 154
            aload 2 /* name */
            areturn
        end local 2 // java.lang.String name
        end local 1 // java.lang.String fromCache
        end local 0 // java.lang.Class cls
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // com.netflix.hystrix.HystrixCommandGroupKey group
        start local 2 // com.netflix.hystrix.HystrixCommandKey key
        start local 3 // com.netflix.hystrix.HystrixThreadPoolKey threadPoolKey
        start local 4 // com.netflix.hystrix.HystrixCircuitBreaker circuitBreaker
        start local 5 // com.netflix.hystrix.HystrixThreadPool threadPool
        start local 6 // com.netflix.hystrix.HystrixCommandProperties$Setter commandPropertiesDefaults
        start local 7 // com.netflix.hystrix.HystrixThreadPoolProperties$Setter threadPoolPropertiesDefaults
        start local 8 // com.netflix.hystrix.HystrixCommandMetrics metrics
        start local 9 // com.netflix.hystrix.AbstractCommand$TryableSemaphore fallbackSemaphore
        start local 10 // com.netflix.hystrix.AbstractCommand$TryableSemaphore executionSemaphore
        start local 11 // com.netflix.hystrix.strategy.properties.HystrixPropertiesStrategy propertiesStrategy
        start local 12 // com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook executionHook
         0: .line 157
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 103
            aload 0 /* this */
            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: .line 105
            aload 0 /* this */
            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: .line 106
            aload 0 /* this */
            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: .line 118
            aload 0 /* this */
            getstatic com.netflix.hystrix.ExecutionResult.EMPTY:Lcom/netflix/hystrix/ExecutionResult;
            putfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
         5: .line 120
            aload 0 /* this */
            iconst_0
            putfield com.netflix.hystrix.AbstractCommand.isResponseFromCache:Z
         6: .line 122
            aload 0 /* this */
            ldc -1
            putfield com.netflix.hystrix.AbstractCommand.commandStartTimestamp:J
         7: .line 125
            aload 0 /* this */
            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: .line 162
            aload 0 /* this */
            aload 1 /* group */
            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: .line 163
            aload 0 /* this */
            aload 2 /* key */
            aload 0 /* this */
            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: .line 164
            aload 0 /* this */
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
            aload 11 /* propertiesStrategy */
            aload 6 /* commandPropertiesDefaults */
            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: .line 165
            aload 0 /* this */
            aload 3 /* threadPoolKey */
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.commandGroup:Lcom/netflix/hystrix/HystrixCommandGroupKey;
            aload 0 /* this */
            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: .line 166
            aload 0 /* this */
            aload 8 /* metrics */
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.commandGroup:Lcom/netflix/hystrix/HystrixCommandGroupKey;
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.threadPoolKey:Lcom/netflix/hystrix/HystrixThreadPoolKey;
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
            aload 0 /* this */
            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: .line 167
            aload 0 /* this */
            aload 0 /* this */
            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 /* circuitBreaker */
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.commandGroup:Lcom/netflix/hystrix/HystrixCommandGroupKey;
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.properties:Lcom/netflix/hystrix/HystrixCommandProperties;
            aload 0 /* this */
            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: .line 168
            aload 0 /* this */
            aload 5 /* threadPool */
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.threadPoolKey:Lcom/netflix/hystrix/HystrixThreadPoolKey;
            aload 7 /* threadPoolPropertiesDefaults */
            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: .line 171
            aload 0 /* this */
            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: .line 172
            aload 0 /* this */
            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: .line 173
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.commandGroup:Lcom/netflix/hystrix/HystrixCommandGroupKey;
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.metrics:Lcom/netflix/hystrix/HystrixCommandMetrics;
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.circuitBreaker:Lcom/netflix/hystrix/HystrixCircuitBreaker;
            aload 0 /* this */
            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: .line 174
            aload 0 /* this */
            aload 12 /* executionHook */
            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: .line 176
            aload 0 /* this */
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
            aload 0 /* this */
            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: .line 177
            aload 0 /* this */
            aload 0 /* this */
            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 /* this */
            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: .line 180
            aload 0 /* this */
            aload 9 /* fallbackSemaphore */
            putfield com.netflix.hystrix.AbstractCommand.fallbackSemaphoreOverride:Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
        22: .line 183
            aload 0 /* this */
            aload 10 /* executionSemaphore */
            putfield com.netflix.hystrix.AbstractCommand.executionSemaphoreOverride:Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
        23: .line 184
            return
        end local 12 // com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook executionHook
        end local 11 // com.netflix.hystrix.strategy.properties.HystrixPropertiesStrategy propertiesStrategy
        end local 10 // com.netflix.hystrix.AbstractCommand$TryableSemaphore executionSemaphore
        end local 9 // com.netflix.hystrix.AbstractCommand$TryableSemaphore fallbackSemaphore
        end local 8 // com.netflix.hystrix.HystrixCommandMetrics metrics
        end local 7 // com.netflix.hystrix.HystrixThreadPoolProperties$Setter threadPoolPropertiesDefaults
        end local 6 // com.netflix.hystrix.HystrixCommandProperties$Setter commandPropertiesDefaults
        end local 5 // com.netflix.hystrix.HystrixThreadPool threadPool
        end local 4 // com.netflix.hystrix.HystrixCircuitBreaker circuitBreaker
        end local 3 // com.netflix.hystrix.HystrixThreadPoolKey threadPoolKey
        end local 2 // com.netflix.hystrix.HystrixCommandKey key
        end local 1 // com.netflix.hystrix.HystrixCommandGroupKey group
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.HystrixCommandGroupKey fromConstructor
         0: .line 187
            aload 0 /* fromConstructor */
            ifnonnull 2
         1: .line 188
            new java.lang.IllegalStateException
            dup
            ldc "HystrixCommandGroup can not be NULL"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 190
      StackMap locals:
      StackMap stack:
            aload 0 /* fromConstructor */
            areturn
        end local 0 // com.netflix.hystrix.HystrixCommandGroupKey fromConstructor
      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 // com.netflix.hystrix.HystrixCommandKey fromConstructor
        start local 1 // java.lang.Class clazz
         0: .line 195
            aload 0 /* fromConstructor */
            ifnull 1
            aload 0 /* fromConstructor */
            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: .line 196
      StackMap locals:
      StackMap stack:
            aload 1 /* clazz */
            invokestatic com.netflix.hystrix.AbstractCommand.getDefaultNameFromClass:(Ljava/lang/Class;)Ljava/lang/String;
            astore 2 /* keyName */
        start local 2 // java.lang.String keyName
         2: .line 197
            aload 2 /* keyName */
            invokestatic com.netflix.hystrix.HystrixCommandKey$Factory.asKey:(Ljava/lang/String;)Lcom/netflix/hystrix/HystrixCommandKey;
            areturn
        end local 2 // java.lang.String keyName
         3: .line 199
      StackMap locals:
      StackMap stack:
            aload 0 /* fromConstructor */
            areturn
        end local 1 // java.lang.Class clazz
        end local 0 // com.netflix.hystrix.HystrixCommandKey fromConstructor
      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 // com.netflix.hystrix.HystrixCommandKey commandKey
        start local 1 // com.netflix.hystrix.strategy.properties.HystrixPropertiesStrategy propertiesStrategy
        start local 2 // com.netflix.hystrix.HystrixCommandProperties$Setter commandPropertiesDefaults
         0: .line 204
            aload 1 /* propertiesStrategy */
            ifnonnull 2
         1: .line 205
            aload 0 /* commandKey */
            aload 2 /* commandPropertiesDefaults */
            invokestatic com.netflix.hystrix.strategy.properties.HystrixPropertiesFactory.getCommandProperties:(Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixCommandProperties$Setter;)Lcom/netflix/hystrix/HystrixCommandProperties;
            areturn
         2: .line 208
      StackMap locals:
      StackMap stack:
            aload 1 /* propertiesStrategy */
            aload 0 /* commandKey */
            aload 2 /* commandPropertiesDefaults */
            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 // com.netflix.hystrix.HystrixCommandProperties$Setter commandPropertiesDefaults
        end local 1 // com.netflix.hystrix.strategy.properties.HystrixPropertiesStrategy propertiesStrategy
        end local 0 // com.netflix.hystrix.HystrixCommandKey commandKey
      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 // com.netflix.hystrix.HystrixThreadPoolKey threadPoolKey
        start local 1 // com.netflix.hystrix.HystrixCommandGroupKey groupKey
        start local 2 // java.lang.String threadPoolKeyOverride
         0: .line 222
            aload 2 /* threadPoolKeyOverride */
            ifnonnull 4
         1: .line 224
            aload 0 /* threadPoolKey */
            ifnonnull 3
         2: .line 226
            aload 1 /* groupKey */
            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: .line 228
      StackMap locals:
      StackMap stack:
            aload 0 /* threadPoolKey */
            areturn
         4: .line 232
      StackMap locals:
      StackMap stack:
            aload 2 /* threadPoolKeyOverride */
            invokestatic com.netflix.hystrix.HystrixThreadPoolKey$Factory.asKey:(Ljava/lang/String;)Lcom/netflix/hystrix/HystrixThreadPoolKey;
            areturn
        end local 2 // java.lang.String threadPoolKeyOverride
        end local 1 // com.netflix.hystrix.HystrixCommandGroupKey groupKey
        end local 0 // com.netflix.hystrix.HystrixThreadPoolKey threadPoolKey
      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 // com.netflix.hystrix.HystrixCommandMetrics fromConstructor
        start local 1 // com.netflix.hystrix.HystrixCommandGroupKey groupKey
        start local 2 // com.netflix.hystrix.HystrixThreadPoolKey threadPoolKey
        start local 3 // com.netflix.hystrix.HystrixCommandKey commandKey
        start local 4 // com.netflix.hystrix.HystrixCommandProperties properties
         0: .line 239
            aload 0 /* fromConstructor */
            ifnonnull 2
         1: .line 240
            aload 3 /* commandKey */
            aload 1 /* groupKey */
            aload 2 /* threadPoolKey */
            aload 4 /* properties */
            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: .line 242
      StackMap locals:
      StackMap stack:
            aload 0 /* fromConstructor */
            areturn
        end local 4 // com.netflix.hystrix.HystrixCommandProperties properties
        end local 3 // com.netflix.hystrix.HystrixCommandKey commandKey
        end local 2 // com.netflix.hystrix.HystrixThreadPoolKey threadPoolKey
        end local 1 // com.netflix.hystrix.HystrixCommandGroupKey groupKey
        end local 0 // com.netflix.hystrix.HystrixCommandMetrics fromConstructor
      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 // boolean enabled
        start local 1 // com.netflix.hystrix.HystrixCircuitBreaker fromConstructor
        start local 2 // com.netflix.hystrix.HystrixCommandGroupKey groupKey
        start local 3 // com.netflix.hystrix.HystrixCommandKey commandKey
        start local 4 // com.netflix.hystrix.HystrixCommandProperties properties
        start local 5 // com.netflix.hystrix.HystrixCommandMetrics metrics
         0: .line 249
            iload 0 /* enabled */
            ifeq 4
         1: .line 250
            aload 1 /* fromConstructor */
            ifnonnull 3
         2: .line 252
            aload 3 /* commandKey */
            aload 2 /* groupKey */
            aload 4 /* properties */
            aload 5 /* metrics */
            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: .line 254
      StackMap locals:
      StackMap stack:
            aload 1 /* fromConstructor */
            areturn
         4: .line 257
      StackMap locals:
      StackMap stack:
            new com.netflix.hystrix.HystrixCircuitBreaker$NoOpCircuitBreaker
            dup
            invokespecial com.netflix.hystrix.HystrixCircuitBreaker$NoOpCircuitBreaker.<init>:()V
            areturn
        end local 5 // com.netflix.hystrix.HystrixCommandMetrics metrics
        end local 4 // com.netflix.hystrix.HystrixCommandProperties properties
        end local 3 // com.netflix.hystrix.HystrixCommandKey commandKey
        end local 2 // com.netflix.hystrix.HystrixCommandGroupKey groupKey
        end local 1 // com.netflix.hystrix.HystrixCircuitBreaker fromConstructor
        end local 0 // boolean enabled
      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 // com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook fromConstructor
         0: .line 262
            aload 0 /* fromConstructor */
            ifnonnull 2
         1: .line 263
            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: .line 266
      StackMap locals:
      StackMap stack:
            aload 0 /* fromConstructor */
            instanceof com.netflix.hystrix.AbstractCommand$ExecutionHookDeprecationWrapper
            ifeq 4
         3: .line 267
            aload 0 /* fromConstructor */
            areturn
         4: .line 269
      StackMap locals:
      StackMap stack:
            new com.netflix.hystrix.AbstractCommand$ExecutionHookDeprecationWrapper
            dup
            aload 0 /* fromConstructor */
            invokespecial com.netflix.hystrix.AbstractCommand$ExecutionHookDeprecationWrapper.<init>:(Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;)V
            areturn
        end local 0 // com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook fromConstructor
      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 // com.netflix.hystrix.HystrixThreadPool fromConstructor
        start local 1 // com.netflix.hystrix.HystrixThreadPoolKey threadPoolKey
        start local 2 // com.netflix.hystrix.HystrixThreadPoolProperties$Setter threadPoolPropertiesDefaults
         0: .line 275
            aload 0 /* fromConstructor */
            ifnonnull 2
         1: .line 277
            aload 1 /* threadPoolKey */
            aload 2 /* threadPoolPropertiesDefaults */
            invokestatic com.netflix.hystrix.HystrixThreadPool$Factory.getInstance:(Lcom/netflix/hystrix/HystrixThreadPoolKey;Lcom/netflix/hystrix/HystrixThreadPoolProperties$Setter;)Lcom/netflix/hystrix/HystrixThreadPool;
            areturn
         2: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* fromConstructor */
            areturn
        end local 2 // com.netflix.hystrix.HystrixThreadPoolProperties$Setter threadPoolPropertiesDefaults
        end local 1 // com.netflix.hystrix.HystrixThreadPoolKey threadPoolKey
        end local 0 // com.netflix.hystrix.HystrixThreadPool fromConstructor
      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 // boolean enabled
        start local 1 // com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy concurrencyStrategy
         0: .line 284
            iload 0 /* enabled */
            ifeq 2
         1: .line 286
            aload 1 /* concurrencyStrategy */
            invokestatic com.netflix.hystrix.HystrixRequestLog.getCurrentRequest:(Lcom/netflix/hystrix/strategy/concurrency/HystrixConcurrencyStrategy;)Lcom/netflix/hystrix/HystrixRequestLog;
            areturn
         2: .line 288
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy concurrencyStrategy
        end local 0 // boolean enabled
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // com.netflix.hystrix.HystrixCollapserKey collapserKey
        start local 2 // int sizeOfBatch
         0: .line 298
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.eventNotifier:Lcom/netflix/hystrix/strategy/eventnotifier/HystrixEventNotifier;
            getstatic com.netflix.hystrix.HystrixEventType.COLLAPSED:Lcom/netflix/hystrix/HystrixEventType;
            aload 0 /* this */
            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: .line 299
            aload 0 /* this */
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
            aload 1 /* collapserKey */
            iload 2 /* sizeOfBatch */
            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: .line 300
            return
        end local 2 // int sizeOfBatch
        end local 1 // com.netflix.hystrix.HystrixCollapserKey collapserKey
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 326
            invokestatic rx.subjects.ReplaySubject.create:()Lrx/subjects/ReplaySubject;
            astore 1 /* subject */
        start local 1 // rx.subjects.ReplaySubject subject
         1: .line 328
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.AbstractCommand.toObservable:()Lrx/Observable;
            aload 1 /* subject */
            invokevirtual rx.Observable.subscribe:(Lrx/Observer;)Lrx/Subscription;
            astore 2 /* sourceSubscription */
        start local 2 // rx.Subscription sourceSubscription
         2: .line 330
            aload 1 /* subject */
            new com.netflix.hystrix.AbstractCommand$1
            dup
            aload 0 /* this */
            aload 2 /* sourceSubscription */
            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 // rx.Subscription sourceSubscription
        end local 1 // rx.subjects.ReplaySubject subject
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 365
            aload 0 /* this */
            astore 1 /* _cmd */
        start local 1 // com.netflix.hystrix.AbstractCommand _cmd
         1: .line 369
            new com.netflix.hystrix.AbstractCommand$2
            dup
            aload 0 /* this */
            aload 1 /* _cmd */
            invokespecial com.netflix.hystrix.AbstractCommand$2.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/AbstractCommand;)V
            astore 2 /* terminateCommandCleanup */
        start local 2 // rx.functions.Action0 terminateCommandCleanup
         2: .line 382
            new com.netflix.hystrix.AbstractCommand$3
            dup
            aload 0 /* this */
            aload 1 /* _cmd */
            invokespecial com.netflix.hystrix.AbstractCommand$3.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/AbstractCommand;)V
            astore 3 /* unsubscribeCommandCleanup */
        start local 3 // rx.functions.Action0 unsubscribeCommandCleanup
         3: .line 413
            new com.netflix.hystrix.AbstractCommand$4
            dup
            aload 0 /* this */
            aload 1 /* _cmd */
            invokespecial com.netflix.hystrix.AbstractCommand$4.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/AbstractCommand;)V
            astore 4 /* applyHystrixSemantics */
        start local 4 // rx.functions.Func0 applyHystrixSemantics
         4: .line 423
            new com.netflix.hystrix.AbstractCommand$5
            dup
            aload 0 /* this */
            aload 1 /* _cmd */
            invokespecial com.netflix.hystrix.AbstractCommand$5.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/AbstractCommand;)V
            astore 5 /* wrapWithAllOnNextHooks */
        start local 5 // rx.functions.Func1 wrapWithAllOnNextHooks
         5: .line 443
            new com.netflix.hystrix.AbstractCommand$6
            dup
            aload 0 /* this */
            aload 1 /* _cmd */
            invokespecial com.netflix.hystrix.AbstractCommand$6.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/AbstractCommand;)V
            astore 6 /* fireOnCompletedHook */
        start local 6 // rx.functions.Action0 fireOnCompletedHook
         6: .line 454
            new com.netflix.hystrix.AbstractCommand$7
            dup
            aload 0 /* this */
            aload 1 /* _cmd */
            aload 4 /* applyHystrixSemantics */
            aload 5 /* wrapWithAllOnNextHooks */
            aload 2 /* terminateCommandCleanup */
            aload 3 /* unsubscribeCommandCleanup */
            aload 6 /* fireOnCompletedHook */
            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 // rx.functions.Action0 fireOnCompletedHook
        end local 5 // rx.functions.Func1 wrapWithAllOnNextHooks
        end local 4 // rx.functions.Func0 applyHystrixSemantics
        end local 3 // rx.functions.Action0 unsubscribeCommandCleanup
        end local 2 // rx.functions.Action0 terminateCommandCleanup
        end local 1 // com.netflix.hystrix.AbstractCommand _cmd
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // com.netflix.hystrix.AbstractCommand _cmd
         0: .line 520
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
            aload 1 /* _cmd */
            invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onStart:(Lcom/netflix/hystrix/HystrixInvokable;)V
         1: .line 523
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.circuitBreaker:Lcom/netflix/hystrix/HystrixCircuitBreaker;
            invokeinterface com.netflix.hystrix.HystrixCircuitBreaker.allowRequest:()Z
            ifeq 16
         2: .line 524
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.AbstractCommand.getExecutionSemaphore:()Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
            astore 2 /* executionSemaphore */
        start local 2 // com.netflix.hystrix.AbstractCommand$TryableSemaphore executionSemaphore
         3: .line 525
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
            astore 3 /* semaphoreHasBeenReleased */
        start local 3 // java.util.concurrent.atomic.AtomicBoolean semaphoreHasBeenReleased
         4: .line 526
            new com.netflix.hystrix.AbstractCommand$8
            dup
            aload 0 /* this */
            aload 3 /* semaphoreHasBeenReleased */
            aload 2 /* executionSemaphore */
            invokespecial com.netflix.hystrix.AbstractCommand$8.<init>:(Lcom/netflix/hystrix/AbstractCommand;Ljava/util/concurrent/atomic/AtomicBoolean;Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;)V
            astore 4 /* singleSemaphoreRelease */
        start local 4 // rx.functions.Action0 singleSemaphoreRelease
         5: .line 535
            new com.netflix.hystrix.AbstractCommand$9
            dup
            aload 0 /* this */
            invokespecial com.netflix.hystrix.AbstractCommand$9.<init>:(Lcom/netflix/hystrix/AbstractCommand;)V
            astore 5 /* markExceptionThrown */
        start local 5 // rx.functions.Action1 markExceptionThrown
         6: .line 542
            aload 2 /* executionSemaphore */
            invokeinterface com.netflix.hystrix.AbstractCommand$TryableSemaphore.tryAcquire:()Z
            ifeq 15
         7: .line 545
            aload 0 /* this */
            aload 0 /* this */
            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: .line 546
            aload 0 /* this */
            aload 1 /* _cmd */
            invokevirtual com.netflix.hystrix.AbstractCommand.executeCommandAndObserve:(Lcom/netflix/hystrix/AbstractCommand;)Lrx/Observable;
         9: .line 547
            aload 5 /* markExceptionThrown */
            invokevirtual rx.Observable.doOnError:(Lrx/functions/Action1;)Lrx/Observable;
        10: .line 548
            aload 4 /* singleSemaphoreRelease */
            invokevirtual rx.Observable.doOnTerminate:(Lrx/functions/Action0;)Lrx/Observable;
        11: .line 549
            aload 4 /* singleSemaphoreRelease */
            invokevirtual rx.Observable.doOnUnsubscribe:(Lrx/functions/Action0;)Lrx/Observable;
        12: .line 546
            areturn
        13: .line 550
      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 /* e */
        start local 6 // java.lang.RuntimeException e
        14: .line 551
            aload 6 /* e */
            invokestatic rx.Observable.error:(Ljava/lang/Throwable;)Lrx/Observable;
            areturn
        end local 6 // java.lang.RuntimeException e
        15: .line 554
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.AbstractCommand.handleSemaphoreRejectionViaFallback:()Lrx/Observable;
            areturn
        end local 5 // rx.functions.Action1 markExceptionThrown
        end local 4 // rx.functions.Action0 singleSemaphoreRelease
        end local 3 // java.util.concurrent.atomic.AtomicBoolean semaphoreHasBeenReleased
        end local 2 // com.netflix.hystrix.AbstractCommand$TryableSemaphore executionSemaphore
        16: .line 557
      StackMap locals: com.netflix.hystrix.AbstractCommand com.netflix.hystrix.AbstractCommand
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.AbstractCommand.handleShortCircuitViaFallback:()Lrx/Observable;
            areturn
        end local 1 // com.netflix.hystrix.AbstractCommand _cmd
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // com.netflix.hystrix.AbstractCommand _cmd
         0: .line 569
            invokestatic com.netflix.hystrix.strategy.concurrency.HystrixRequestContext.getContextForCurrentThread:()Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestContext;
            astore 2 /* currentRequestContext */
        start local 2 // com.netflix.hystrix.strategy.concurrency.HystrixRequestContext currentRequestContext
         1: .line 571
            new com.netflix.hystrix.AbstractCommand$10
            dup
            aload 0 /* this */
            invokespecial com.netflix.hystrix.AbstractCommand$10.<init>:(Lcom/netflix/hystrix/AbstractCommand;)V
            astore 3 /* markEmits */
        start local 3 // rx.functions.Action1 markEmits
         2: .line 588
            new com.netflix.hystrix.AbstractCommand$11
            dup
            aload 0 /* this */
            invokespecial com.netflix.hystrix.AbstractCommand$11.<init>:(Lcom/netflix/hystrix/AbstractCommand;)V
            astore 4 /* markOnCompleted */
        start local 4 // rx.functions.Action0 markOnCompleted
         3: .line 601
            new com.netflix.hystrix.AbstractCommand$12
            dup
            aload 0 /* this */
            invokespecial com.netflix.hystrix.AbstractCommand$12.<init>:(Lcom/netflix/hystrix/AbstractCommand;)V
            astore 5 /* handleFallback */
        start local 5 // rx.functions.Func1 handleFallback
         4: .line 626
            new com.netflix.hystrix.AbstractCommand$13
            dup
            aload 0 /* this */
            aload 2 /* currentRequestContext */
            invokespecial com.netflix.hystrix.AbstractCommand$13.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestContext;)V
            astore 6 /* setRequestContext */
        start local 6 // rx.functions.Action1 setRequestContext
         5: .line 634
            aload 0 /* this */
            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: .line 635
            aload 0 /* this */
            aload 1 /* _cmd */
            invokevirtual com.netflix.hystrix.AbstractCommand.executeCommandWithSpecifiedIsolation:(Lcom/netflix/hystrix/AbstractCommand;)Lrx/Observable;
         7: .line 636
            new com.netflix.hystrix.AbstractCommand$HystrixObservableTimeoutOperator
            dup
            aload 1 /* _cmd */
            invokespecial com.netflix.hystrix.AbstractCommand$HystrixObservableTimeoutOperator.<init>:(Lcom/netflix/hystrix/AbstractCommand;)V
            invokevirtual rx.Observable.lift:(Lrx/Observable$Operator;)Lrx/Observable;
         8: .line 635
            astore 7 /* execution */
        start local 7 // rx.Observable execution
         9: .line 637
            goto 11
        end local 7 // rx.Observable execution
        10: .line 638
      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 /* this */
            aload 1 /* _cmd */
            invokevirtual com.netflix.hystrix.AbstractCommand.executeCommandWithSpecifiedIsolation:(Lcom/netflix/hystrix/AbstractCommand;)Lrx/Observable;
            astore 7 /* execution */
        start local 7 // rx.Observable execution
        11: .line 641
      StackMap locals: rx.Observable
      StackMap stack:
            aload 7 /* execution */
            aload 3 /* markEmits */
            invokevirtual rx.Observable.doOnNext:(Lrx/functions/Action1;)Lrx/Observable;
        12: .line 642
            aload 4 /* markOnCompleted */
            invokevirtual rx.Observable.doOnCompleted:(Lrx/functions/Action0;)Lrx/Observable;
        13: .line 643
            aload 5 /* handleFallback */
            invokevirtual rx.Observable.onErrorResumeNext:(Lrx/functions/Func1;)Lrx/Observable;
        14: .line 644
            aload 6 /* setRequestContext */
            invokevirtual rx.Observable.doOnEach:(Lrx/functions/Action1;)Lrx/Observable;
        15: .line 641
            areturn
        end local 7 // rx.Observable execution
        end local 6 // rx.functions.Action1 setRequestContext
        end local 5 // rx.functions.Func1 handleFallback
        end local 4 // rx.functions.Action0 markOnCompleted
        end local 3 // rx.functions.Action1 markEmits
        end local 2 // com.netflix.hystrix.strategy.concurrency.HystrixRequestContext currentRequestContext
        end local 1 // com.netflix.hystrix.AbstractCommand _cmd
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // com.netflix.hystrix.AbstractCommand _cmd
         0: .line 648
            aload 0 /* this */
            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: .line 650
            new com.netflix.hystrix.AbstractCommand$14
            dup
            aload 0 /* this */
            aload 1 /* _cmd */
            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: .line 688
            new com.netflix.hystrix.AbstractCommand$15
            dup
            aload 0 /* this */
            aload 1 /* _cmd */
            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: .line 699
            new com.netflix.hystrix.AbstractCommand$16
            dup
            aload 0 /* this */
            aload 1 /* _cmd */
            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: .line 710
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.threadPool:Lcom/netflix/hystrix/HystrixThreadPool;
            new com.netflix.hystrix.AbstractCommand$17
            dup
            aload 0 /* this */
            aload 1 /* _cmd */
            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: .line 650
            areturn
         6: .line 717
      StackMap locals:
      StackMap stack:
            new com.netflix.hystrix.AbstractCommand$18
            dup
            aload 0 /* this */
            aload 1 /* _cmd */
            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 // com.netflix.hystrix.AbstractCommand _cmd
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // com.netflix.hystrix.AbstractCommand _cmd
        start local 2 // com.netflix.hystrix.HystrixEventType eventType
        start local 3 // com.netflix.hystrix.exception.HystrixRuntimeException$FailureType failureType
        start local 4 // java.lang.String message
        start local 5 // java.lang.Exception originalException
         0: .line 757
            invokestatic com.netflix.hystrix.strategy.concurrency.HystrixRequestContext.getContextForCurrentThread:()Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestContext;
            astore 6 /* requestContext */
        start local 6 // com.netflix.hystrix.strategy.concurrency.HystrixRequestContext requestContext
         1: .line 758
            invokestatic java.lang.System.currentTimeMillis:()J
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
            invokevirtual com.netflix.hystrix.ExecutionResult.getStartTimestamp:()J
            lsub
            lstore 7 /* latency */
        start local 7 // long latency
         2: .line 761
            aload 0 /* this */
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
            lload 7 /* latency */
            l2i
            aload 2 /* eventType */
            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: .line 763
            aload 0 /* this */
            aload 5 /* originalException */
            invokevirtual com.netflix.hystrix.AbstractCommand.shouldNotBeWrapped:(Ljava/lang/Throwable;)Z
            ifeq 6
         4: .line 765
            aload 0 /* this */
            aload 3 /* failureType */
            aload 5 /* originalException */
            invokevirtual com.netflix.hystrix.AbstractCommand.wrapWithOnErrorHook:(Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/Throwable;)Ljava/lang/Exception;
            astore 9 /* e */
        start local 9 // java.lang.Exception e
         5: .line 766
            aload 9 /* e */
            invokestatic rx.Observable.error:(Ljava/lang/Throwable;)Lrx/Observable;
            areturn
        end local 9 // java.lang.Exception e
         6: .line 767
      StackMap locals: com.netflix.hystrix.strategy.concurrency.HystrixRequestContext long
      StackMap stack:
            aload 0 /* this */
            aload 5 /* originalException */
            invokevirtual com.netflix.hystrix.AbstractCommand.isUnrecoverable:(Ljava/lang/Throwable;)Z
            ifeq 10
         7: .line 768
            getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
            ldc "Unrecoverable Error for HystrixCommand so will throw HystrixRuntimeException and not apply fallback. "
            aload 5 /* originalException */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
         8: .line 771
            aload 0 /* this */
            aload 3 /* failureType */
            aload 5 /* originalException */
            invokevirtual com.netflix.hystrix.AbstractCommand.wrapWithOnErrorHook:(Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/Throwable;)Ljava/lang/Exception;
            astore 9 /* e */
        start local 9 // java.lang.Exception e
         9: .line 772
            new com.netflix.hystrix.exception.HystrixRuntimeException
            dup
            aload 3 /* failureType */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            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 /* message */
            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 /* e */
            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 // java.lang.Exception e
        10: .line 774
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* originalException */
            invokevirtual com.netflix.hystrix.AbstractCommand.isRecoverableError:(Ljava/lang/Throwable;)Z
            ifeq 12
        11: .line 775
            getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
            ldc "Recovered from java.lang.Error by serving Hystrix fallback"
            aload 5 /* originalException */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        12: .line 778
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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: .line 781
            new com.netflix.hystrix.AbstractCommand$19
            dup
            aload 0 /* this */
            aload 6 /* requestContext */
            invokespecial com.netflix.hystrix.AbstractCommand$19.<init>:(Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestContext;)V
            astore 9 /* setRequestContext */
        start local 9 // rx.functions.Action1 setRequestContext
        14: .line 788
            new com.netflix.hystrix.AbstractCommand$20
            dup
            aload 0 /* this */
            invokespecial com.netflix.hystrix.AbstractCommand$20.<init>:(Lcom/netflix/hystrix/AbstractCommand;)V
            astore 10 /* markFallbackEmit */
        start local 10 // rx.functions.Action1 markFallbackEmit
        15: .line 798
            new com.netflix.hystrix.AbstractCommand$21
            dup
            aload 0 /* this */
            invokespecial com.netflix.hystrix.AbstractCommand$21.<init>:(Lcom/netflix/hystrix/AbstractCommand;)V
            astore 11 /* markFallbackCompleted */
        start local 11 // rx.functions.Action0 markFallbackCompleted
        16: .line 807
            new com.netflix.hystrix.AbstractCommand$22
            dup
            aload 0 /* this */
            aload 5 /* originalException */
            aload 3 /* failureType */
            aload 1 /* _cmd */
            aload 4 /* message */
            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 /* handleFallbackError */
        start local 12 // rx.functions.Func1 handleFallbackError
        17: .line 837
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.AbstractCommand.getFallbackSemaphore:()Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
            astore 13 /* fallbackSemaphore */
        start local 13 // com.netflix.hystrix.AbstractCommand$TryableSemaphore fallbackSemaphore
        18: .line 838
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
            astore 14 /* semaphoreHasBeenReleased */
        start local 14 // java.util.concurrent.atomic.AtomicBoolean semaphoreHasBeenReleased
        19: .line 839
            new com.netflix.hystrix.AbstractCommand$23
            dup
            aload 0 /* this */
            aload 14 /* semaphoreHasBeenReleased */
            aload 13 /* fallbackSemaphore */
            invokespecial com.netflix.hystrix.AbstractCommand$23.<init>:(Lcom/netflix/hystrix/AbstractCommand;Ljava/util/concurrent/atomic/AtomicBoolean;Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;)V
            astore 15 /* singleSemaphoreRelease */
        start local 15 // rx.functions.Action0 singleSemaphoreRelease
        20: .line 851
            aload 13 /* fallbackSemaphore */
            invokeinterface com.netflix.hystrix.AbstractCommand$TryableSemaphore.tryAcquire:()Z
            ifeq 39
        21: .line 853
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.AbstractCommand.isFallbackUserDefined:()Z
            ifeq 25
        22: .line 854
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onFallbackStart:(Lcom/netflix/hystrix/HystrixInvokable;)V
        23: .line 855
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.AbstractCommand.getFallbackObservable:()Lrx/Observable;
            astore 16 /* fallbackExecutionChain */
        start local 16 // rx.Observable fallbackExecutionChain
        24: .line 856
            goto 29
        end local 16 // rx.Observable fallbackExecutionChain
        25: .line 858
      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 /* this */
            invokevirtual com.netflix.hystrix.AbstractCommand.getFallbackObservable:()Lrx/Observable;
            astore 16 /* fallbackExecutionChain */
        start local 16 // rx.Observable fallbackExecutionChain
        26: .line 860
            goto 29
        end local 16 // rx.Observable fallbackExecutionChain
      StackMap locals:
      StackMap stack: java.lang.Throwable
        27: astore 17 /* ex */
        start local 17 // java.lang.Throwable ex
        28: .line 862
            aload 17 /* ex */
            invokestatic rx.Observable.error:(Ljava/lang/Throwable;)Lrx/Observable;
            astore 16 /* fallbackExecutionChain */
        end local 17 // java.lang.Throwable ex
        start local 16 // rx.Observable fallbackExecutionChain
        29: .line 865
      StackMap locals: rx.Observable
      StackMap stack:
            aload 16 /* fallbackExecutionChain */
        30: .line 866
            aload 9 /* setRequestContext */
            invokevirtual rx.Observable.doOnEach:(Lrx/functions/Action1;)Lrx/Observable;
        31: .line 867
            new com.netflix.hystrix.AbstractCommand$FallbackHookApplication
            dup
            aload 0 /* this */
            aload 1 /* _cmd */
            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: .line 868
            new com.netflix.hystrix.AbstractCommand$DeprecatedOnFallbackHookApplication
            dup
            aload 0 /* this */
            aload 1 /* _cmd */
            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: .line 869
            aload 10 /* markFallbackEmit */
            invokevirtual rx.Observable.doOnNext:(Lrx/functions/Action1;)Lrx/Observable;
        34: .line 870
            aload 11 /* markFallbackCompleted */
            invokevirtual rx.Observable.doOnCompleted:(Lrx/functions/Action0;)Lrx/Observable;
        35: .line 871
            aload 12 /* handleFallbackError */
            invokevirtual rx.Observable.onErrorResumeNext:(Lrx/functions/Func1;)Lrx/Observable;
        36: .line 872
            aload 15 /* singleSemaphoreRelease */
            invokevirtual rx.Observable.doOnTerminate:(Lrx/functions/Action0;)Lrx/Observable;
        37: .line 873
            aload 15 /* singleSemaphoreRelease */
            invokevirtual rx.Observable.doOnUnsubscribe:(Lrx/functions/Action0;)Lrx/Observable;
        38: .line 865
            areturn
        end local 16 // rx.Observable fallbackExecutionChain
        39: .line 875
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.AbstractCommand.handleFallbackRejectionByEmittingError:()Lrx/Observable;
            areturn
        end local 15 // rx.functions.Action0 singleSemaphoreRelease
        end local 14 // java.util.concurrent.atomic.AtomicBoolean semaphoreHasBeenReleased
        end local 13 // com.netflix.hystrix.AbstractCommand$TryableSemaphore fallbackSemaphore
        end local 12 // rx.functions.Func1 handleFallbackError
        end local 11 // rx.functions.Action0 markFallbackCompleted
        end local 10 // rx.functions.Action1 markFallbackEmit
        end local 9 // rx.functions.Action1 setRequestContext
        40: .line 878
      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 /* this */
            aload 5 /* originalException */
            aload 3 /* failureType */
            aload 4 /* message */
            invokevirtual com.netflix.hystrix.AbstractCommand.handleFallbackDisabledByEmittingError:(Ljava/lang/Exception;Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/String;)Lrx/Observable;
            areturn
        end local 7 // long latency
        end local 6 // com.netflix.hystrix.strategy.concurrency.HystrixRequestContext requestContext
        end local 5 // java.lang.Exception originalException
        end local 4 // java.lang.String message
        end local 3 // com.netflix.hystrix.exception.HystrixRuntimeException$FailureType failureType
        end local 2 // com.netflix.hystrix.HystrixEventType eventType
        end local 1 // com.netflix.hystrix.AbstractCommand _cmd
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // com.netflix.hystrix.AbstractCommand _cmd
         0: .line 887
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.AbstractCommand.getExecutionObservable:()Lrx/Observable;
            astore 2 /* userObservable */
        start local 2 // rx.Observable userObservable
         1: .line 888
            goto 4
        end local 2 // rx.Observable userObservable
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 3 /* ex */
        start local 3 // java.lang.Throwable ex
         3: .line 891
            aload 3 /* ex */
            invokestatic rx.Observable.error:(Ljava/lang/Throwable;)Lrx/Observable;
            astore 2 /* userObservable */
        end local 3 // java.lang.Throwable ex
        start local 2 // rx.Observable userObservable
         4: .line 894
      StackMap locals: rx.Observable
      StackMap stack:
            aload 2 /* userObservable */
         5: .line 895
            new com.netflix.hystrix.AbstractCommand$ExecutionHookApplication
            dup
            aload 0 /* this */
            aload 1 /* _cmd */
            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: .line 896
            new com.netflix.hystrix.AbstractCommand$DeprecatedOnRunHookApplication
            dup
            aload 0 /* this */
            aload 1 /* _cmd */
            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: .line 894
            areturn
        end local 2 // rx.Observable userObservable
        end local 1 // com.netflix.hystrix.AbstractCommand _cmd
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // com.netflix.hystrix.HystrixCommandResponseFromCache fromCache
        start local 2 // com.netflix.hystrix.AbstractCommand _cmd
         0: .line 901
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onCacheHit:(Lcom/netflix/hystrix/HystrixInvokable;)V
         1: .line 902
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 3 /* hookEx */
        start local 3 // java.lang.Throwable hookEx
         3: .line 903
            getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
            ldc "Error calling HystrixCommandExecutionHook.onCacheHit"
            aload 3 /* hookEx */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable hookEx
         4: .line 906
      StackMap locals:
      StackMap stack:
            aload 1 /* fromCache */
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.HystrixCommandResponseFromCache.toObservableWithStateCopiedInto:(Lcom/netflix/hystrix/AbstractCommand;)Lrx/Observable;
         5: .line 907
            new com.netflix.hystrix.AbstractCommand$24
            dup
            aload 0 /* this */
            invokespecial com.netflix.hystrix.AbstractCommand$24.<init>:(Lcom/netflix/hystrix/AbstractCommand;)V
            invokevirtual rx.Observable.doOnTerminate:(Lrx/functions/Action0;)Lrx/Observable;
         6: .line 917
            new com.netflix.hystrix.AbstractCommand$25
            dup
            aload 0 /* this */
            invokespecial com.netflix.hystrix.AbstractCommand$25.<init>:(Lcom/netflix/hystrix/AbstractCommand;)V
            invokevirtual rx.Observable.doOnUnsubscribe:(Lrx/functions/Action0;)Lrx/Observable;
         7: .line 906
            areturn
        end local 2 // com.netflix.hystrix.AbstractCommand _cmd
        end local 1 // com.netflix.hystrix.HystrixCommandResponseFromCache fromCache
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // boolean commandExecutionStarted
         0: .line 930
            aload 0 /* this */
            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 /* tl */
        start local 2 // java.lang.ref.Reference tl
         1: .line 931
            aload 2 /* tl */
            ifnull 3
         2: .line 932
            aload 2 /* tl */
            invokevirtual java.lang.ref.Reference.clear:()V
         3: .line 935
      StackMap locals: java.lang.ref.Reference
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.commandStartTimestamp:J
            lsub
            lstore 3 /* latency */
        start local 3 // long latency
         4: .line 936
            aload 0 /* this */
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
         5: .line 937
            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: .line 938
            lload 3 /* latency */
            invokevirtual com.netflix.hystrix.ExecutionResult.markUserThreadCompletion:(J)Lcom/netflix/hystrix/ExecutionResult;
         7: .line 939
            invokevirtual com.netflix.hystrix.ExecutionResult.setNotExecutedInThread:()Lcom/netflix/hystrix/ExecutionResult;
         8: .line 936
            putfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
         9: .line 940
            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: .line 941
            lload 3 /* latency */
            invokevirtual com.netflix.hystrix.ExecutionResult.markUserThreadCompletion:(J)Lcom/netflix/hystrix/ExecutionResult;
        11: .line 940
            astore 5 /* cacheOnlyForMetrics */
        start local 5 // com.netflix.hystrix.ExecutionResult cacheOnlyForMetrics
        12: .line 942
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.metrics:Lcom/netflix/hystrix/HystrixCommandMetrics;
            aload 5 /* cacheOnlyForMetrics */
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.threadPoolKey:Lcom/netflix/hystrix/HystrixThreadPoolKey;
            iload 1 /* commandExecutionStarted */
            invokevirtual com.netflix.hystrix.HystrixCommandMetrics.markCommandDone:(Lcom/netflix/hystrix/ExecutionResult;Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixThreadPoolKey;Z)V
        13: .line 943
            aload 0 /* this */
            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 /* this */
            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: .line 944
            return
        end local 5 // com.netflix.hystrix.ExecutionResult cacheOnlyForMetrics
        end local 3 // long latency
        end local 2 // java.lang.ref.Reference tl
        end local 1 // boolean commandExecutionStarted
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // boolean commandExecutionStarted
         0: .line 947
            aload 0 /* this */
            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 /* tl */
        start local 2 // java.lang.ref.Reference tl
         1: .line 948
            aload 2 /* tl */
            ifnull 3
         2: .line 949
            aload 2 /* tl */
            invokevirtual java.lang.ref.Reference.clear:()V
         3: .line 952
      StackMap locals: java.lang.ref.Reference
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.commandStartTimestamp:J
            lsub
            lstore 3 /* userThreadLatency */
        start local 3 // long userThreadLatency
         4: .line 953
            aload 0 /* this */
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
            lload 3 /* userThreadLatency */
            l2i
            i2l
            invokevirtual com.netflix.hystrix.ExecutionResult.markUserThreadCompletion:(J)Lcom/netflix/hystrix/ExecutionResult;
            putfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
         5: .line 954
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResultAtTimeOfCancellation:Lcom/netflix/hystrix/ExecutionResult;
            ifnonnull 8
         6: .line 955
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.metrics:Lcom/netflix/hystrix/HystrixCommandMetrics;
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.threadPoolKey:Lcom/netflix/hystrix/HystrixThreadPoolKey;
            iload 1 /* commandExecutionStarted */
            invokevirtual com.netflix.hystrix.HystrixCommandMetrics.markCommandDone:(Lcom/netflix/hystrix/ExecutionResult;Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixThreadPoolKey;Z)V
         7: .line 956
            goto 9
         8: .line 957
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.metrics:Lcom/netflix/hystrix/HystrixCommandMetrics;
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResultAtTimeOfCancellation:Lcom/netflix/hystrix/ExecutionResult;
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.threadPoolKey:Lcom/netflix/hystrix/HystrixThreadPoolKey;
            iload 1 /* commandExecutionStarted */
            invokevirtual com.netflix.hystrix.HystrixCommandMetrics.markCommandDone:(Lcom/netflix/hystrix/ExecutionResult;Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixThreadPoolKey;Z)V
         9: .line 960
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.endCurrentThreadExecutingCommand:Lrx/functions/Action0;
            ifnull 11
        10: .line 961
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.endCurrentThreadExecutingCommand:Lrx/functions/Action0;
            invokeinterface rx.functions.Action0.call:()V
        11: .line 963
      StackMap locals:
      StackMap stack:
            return
        end local 3 // long userThreadLatency
        end local 2 // java.lang.ref.Reference tl
        end local 1 // boolean commandExecutionStarted
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 966
            new java.lang.RuntimeException
            dup
            ldc "could not acquire a semaphore for execution"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            astore 1 /* semaphoreRejectionException */
        start local 1 // java.lang.Exception semaphoreRejectionException
         1: .line 967
            aload 0 /* this */
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
            aload 1 /* semaphoreRejectionException */
            invokevirtual com.netflix.hystrix.ExecutionResult.setExecutionException:(Ljava/lang/Exception;)Lcom/netflix/hystrix/ExecutionResult;
            putfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
         2: .line 968
            aload 0 /* this */
            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 /* this */
            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: .line 969
            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: .line 971
            aload 0 /* this */
            aload 0 /* this */
            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: .line 972
            ldc "could not acquire a semaphore for execution"
            aload 1 /* semaphoreRejectionException */
         6: .line 971
            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 // java.lang.Exception semaphoreRejectionException
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 977
            aload 0 /* this */
            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 /* this */
            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: .line 979
            new java.lang.RuntimeException
            dup
            ldc "Hystrix circuit short-circuited and is OPEN"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            astore 1 /* shortCircuitException */
        start local 1 // java.lang.Exception shortCircuitException
         2: .line 980
            aload 0 /* this */
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
            aload 1 /* shortCircuitException */
            invokevirtual com.netflix.hystrix.ExecutionResult.setExecutionException:(Ljava/lang/Exception;)Lcom/netflix/hystrix/ExecutionResult;
            putfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
         3: .line 982
            aload 0 /* this */
            aload 0 /* this */
            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: .line 983
            ldc "short-circuited"
            aload 1 /* shortCircuitException */
         5: .line 982
            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: .line 984
      StackMap locals: com.netflix.hystrix.AbstractCommand java.lang.Exception
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         8: .line 985
            aload 2 /* e */
            invokestatic rx.Observable.error:(Ljava/lang/Throwable;)Lrx/Observable;
            areturn
        end local 2 // java.lang.Exception e
        end local 1 // java.lang.Exception shortCircuitException
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // java.lang.Exception underlying
         0: .line 990
            aload 0 /* this */
            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 /* this */
            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: .line 991
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.threadPool:Lcom/netflix/hystrix/HystrixThreadPool;
            invokeinterface com.netflix.hystrix.HystrixThreadPool.markThreadRejection:()V
         2: .line 993
            aload 0 /* this */
            aload 0 /* this */
            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 /* underlying */
            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 // java.lang.Exception underlying
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 997
            aload 0 /* this */
            aload 0 /* this */
            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 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // java.lang.Exception underlying
         0: .line 1001
            aload 1 /* underlying */
            astore 2 /* toEmit */
        start local 2 // java.lang.Exception toEmit
         1: .line 1004
            invokestatic java.lang.System.currentTimeMillis:()J
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
            invokevirtual com.netflix.hystrix.ExecutionResult.getStartTimestamp:()J
            lsub
            lstore 3 /* executionLatency */
        start local 3 // long executionLatency
         2: .line 1005
            aload 0 /* this */
            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 /* this */
            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: .line 1006
            aload 0 /* this */
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
            lload 3 /* executionLatency */
            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: .line 1007
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
            aload 0 /* this */
            getstatic com.netflix.hystrix.exception.HystrixRuntimeException$FailureType.BAD_REQUEST_EXCEPTION:Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;
            aload 1 /* underlying */
            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 /* decorated */
        start local 5 // java.lang.Exception decorated
         5: .line 1009
            aload 5 /* decorated */
            instanceof com.netflix.hystrix.exception.HystrixBadRequestException
            ifeq 8
         6: .line 1010
            aload 5 /* decorated */
            astore 2 /* toEmit */
         7: .line 1011
            goto 12
         8: .line 1012
      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 /* decorated */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 5 // java.lang.Exception decorated
        end local 3 // long executionLatency
         9: .line 1014
            goto 12
      StackMap locals: com.netflix.hystrix.AbstractCommand java.lang.Exception java.lang.Exception
      StackMap stack: java.lang.Exception
        10: astore 3 /* hookEx */
        start local 3 // java.lang.Exception hookEx
        11: .line 1015
            getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
            ldc "Error calling HystrixCommandExecutionHook.onError"
            aload 3 /* hookEx */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Exception hookEx
        12: .line 1020
      StackMap locals:
      StackMap stack:
            aload 2 /* toEmit */
            invokestatic rx.Observable.error:(Ljava/lang/Throwable;)Lrx/Observable;
            areturn
        end local 2 // java.lang.Exception toEmit
        end local 1 // java.lang.Exception underlying
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // java.lang.Exception underlying
         0: .line 1027
            getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
            ldc "Error executing HystrixCommand.run(). Proceeding to fallback logic ..."
            aload 1 /* underlying */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
         1: .line 1030
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.eventNotifier:Lcom/netflix/hystrix/strategy/eventnotifier/HystrixEventNotifier;
            getstatic com.netflix.hystrix.HystrixEventType.FAILURE:Lcom/netflix/hystrix/HystrixEventType;
            aload 0 /* this */
            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: .line 1033
            aload 0 /* this */
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
            aload 1 /* underlying */
            invokevirtual com.netflix.hystrix.ExecutionResult.setException:(Ljava/lang/Exception;)Lcom/netflix/hystrix/ExecutionResult;
            putfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
         3: .line 1034
            aload 0 /* this */
            aload 0 /* this */
            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 /* underlying */
            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 // java.lang.Exception underlying
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1038
            invokestatic java.lang.System.currentTimeMillis:()J
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
            invokevirtual com.netflix.hystrix.ExecutionResult.getStartTimestamp:()J
            lsub
            lstore 1 /* latencyWithFallback */
        start local 1 // long latencyWithFallback
         1: .line 1039
            aload 0 /* this */
            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 /* this */
            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: .line 1040
            aload 0 /* this */
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
            lload 1 /* latencyWithFallback */
            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: .line 1041
            getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
            ldc "HystrixCommand Fallback Rejection."
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
         4: .line 1043
            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 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            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 // long latencyWithFallback
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // java.lang.Exception underlying
        start local 2 // com.netflix.hystrix.exception.HystrixRuntimeException$FailureType failureType
        start local 3 // java.lang.String message
         0: .line 1048
            getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
            ldc "Fallback disabled for HystrixCommand so will throw HystrixRuntimeException. "
            aload 1 /* underlying */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
         1: .line 1051
            aload 0 /* this */
            aload 2 /* failureType */
            aload 1 /* underlying */
            invokevirtual com.netflix.hystrix.AbstractCommand.wrapWithOnErrorHook:(Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;Ljava/lang/Throwable;)Ljava/lang/Exception;
            astore 4 /* wrapped */
        start local 4 // java.lang.Exception wrapped
         2: .line 1052
            new com.netflix.hystrix.exception.HystrixRuntimeException
            dup
            aload 2 /* failureType */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            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 /* message */
            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 /* wrapped */
            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 // java.lang.Exception wrapped
        end local 3 // java.lang.String message
        end local 2 // com.netflix.hystrix.exception.HystrixRuntimeException$FailureType failureType
        end local 1 // java.lang.Exception underlying
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // java.lang.Throwable underlying
         0: .line 1056
            aload 1 /* underlying */
            instanceof com.netflix.hystrix.exception.ExceptionNotWrappedByHystrix
            ireturn
        end local 1 // java.lang.Throwable underlying
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // java.lang.Throwable t
         0: .line 1076
            aload 1 /* t */
            ifnull 10
            aload 1 /* t */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            ifnull 10
         1: .line 1077
            aload 1 /* t */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            astore 2 /* cause */
        start local 2 // java.lang.Throwable cause
         2: .line 1078
            aload 2 /* cause */
            instanceof java.lang.StackOverflowError
            ifeq 4
         3: .line 1079
            iconst_1
            ireturn
         4: .line 1080
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 2 /* cause */
            instanceof java.lang.VirtualMachineError
            ifeq 6
         5: .line 1081
            iconst_1
            ireturn
         6: .line 1082
      StackMap locals:
      StackMap stack:
            aload 2 /* cause */
            instanceof java.lang.ThreadDeath
            ifeq 8
         7: .line 1083
            iconst_1
            ireturn
         8: .line 1084
      StackMap locals:
      StackMap stack:
            aload 2 /* cause */
            instanceof java.lang.LinkageError
            ifeq 10
         9: .line 1085
            iconst_1
            ireturn
        end local 2 // java.lang.Throwable cause
        10: .line 1088
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Throwable t
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // java.lang.Throwable t
         0: .line 1092
            aload 1 /* t */
            ifnull 6
            aload 1 /* t */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            ifnull 6
         1: .line 1093
            aload 1 /* t */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            astore 2 /* cause */
        start local 2 // java.lang.Throwable cause
         2: .line 1094
            aload 2 /* cause */
            instanceof java.lang.Error
            ifeq 6
         3: .line 1095
            aload 0 /* this */
            aload 1 /* t */
            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 // java.lang.Throwable cause
         6: .line 1098
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Throwable t
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // com.netflix.hystrix.AbstractCommand _cmd
         0: .line 1102
            invokestatic com.netflix.hystrix.HystrixCounters.decrementGlobalConcurrentThreads:()I
            pop
         1: .line 1103
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.threadPool:Lcom/netflix/hystrix/HystrixThreadPool;
            invokeinterface com.netflix.hystrix.HystrixThreadPool.markThreadCompletion:()V
         2: .line 1105
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
            aload 1 /* _cmd */
            invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onThreadComplete:(Lcom/netflix/hystrix/HystrixInvokable;)V
         3: .line 1106
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 2 /* hookEx */
        start local 2 // java.lang.Throwable hookEx
         5: .line 1107
            getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
            ldc "Error calling HystrixCommandExecutionHook.onThreadComplete"
            aload 2 /* hookEx */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 2 // java.lang.Throwable hookEx
         6: .line 1109
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.netflix.hystrix.AbstractCommand _cmd
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1117
            iconst_0
            ireturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.strategy.concurrency.HystrixRequestContext currentRequestContext
         0: .line 1222
            invokestatic com.netflix.hystrix.strategy.concurrency.HystrixRequestContext.isCurrentThreadInitialized:()Z
            ifne 2
         1: .line 1224
            aload 0 /* currentRequestContext */
            invokestatic com.netflix.hystrix.strategy.concurrency.HystrixRequestContext.setContextOnCurrentThread:(Lcom/netflix/hystrix/strategy/concurrency/HystrixRequestContext;)V
         2: .line 1226
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.netflix.hystrix.strategy.concurrency.HystrixRequestContext currentRequestContext
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1234
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.fallbackSemaphoreOverride:Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
            ifnonnull 6
         1: .line 1235
            getstatic com.netflix.hystrix.AbstractCommand.fallbackSemaphorePerCircuit:Ljava/util/concurrent/ConcurrentHashMap;
            aload 0 /* this */
            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 /* _s */
        start local 1 // com.netflix.hystrix.AbstractCommand$TryableSemaphore _s
         2: .line 1236
            aload 1 /* _s */
            ifnonnull 5
         3: .line 1238
            getstatic com.netflix.hystrix.AbstractCommand.fallbackSemaphorePerCircuit:Ljava/util/concurrent/ConcurrentHashMap;
            aload 0 /* this */
            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 /* this */
            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: .line 1240
            getstatic com.netflix.hystrix.AbstractCommand.fallbackSemaphorePerCircuit:Ljava/util/concurrent/ConcurrentHashMap;
            aload 0 /* this */
            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: .line 1242
      StackMap locals: com.netflix.hystrix.AbstractCommand$TryableSemaphore
      StackMap stack:
            aload 1 /* _s */
            areturn
        end local 1 // com.netflix.hystrix.AbstractCommand$TryableSemaphore _s
         6: .line 1245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.fallbackSemaphoreOverride:Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
            areturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1255
            aload 0 /* this */
            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: .line 1256
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionSemaphoreOverride:Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
            ifnonnull 7
         2: .line 1257
            getstatic com.netflix.hystrix.AbstractCommand.executionSemaphorePerCircuit:Ljava/util/concurrent/ConcurrentHashMap;
            aload 0 /* this */
            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 /* _s */
        start local 1 // com.netflix.hystrix.AbstractCommand$TryableSemaphore _s
         3: .line 1258
            aload 1 /* _s */
            ifnonnull 6
         4: .line 1260
            getstatic com.netflix.hystrix.AbstractCommand.executionSemaphorePerCircuit:Ljava/util/concurrent/ConcurrentHashMap;
            aload 0 /* this */
            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 /* this */
            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: .line 1262
            getstatic com.netflix.hystrix.AbstractCommand.executionSemaphorePerCircuit:Ljava/util/concurrent/ConcurrentHashMap;
            aload 0 /* this */
            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: .line 1264
      StackMap locals: com.netflix.hystrix.AbstractCommand$TryableSemaphore
      StackMap stack:
            aload 1 /* _s */
            areturn
        end local 1 // com.netflix.hystrix.AbstractCommand$TryableSemaphore _s
         7: .line 1267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionSemaphoreOverride:Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
            areturn
         8: .line 1271
      StackMap locals:
      StackMap stack:
            getstatic com.netflix.hystrix.AbstractCommand$TryableSemaphoreNoOp.DEFAULT:Lcom/netflix/hystrix/AbstractCommand$TryableSemaphore;
            areturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1293
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.commandGroup:Lcom/netflix/hystrix/HystrixCommandGroupKey;
            areturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1300
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
            areturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1308
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.threadPoolKey:Lcom/netflix/hystrix/HystrixThreadPoolKey;
            areturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1312
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.circuitBreaker:Lcom/netflix/hystrix/HystrixCircuitBreaker;
            areturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1321
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.metrics:Lcom/netflix/hystrix/HystrixCommandMetrics;
            areturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1330
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.properties:Lcom/netflix/hystrix/HystrixCommandProperties;
            areturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // java.lang.Throwable t
         0: .line 1490
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.netflix.hystrix.AbstractCommand.getExceptionFromThrowable:(Ljava/lang/Throwable;)Ljava/lang/Exception;
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         1: .line 1492
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
            aload 0 /* this */
            aload 2 /* e */
            invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onExecutionError:(Lcom/netflix/hystrix/HystrixInvokable;Ljava/lang/Exception;)Ljava/lang/Exception;
         2: areturn
         3: .line 1493
      StackMap locals: com.netflix.hystrix.AbstractCommand java.lang.Throwable java.lang.Exception
      StackMap stack: java.lang.Throwable
            astore 3 /* hookEx */
        start local 3 // java.lang.Throwable hookEx
         4: .line 1494
            getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
            ldc "Error calling HystrixCommandExecutionHook.onExecutionError"
            aload 3 /* hookEx */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
         5: .line 1495
            aload 2 /* e */
            areturn
        end local 3 // java.lang.Throwable hookEx
        end local 2 // java.lang.Exception e
        end local 1 // java.lang.Throwable t
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // java.lang.Throwable t
         0: .line 1500
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.netflix.hystrix.AbstractCommand.getExceptionFromThrowable:(Ljava/lang/Throwable;)Ljava/lang/Exception;
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         1: .line 1502
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.AbstractCommand.isFallbackUserDefined:()Z
            ifeq 4
         2: .line 1503
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
            aload 0 /* this */
            aload 2 /* e */
            invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onFallbackError:(Lcom/netflix/hystrix/HystrixInvokable;Ljava/lang/Exception;)Ljava/lang/Exception;
         3: areturn
         4: .line 1505
      StackMap locals: java.lang.Exception
      StackMap stack:
            aload 2 /* e */
         5: areturn
         6: .line 1507
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* hookEx */
        start local 3 // java.lang.Throwable hookEx
         7: .line 1508
            getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
            ldc "Error calling HystrixCommandExecutionHook.onFallbackError"
            aload 3 /* hookEx */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
         8: .line 1509
            aload 2 /* e */
            areturn
        end local 3 // java.lang.Throwable hookEx
        end local 2 // java.lang.Exception e
        end local 1 // java.lang.Throwable t
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // com.netflix.hystrix.exception.HystrixRuntimeException$FailureType failureType
        start local 2 // java.lang.Throwable t
         0: .line 1514
            aload 0 /* this */
            aload 2 /* t */
            invokevirtual com.netflix.hystrix.AbstractCommand.getExceptionFromThrowable:(Ljava/lang/Throwable;)Ljava/lang/Exception;
            astore 3 /* e */
        start local 3 // java.lang.Exception e
         1: .line 1516
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
            aload 0 /* this */
            aload 1 /* failureType */
            aload 3 /* e */
            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: .line 1517
      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 /* hookEx */
        start local 4 // java.lang.Throwable hookEx
         4: .line 1518
            getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
            ldc "Error calling HystrixCommandExecutionHook.onError"
            aload 4 /* hookEx */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
         5: .line 1519
            aload 3 /* e */
            areturn
        end local 4 // java.lang.Throwable hookEx
        end local 3 // java.lang.Exception e
        end local 2 // java.lang.Throwable t
        end local 1 // com.netflix.hystrix.exception.HystrixRuntimeException$FailureType failureType
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // java.lang.Object r
         0: .line 1525
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
            aload 0 /* this */
            aload 1 /* r */
            invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onExecutionEmit:(Lcom/netflix/hystrix/HystrixInvokable;Ljava/lang/Object;)Ljava/lang/Object;
         1: areturn
         2: .line 1526
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* hookEx */
        start local 2 // java.lang.Throwable hookEx
         3: .line 1527
            getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
            ldc "Error calling HystrixCommandExecutionHook.onExecutionEmit"
            aload 2 /* hookEx */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
         4: .line 1528
            aload 1 /* r */
            areturn
        end local 2 // java.lang.Throwable hookEx
        end local 1 // java.lang.Object r
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // java.lang.Object r
         0: .line 1534
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
            aload 0 /* this */
            aload 1 /* r */
            invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onFallbackEmit:(Lcom/netflix/hystrix/HystrixInvokable;Ljava/lang/Object;)Ljava/lang/Object;
         1: areturn
         2: .line 1535
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* hookEx */
        start local 2 // java.lang.Throwable hookEx
         3: .line 1536
            getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
            ldc "Error calling HystrixCommandExecutionHook.onFallbackEmit"
            aload 2 /* hookEx */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
         4: .line 1537
            aload 1 /* r */
            areturn
        end local 2 // java.lang.Throwable hookEx
        end local 1 // java.lang.Object r
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // java.lang.Object r
         0: .line 1543
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
            aload 0 /* this */
            aload 1 /* r */
            invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onEmit:(Lcom/netflix/hystrix/HystrixInvokable;Ljava/lang/Object;)Ljava/lang/Object;
         1: areturn
         2: .line 1544
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* hookEx */
        start local 2 // java.lang.Throwable hookEx
         3: .line 1545
            getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
            ldc "Error calling HystrixCommandExecutionHook.onEmit"
            aload 2 /* hookEx */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
         4: .line 1546
            aload 1 /* r */
            areturn
        end local 2 // java.lang.Throwable hookEx
        end local 1 // java.lang.Object r
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // java.lang.Exception e
         0: .line 1560
            aload 1 /* e */
            instanceof java.lang.IllegalStateException
            ifeq 2
         1: .line 1561
            aload 1 /* e */
            checkcast java.lang.IllegalStateException
            areturn
         2: .line 1563
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            instanceof com.netflix.hystrix.exception.HystrixBadRequestException
            ifeq 6
         3: .line 1564
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            invokevirtual com.netflix.hystrix.AbstractCommand.shouldNotBeWrapped:(Ljava/lang/Throwable;)Z
            ifeq 5
         4: .line 1565
            aload 1 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            areturn
         5: .line 1567
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            checkcast com.netflix.hystrix.exception.HystrixBadRequestException
            areturn
         6: .line 1569
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            instanceof com.netflix.hystrix.exception.HystrixBadRequestException
            ifeq 10
         7: .line 1570
            aload 0 /* this */
            aload 1 /* e */
            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: .line 1571
            aload 1 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            areturn
         9: .line 1573
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            checkcast com.netflix.hystrix.exception.HystrixBadRequestException
            areturn
        10: .line 1575
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            instanceof com.netflix.hystrix.exception.HystrixRuntimeException
            ifeq 12
        11: .line 1576
            aload 1 /* e */
            checkcast com.netflix.hystrix.exception.HystrixRuntimeException
            areturn
        12: .line 1579
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            instanceof com.netflix.hystrix.exception.HystrixRuntimeException
            ifeq 14
        13: .line 1580
            aload 1 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            checkcast com.netflix.hystrix.exception.HystrixRuntimeException
            areturn
        14: .line 1582
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual com.netflix.hystrix.AbstractCommand.shouldNotBeWrapped:(Ljava/lang/Throwable;)Z
            ifeq 16
        15: .line 1583
            aload 1 /* e */
            areturn
        16: .line 1585
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            invokevirtual com.netflix.hystrix.AbstractCommand.shouldNotBeWrapped:(Ljava/lang/Throwable;)Z
            ifeq 18
        17: .line 1586
            aload 1 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            areturn
        18: .line 1589
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            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 /* message */
        start local 2 // java.lang.String message
        19: .line 1590
            getstatic com.netflix.hystrix.AbstractCommand.logger:Lorg/slf4j/Logger;
            aload 2 /* message */
            aload 1 /* e */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
        20: .line 1591
            new com.netflix.hystrix.exception.HystrixRuntimeException
            dup
            getstatic com.netflix.hystrix.exception.HystrixRuntimeException$FailureType.COMMAND_EXCEPTION:Lcom/netflix/hystrix/exception/HystrixRuntimeException$FailureType;
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 2 /* message */
            aload 1 /* e */
            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 // java.lang.String message
        end local 1 // java.lang.Exception e
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1717
            aconst_null
            areturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1721
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.AbstractCommand.getCacheKey:()Ljava/lang/String;
            areturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1725
            aload 0 /* this */
            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 /* this */
            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 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1729
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.AbstractCommand.getCommandKey:()Lcom/netflix/hystrix/HystrixCommandKey;
            invokeinterface com.netflix.hystrix.HystrixCommandKey.name:()Ljava/lang/String;
            areturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1750
            aload 0 /* this */
            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 /* this */
            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 /* this */
            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 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1759
            aload 0 /* this */
            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 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1772
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
            invokevirtual com.netflix.hystrix.ExecutionResult.isExecutedInThread:()Z
            ireturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1781
            aload 0 /* this */
            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 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1790
            aload 0 /* this */
            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 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1803
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
            invokevirtual com.netflix.hystrix.ExecutionResult.getException:()Ljava/lang/Exception;
            areturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1823
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
            invokevirtual com.netflix.hystrix.ExecutionResult.getExecutionException:()Ljava/lang/Exception;
            areturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1833
            aload 0 /* this */
            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 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1843
            aload 0 /* this */
            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 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1853
            aload 0 /* this */
            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 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1862
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.isResponseFromCache:Z
            ireturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1871
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
            invokevirtual com.netflix.hystrix.ExecutionResult.isResponseSemaphoreRejected:()Z
            ireturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1880
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
            invokevirtual com.netflix.hystrix.ExecutionResult.isResponseThreadPoolRejected:()Z
            ireturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1889
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
            invokevirtual com.netflix.hystrix.ExecutionResult.isResponseRejected:()Z
            ireturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1900
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
            invokevirtual com.netflix.hystrix.ExecutionResult.getOrderedList:()Ljava/util/List;
            areturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1905
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResultAtTimeOfCancellation:Lcom/netflix/hystrix/ExecutionResult;
            ifnonnull 3
         1: .line 1906
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
            astore 1 /* resultToReturn */
        start local 1 // com.netflix.hystrix.ExecutionResult resultToReturn
         2: .line 1907
            goto 4
        end local 1 // com.netflix.hystrix.ExecutionResult resultToReturn
         3: .line 1908
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResultAtTimeOfCancellation:Lcom/netflix/hystrix/ExecutionResult;
            astore 1 /* resultToReturn */
        start local 1 // com.netflix.hystrix.ExecutionResult resultToReturn
         4: .line 1911
      StackMap locals: com.netflix.hystrix.ExecutionResult
      StackMap stack:
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.isResponseFromCache:Z
            ifeq 6
         5: .line 1912
            aload 1 /* resultToReturn */
            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 /* resultToReturn */
         6: .line 1915
      StackMap locals:
      StackMap stack:
            aload 1 /* resultToReturn */
            areturn
        end local 1 // com.netflix.hystrix.ExecutionResult resultToReturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1924
            aload 0 /* this */
            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 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1933
            aload 0 /* this */
            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 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1938
            aload 0 /* this */
            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 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1943
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
            invokevirtual com.netflix.hystrix.ExecutionResult.getCollapserKey:()Lcom/netflix/hystrix/HystrixCollapserKey;
            areturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1952
            aload 0 /* this */
            invokevirtual com.netflix.hystrix.AbstractCommand.getCommandResult:()Lcom/netflix/hystrix/ExecutionResult;
            invokevirtual com.netflix.hystrix.ExecutionResult.getExecutionLatency:()I
            ireturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1962
            aload 0 /* this */
            getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
            invokevirtual com.netflix.hystrix.ExecutionResult.getCommandRunStartTimeInNanos:()J
            lreturn
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
         0: .line 1967
            aload 0 /* this */
            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 // com.netflix.hystrix.AbstractCommand this
      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 // com.netflix.hystrix.AbstractCommand this
        start local 1 // java.lang.Throwable t
         0: .line 1972
            aload 1 /* t */
            instanceof java.lang.Exception
            ifeq 3
         1: .line 1973
            aload 1 /* t */
            checkcast java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         2: .line 1974
            goto 4
        end local 2 // java.lang.Exception e
         3: .line 1976
      StackMap locals:
      StackMap stack:
            new java.lang.Exception
            dup
            ldc "Throwable caught while executing."
            aload 1 /* t */
            invokespecial java.lang.Exception.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         4: .line 1978
      StackMap locals: java.lang.Exception
      StackMap stack:
            aload 2 /* e */
            areturn
        end local 2 // java.lang.Exception e
        end local 1 // java.lang.Throwable t
        end local 0 // com.netflix.hystrix.AbstractCommand this
      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