public class com.netflix.hystrix.HystrixCircuitBreaker$Factory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.netflix.hystrix.HystrixCircuitBreaker$Factory
  super_class: java.lang.Object
{
  private static java.util.concurrent.ConcurrentHashMap<java.lang.String, com.netflix.hystrix.HystrixCircuitBreaker> circuitBreakersByCommand;
    descriptor: Ljava/util/concurrent/ConcurrentHashMap;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/String;Lcom/netflix/hystrix/HystrixCircuitBreaker;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 58
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putstatic com.netflix.hystrix.HystrixCircuitBreaker$Factory.circuitBreakersByCommand:Ljava/util/concurrent/ConcurrentHashMap;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.netflix.hystrix.HystrixCircuitBreaker$Factory this
         0: .line 56
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.netflix.hystrix.HystrixCircuitBreaker$Factory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/netflix/hystrix/HystrixCircuitBreaker$Factory;

  public static com.netflix.hystrix.HystrixCircuitBreaker getInstance(com.netflix.hystrix.HystrixCommandKey, com.netflix.hystrix.HystrixCommandGroupKey, com.netflix.hystrix.HystrixCommandProperties, com.netflix.hystrix.HystrixCommandMetrics);
    descriptor: (Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixCommandGroupKey;Lcom/netflix/hystrix/HystrixCommandProperties;Lcom/netflix/hystrix/HystrixCommandMetrics;)Lcom/netflix/hystrix/HystrixCircuitBreaker;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=6, args_size=4
        start local 0 // com.netflix.hystrix.HystrixCommandKey key
        start local 1 // com.netflix.hystrix.HystrixCommandGroupKey group
        start local 2 // com.netflix.hystrix.HystrixCommandProperties properties
        start local 3 // com.netflix.hystrix.HystrixCommandMetrics metrics
         0: .line 77
            getstatic com.netflix.hystrix.HystrixCircuitBreaker$Factory.circuitBreakersByCommand:Ljava/util/concurrent/ConcurrentHashMap;
            aload 0 /* key */
            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.HystrixCircuitBreaker
            astore 4 /* previouslyCached */
        start local 4 // com.netflix.hystrix.HystrixCircuitBreaker previouslyCached
         1: .line 78
            aload 4 /* previouslyCached */
            ifnull 3
         2: .line 79
            aload 4 /* previouslyCached */
            areturn
         3: .line 87
      StackMap locals: com.netflix.hystrix.HystrixCircuitBreaker
      StackMap stack:
            getstatic com.netflix.hystrix.HystrixCircuitBreaker$Factory.circuitBreakersByCommand:Ljava/util/concurrent/ConcurrentHashMap;
            aload 0 /* key */
            invokeinterface com.netflix.hystrix.HystrixCommandKey.name:()Ljava/lang/String;
            new com.netflix.hystrix.HystrixCircuitBreaker$HystrixCircuitBreakerImpl
            dup
            aload 0 /* key */
            aload 1 /* group */
            aload 2 /* properties */
            aload 3 /* metrics */
            invokespecial com.netflix.hystrix.HystrixCircuitBreaker$HystrixCircuitBreakerImpl.<init>:(Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixCommandGroupKey;Lcom/netflix/hystrix/HystrixCommandProperties;Lcom/netflix/hystrix/HystrixCommandMetrics;)V
            invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.netflix.hystrix.HystrixCircuitBreaker
            astore 5 /* cbForCommand */
        start local 5 // com.netflix.hystrix.HystrixCircuitBreaker cbForCommand
         4: .line 88
            aload 5 /* cbForCommand */
            ifnonnull 6
         5: .line 90
            getstatic com.netflix.hystrix.HystrixCircuitBreaker$Factory.circuitBreakersByCommand:Ljava/util/concurrent/ConcurrentHashMap;
            aload 0 /* key */
            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.HystrixCircuitBreaker
            areturn
         6: .line 94
      StackMap locals: com.netflix.hystrix.HystrixCircuitBreaker
      StackMap stack:
            aload 5 /* cbForCommand */
            areturn
        end local 5 // com.netflix.hystrix.HystrixCircuitBreaker cbForCommand
        end local 4 // com.netflix.hystrix.HystrixCircuitBreaker previouslyCached
        end local 3 // com.netflix.hystrix.HystrixCommandMetrics metrics
        end local 2 // com.netflix.hystrix.HystrixCommandProperties properties
        end local 1 // com.netflix.hystrix.HystrixCommandGroupKey group
        end local 0 // com.netflix.hystrix.HystrixCommandKey key
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0               key  Lcom/netflix/hystrix/HystrixCommandKey;
            0    7     1             group  Lcom/netflix/hystrix/HystrixCommandGroupKey;
            0    7     2        properties  Lcom/netflix/hystrix/HystrixCommandProperties;
            0    7     3           metrics  Lcom/netflix/hystrix/HystrixCommandMetrics;
            1    7     4  previouslyCached  Lcom/netflix/hystrix/HystrixCircuitBreaker;
            4    7     5      cbForCommand  Lcom/netflix/hystrix/HystrixCircuitBreaker;
    MethodParameters:
            Name  Flags
      key         
      group       
      properties  
      metrics     

  public static com.netflix.hystrix.HystrixCircuitBreaker getInstance(com.netflix.hystrix.HystrixCommandKey);
    descriptor: (Lcom/netflix/hystrix/HystrixCommandKey;)Lcom/netflix/hystrix/HystrixCircuitBreaker;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.netflix.hystrix.HystrixCommandKey key
         0: .line 106
            getstatic com.netflix.hystrix.HystrixCircuitBreaker$Factory.circuitBreakersByCommand:Ljava/util/concurrent/ConcurrentHashMap;
            aload 0 /* key */
            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.HystrixCircuitBreaker
            areturn
        end local 0 // com.netflix.hystrix.HystrixCommandKey key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   key  Lcom/netflix/hystrix/HystrixCommandKey;
    MethodParameters:
      Name  Flags
      key   

  static void reset();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 113
            getstatic com.netflix.hystrix.HystrixCircuitBreaker$Factory.circuitBreakersByCommand:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
         1: .line 114
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "HystrixCircuitBreaker.java"
NestHost: com.netflix.hystrix.HystrixCircuitBreaker
InnerClasses:
  public Factory = com.netflix.hystrix.HystrixCircuitBreaker$Factory of com.netflix.hystrix.HystrixCircuitBreaker
  public HystrixCircuitBreakerImpl = com.netflix.hystrix.HystrixCircuitBreaker$HystrixCircuitBreakerImpl of com.netflix.hystrix.HystrixCircuitBreaker