public class com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory
  super_class: java.lang.Object
{
  private static com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory SINGLETON;
    descriptor: Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private final java.util.concurrent.ConcurrentHashMap<java.lang.String, com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCommand> commandPublishers;
    descriptor: Ljava/util/concurrent/ConcurrentHashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/String;Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherCommand;>;

  private final java.util.concurrent.ConcurrentHashMap<java.lang.String, com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherThreadPool> threadPoolPublishers;
    descriptor: Ljava/util/concurrent/ConcurrentHashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/String;Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherThreadPool;>;

  private final java.util.concurrent.ConcurrentHashMap<java.lang.String, com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCollapser> collapserPublishers;
    descriptor: Ljava/util/concurrent/ConcurrentHashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/String;Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherCollapser;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 50
            new com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory
            dup
            invokespecial com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.<init>:()V
            putstatic com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.SINGLETON:Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherFactory;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherThreadPool createOrRetrievePublisherForThreadPool(com.netflix.hystrix.HystrixThreadPoolKey, com.netflix.hystrix.HystrixThreadPoolMetrics, com.netflix.hystrix.HystrixThreadPoolProperties);
    descriptor: (Lcom/netflix/hystrix/HystrixThreadPoolKey;Lcom/netflix/hystrix/HystrixThreadPoolMetrics;Lcom/netflix/hystrix/HystrixThreadPoolProperties;)Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherThreadPool;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.netflix.hystrix.HystrixThreadPoolKey threadPoolKey
        start local 1 // com.netflix.hystrix.HystrixThreadPoolMetrics metrics
        start local 2 // com.netflix.hystrix.HystrixThreadPoolProperties properties
         0: .line 64
            getstatic com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.SINGLETON:Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherFactory;
            aload 0 /* threadPoolKey */
            aload 1 /* metrics */
            aload 2 /* properties */
            invokevirtual com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.getPublisherForThreadPool:(Lcom/netflix/hystrix/HystrixThreadPoolKey;Lcom/netflix/hystrix/HystrixThreadPoolMetrics;Lcom/netflix/hystrix/HystrixThreadPoolProperties;)Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherThreadPool;
            areturn
        end local 2 // com.netflix.hystrix.HystrixThreadPoolProperties properties
        end local 1 // com.netflix.hystrix.HystrixThreadPoolMetrics metrics
        end local 0 // com.netflix.hystrix.HystrixThreadPoolKey threadPoolKey
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0  threadPoolKey  Lcom/netflix/hystrix/HystrixThreadPoolKey;
            0    1     1        metrics  Lcom/netflix/hystrix/HystrixThreadPoolMetrics;
            0    1     2     properties  Lcom/netflix/hystrix/HystrixThreadPoolProperties;
    MethodParameters:
               Name  Flags
      threadPoolKey  
      metrics        
      properties     

  public static com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCommand createOrRetrievePublisherForCommand(com.netflix.hystrix.HystrixCommandKey, com.netflix.hystrix.HystrixCommandGroupKey, com.netflix.hystrix.HystrixCommandMetrics, com.netflix.hystrix.HystrixCircuitBreaker, com.netflix.hystrix.HystrixCommandProperties);
    descriptor: (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;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.netflix.hystrix.HystrixCommandKey commandKey
        start local 1 // com.netflix.hystrix.HystrixCommandGroupKey commandOwner
        start local 2 // com.netflix.hystrix.HystrixCommandMetrics metrics
        start local 3 // com.netflix.hystrix.HystrixCircuitBreaker circuitBreaker
        start local 4 // com.netflix.hystrix.HystrixCommandProperties properties
         0: .line 83
            getstatic com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.SINGLETON:Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherFactory;
            aload 0 /* commandKey */
            aload 1 /* commandOwner */
            aload 2 /* metrics */
            aload 3 /* circuitBreaker */
            aload 4 /* properties */
            invokevirtual com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.getPublisherForCommand:(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;
            areturn
        end local 4 // com.netflix.hystrix.HystrixCommandProperties properties
        end local 3 // com.netflix.hystrix.HystrixCircuitBreaker circuitBreaker
        end local 2 // com.netflix.hystrix.HystrixCommandMetrics metrics
        end local 1 // com.netflix.hystrix.HystrixCommandGroupKey commandOwner
        end local 0 // com.netflix.hystrix.HystrixCommandKey commandKey
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0      commandKey  Lcom/netflix/hystrix/HystrixCommandKey;
            0    1     1    commandOwner  Lcom/netflix/hystrix/HystrixCommandGroupKey;
            0    1     2         metrics  Lcom/netflix/hystrix/HystrixCommandMetrics;
            0    1     3  circuitBreaker  Lcom/netflix/hystrix/HystrixCircuitBreaker;
            0    1     4      properties  Lcom/netflix/hystrix/HystrixCommandProperties;
    MethodParameters:
                Name  Flags
      commandKey      
      commandOwner    
      metrics         
      circuitBreaker  
      properties      

  public static void reset();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 92
            new com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory
            dup
            invokespecial com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.<init>:()V
            putstatic com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.SINGLETON:Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherFactory;
         1: .line 93
            getstatic com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.SINGLETON:Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherFactory;
            getfield com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.commandPublishers:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
         2: .line 94
            getstatic com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.SINGLETON:Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherFactory;
            getfield com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.threadPoolPublishers:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
         3: .line 95
            getstatic com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.SINGLETON:Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherFactory;
            getfield com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.collapserPublishers:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
         4: .line 96
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory this
         0: .line 98
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 101
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.commandPublishers:Ljava/util/concurrent/ConcurrentHashMap;
         2: .line 124
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.threadPoolPublishers:Ljava/util/concurrent/ConcurrentHashMap;
         3: .line 164
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.collapserPublishers:Ljava/util/concurrent/ConcurrentHashMap;
         4: .line 98
            return
        end local 0 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherFactory;

  com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCommand getPublisherForCommand(com.netflix.hystrix.HystrixCommandKey, com.netflix.hystrix.HystrixCommandGroupKey, com.netflix.hystrix.HystrixCommandMetrics, com.netflix.hystrix.HystrixCircuitBreaker, com.netflix.hystrix.HystrixCommandProperties);
    descriptor: (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;
    flags: (0x0000) 
    Code:
      stack=6, locals=10, args_size=6
        start local 0 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory this
        start local 1 // com.netflix.hystrix.HystrixCommandKey commandKey
        start local 2 // com.netflix.hystrix.HystrixCommandGroupKey commandOwner
        start local 3 // com.netflix.hystrix.HystrixCommandMetrics metrics
        start local 4 // com.netflix.hystrix.HystrixCircuitBreaker circuitBreaker
        start local 5 // com.netflix.hystrix.HystrixCommandProperties properties
         0: .line 105
            aload 0 /* this */
            getfield com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.commandPublishers:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* commandKey */
            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.strategy.metrics.HystrixMetricsPublisherCommand
            astore 6 /* publisher */
        start local 6 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCommand publisher
         1: .line 106
            aload 6 /* publisher */
            ifnull 3
         2: .line 107
            aload 6 /* publisher */
            areturn
         3: .line 109
      StackMap locals: com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCommand
      StackMap stack:
            aload 0 /* this */
            dup
            astore 7
            monitorenter
         4: .line 110
            aload 0 /* this */
            getfield com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.commandPublishers:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* commandKey */
            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.strategy.metrics.HystrixMetricsPublisherCommand
            astore 8 /* existingPublisher */
        start local 8 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCommand existingPublisher
         5: .line 111
            aload 8 /* existingPublisher */
            ifnull 8
         6: .line 112
            aload 8 /* existingPublisher */
            aload 7
            monitorexit
         7: areturn
         8: .line 114
      StackMap locals: com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCommand
      StackMap stack:
            invokestatic com.netflix.hystrix.strategy.HystrixPlugins.getInstance:()Lcom/netflix/hystrix/strategy/HystrixPlugins;
            invokevirtual com.netflix.hystrix.strategy.HystrixPlugins.getMetricsPublisher:()Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisher;
            aload 1 /* commandKey */
            aload 2 /* commandOwner */
            aload 3 /* metrics */
            aload 4 /* circuitBreaker */
            aload 5 /* properties */
            invokevirtual com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher.getMetricsPublisherForCommand:(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;
            astore 9 /* newPublisher */
        start local 9 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCommand newPublisher
         9: .line 115
            aload 0 /* this */
            getfield com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.commandPublishers:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* commandKey */
            invokeinterface com.netflix.hystrix.HystrixCommandKey.name:()Ljava/lang/String;
            aload 9 /* newPublisher */
            invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 116
            aload 9 /* newPublisher */
            invokeinterface com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCommand.initialize:()V
        11: .line 117
            aload 9 /* newPublisher */
            aload 7
            monitorexit
        12: areturn
        end local 9 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCommand newPublisher
        end local 8 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCommand existingPublisher
        13: .line 109
      StackMap locals: com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory com.netflix.hystrix.HystrixCommandKey com.netflix.hystrix.HystrixCommandGroupKey com.netflix.hystrix.HystrixCommandMetrics com.netflix.hystrix.HystrixCircuitBreaker com.netflix.hystrix.HystrixCommandProperties com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCommand com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory
      StackMap stack: java.lang.Throwable
            aload 7
            monitorexit
        14: athrow
        end local 6 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCommand publisher
        end local 5 // com.netflix.hystrix.HystrixCommandProperties properties
        end local 4 // com.netflix.hystrix.HystrixCircuitBreaker circuitBreaker
        end local 3 // com.netflix.hystrix.HystrixCommandMetrics metrics
        end local 2 // com.netflix.hystrix.HystrixCommandGroupKey commandOwner
        end local 1 // com.netflix.hystrix.HystrixCommandKey commandKey
        end local 0 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   15     0               this  Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherFactory;
            0   15     1         commandKey  Lcom/netflix/hystrix/HystrixCommandKey;
            0   15     2       commandOwner  Lcom/netflix/hystrix/HystrixCommandGroupKey;
            0   15     3            metrics  Lcom/netflix/hystrix/HystrixCommandMetrics;
            0   15     4     circuitBreaker  Lcom/netflix/hystrix/HystrixCircuitBreaker;
            0   15     5         properties  Lcom/netflix/hystrix/HystrixCommandProperties;
            1   15     6          publisher  Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherCommand;
            5   13     8  existingPublisher  Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherCommand;
            9   13     9       newPublisher  Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherCommand;
      Exception table:
        from    to  target  type
           4     7      13  any
           8    12      13  any
          13    14      13  any
    MethodParameters:
                Name  Flags
      commandKey      
      commandOwner    
      metrics         
      circuitBreaker  
      properties      

  com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherThreadPool getPublisherForThreadPool(com.netflix.hystrix.HystrixThreadPoolKey, com.netflix.hystrix.HystrixThreadPoolMetrics, com.netflix.hystrix.HystrixThreadPoolProperties);
    descriptor: (Lcom/netflix/hystrix/HystrixThreadPoolKey;Lcom/netflix/hystrix/HystrixThreadPoolMetrics;Lcom/netflix/hystrix/HystrixThreadPoolProperties;)Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherThreadPool;
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory this
        start local 1 // com.netflix.hystrix.HystrixThreadPoolKey threadPoolKey
        start local 2 // com.netflix.hystrix.HystrixThreadPoolMetrics metrics
        start local 3 // com.netflix.hystrix.HystrixThreadPoolProperties properties
         0: .line 128
            aload 0 /* this */
            getfield com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.threadPoolPublishers:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* threadPoolKey */
            invokeinterface com.netflix.hystrix.HystrixThreadPoolKey.name:()Ljava/lang/String;
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherThreadPool
            astore 4 /* publisher */
        start local 4 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherThreadPool publisher
         1: .line 129
            aload 4 /* publisher */
            ifnull 3
         2: .line 130
            aload 4 /* publisher */
            areturn
         3: .line 133
      StackMap locals: com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherThreadPool
      StackMap stack:
            invokestatic com.netflix.hystrix.strategy.HystrixPlugins.getInstance:()Lcom/netflix/hystrix/strategy/HystrixPlugins;
            invokevirtual com.netflix.hystrix.strategy.HystrixPlugins.getMetricsPublisher:()Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisher;
            aload 1 /* threadPoolKey */
            aload 2 /* metrics */
            aload 3 /* properties */
            invokevirtual com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher.getMetricsPublisherForThreadPool:(Lcom/netflix/hystrix/HystrixThreadPoolKey;Lcom/netflix/hystrix/HystrixThreadPoolMetrics;Lcom/netflix/hystrix/HystrixThreadPoolProperties;)Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherThreadPool;
            astore 4 /* publisher */
         4: .line 135
            aload 0 /* this */
            getfield com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.threadPoolPublishers:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* threadPoolKey */
            invokeinterface com.netflix.hystrix.HystrixThreadPoolKey.name:()Ljava/lang/String;
            aload 4 /* publisher */
            invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherThreadPool
            astore 5 /* existing */
        start local 5 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherThreadPool existing
         5: .line 136
            aload 5 /* existing */
            ifnonnull 8
         6: .line 138
            aload 4 /* publisher */
            invokeinterface com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherThreadPool.initialize:()V
         7: .line 140
            aload 4 /* publisher */
            areturn
         8: .line 144
      StackMap locals: com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherThreadPool
      StackMap stack:
            aload 5 /* existing */
            areturn
        end local 5 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherThreadPool existing
        end local 4 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherThreadPool publisher
        end local 3 // com.netflix.hystrix.HystrixThreadPoolProperties properties
        end local 2 // com.netflix.hystrix.HystrixThreadPoolMetrics metrics
        end local 1 // com.netflix.hystrix.HystrixThreadPoolKey threadPoolKey
        end local 0 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherFactory;
            0    9     1  threadPoolKey  Lcom/netflix/hystrix/HystrixThreadPoolKey;
            0    9     2        metrics  Lcom/netflix/hystrix/HystrixThreadPoolMetrics;
            0    9     3     properties  Lcom/netflix/hystrix/HystrixThreadPoolProperties;
            1    9     4      publisher  Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherThreadPool;
            5    9     5       existing  Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherThreadPool;
    MethodParameters:
               Name  Flags
      threadPoolKey  
      metrics        
      properties     

  public static com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCollapser createOrRetrievePublisherForCollapser(com.netflix.hystrix.HystrixCollapserKey, com.netflix.hystrix.HystrixCollapserMetrics, com.netflix.hystrix.HystrixCollapserProperties);
    descriptor: (Lcom/netflix/hystrix/HystrixCollapserKey;Lcom/netflix/hystrix/HystrixCollapserMetrics;Lcom/netflix/hystrix/HystrixCollapserProperties;)Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherCollapser;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.netflix.hystrix.HystrixCollapserKey collapserKey
        start local 1 // com.netflix.hystrix.HystrixCollapserMetrics metrics
        start local 2 // com.netflix.hystrix.HystrixCollapserProperties properties
         0: .line 160
            getstatic com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.SINGLETON:Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherFactory;
            aload 0 /* collapserKey */
            aload 1 /* metrics */
            aload 2 /* properties */
            invokevirtual com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.getPublisherForCollapser:(Lcom/netflix/hystrix/HystrixCollapserKey;Lcom/netflix/hystrix/HystrixCollapserMetrics;Lcom/netflix/hystrix/HystrixCollapserProperties;)Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherCollapser;
            areturn
        end local 2 // com.netflix.hystrix.HystrixCollapserProperties properties
        end local 1 // com.netflix.hystrix.HystrixCollapserMetrics metrics
        end local 0 // com.netflix.hystrix.HystrixCollapserKey collapserKey
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0  collapserKey  Lcom/netflix/hystrix/HystrixCollapserKey;
            0    1     1       metrics  Lcom/netflix/hystrix/HystrixCollapserMetrics;
            0    1     2    properties  Lcom/netflix/hystrix/HystrixCollapserProperties;
    MethodParameters:
              Name  Flags
      collapserKey  
      metrics       
      properties    

  com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCollapser getPublisherForCollapser(com.netflix.hystrix.HystrixCollapserKey, com.netflix.hystrix.HystrixCollapserMetrics, com.netflix.hystrix.HystrixCollapserProperties);
    descriptor: (Lcom/netflix/hystrix/HystrixCollapserKey;Lcom/netflix/hystrix/HystrixCollapserMetrics;Lcom/netflix/hystrix/HystrixCollapserProperties;)Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherCollapser;
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory this
        start local 1 // com.netflix.hystrix.HystrixCollapserKey collapserKey
        start local 2 // com.netflix.hystrix.HystrixCollapserMetrics metrics
        start local 3 // com.netflix.hystrix.HystrixCollapserProperties properties
         0: .line 168
            aload 0 /* this */
            getfield com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.collapserPublishers:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* collapserKey */
            invokeinterface com.netflix.hystrix.HystrixCollapserKey.name:()Ljava/lang/String;
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCollapser
            astore 4 /* publisher */
        start local 4 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCollapser publisher
         1: .line 169
            aload 4 /* publisher */
            ifnull 3
         2: .line 170
            aload 4 /* publisher */
            areturn
         3: .line 173
      StackMap locals: com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCollapser
      StackMap stack:
            invokestatic com.netflix.hystrix.strategy.HystrixPlugins.getInstance:()Lcom/netflix/hystrix/strategy/HystrixPlugins;
            invokevirtual com.netflix.hystrix.strategy.HystrixPlugins.getMetricsPublisher:()Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisher;
            aload 1 /* collapserKey */
            aload 2 /* metrics */
            aload 3 /* properties */
            invokevirtual com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher.getMetricsPublisherForCollapser:(Lcom/netflix/hystrix/HystrixCollapserKey;Lcom/netflix/hystrix/HystrixCollapserMetrics;Lcom/netflix/hystrix/HystrixCollapserProperties;)Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherCollapser;
            astore 4 /* publisher */
         4: .line 175
            aload 0 /* this */
            getfield com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory.collapserPublishers:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* collapserKey */
            invokeinterface com.netflix.hystrix.HystrixCollapserKey.name:()Ljava/lang/String;
            aload 4 /* publisher */
            invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCollapser
            astore 5 /* existing */
        start local 5 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCollapser existing
         5: .line 176
            aload 5 /* existing */
            ifnonnull 8
         6: .line 178
            aload 4 /* publisher */
            invokeinterface com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCollapser.initialize:()V
         7: .line 180
            aload 4 /* publisher */
            areturn
         8: .line 184
      StackMap locals: com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCollapser
      StackMap stack:
            aload 5 /* existing */
            areturn
        end local 5 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCollapser existing
        end local 4 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherCollapser publisher
        end local 3 // com.netflix.hystrix.HystrixCollapserProperties properties
        end local 2 // com.netflix.hystrix.HystrixCollapserMetrics metrics
        end local 1 // com.netflix.hystrix.HystrixCollapserKey collapserKey
        end local 0 // com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisherFactory this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherFactory;
            0    9     1  collapserKey  Lcom/netflix/hystrix/HystrixCollapserKey;
            0    9     2       metrics  Lcom/netflix/hystrix/HystrixCollapserMetrics;
            0    9     3    properties  Lcom/netflix/hystrix/HystrixCollapserProperties;
            1    9     4     publisher  Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherCollapser;
            5    9     5      existing  Lcom/netflix/hystrix/strategy/metrics/HystrixMetricsPublisherCollapser;
    MethodParameters:
              Name  Flags
      collapserKey  
      metrics       
      properties    
}
SourceFile: "HystrixMetricsPublisherFactory.java"