public class sun.tools.jconsole.MemoryPoolProxy
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.tools.jconsole.MemoryPoolProxy
  super_class: java.lang.Object
{
  private java.lang.String poolName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private sun.tools.jconsole.ProxyClient client;
    descriptor: Lsun/tools/jconsole/ProxyClient;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.management.MemoryPoolMXBean pool;
    descriptor: Ljava/lang/management/MemoryPoolMXBean;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<javax.management.ObjectName, java.lang.Long> gcMBeans;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljavax/management/ObjectName;Ljava/lang/Long;>;

  private com.sun.management.GcInfo lastGcInfo;
    descriptor: Lcom/sun/management/GcInfo;
    flags: (0x0002) ACC_PRIVATE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 39
            ldc Lsun/tools/jconsole/MemoryPoolProxy;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic sun.tools.jconsole.MemoryPoolProxy.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(sun.tools.jconsole.ProxyClient, javax.management.ObjectName);
    descriptor: (Lsun/tools/jconsole/ProxyClient;Ljavax/management/ObjectName;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // sun.tools.jconsole.MemoryPoolProxy this
        start local 1 // sun.tools.jconsole.ProxyClient client
        start local 2 // javax.management.ObjectName poolName
         0: .line 46
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 47
            aload 0 /* this */
            aload 1 /* client */
            putfield sun.tools.jconsole.MemoryPoolProxy.client:Lsun/tools/jconsole/ProxyClient;
         2: .line 48
            aload 0 /* this */
            aload 1 /* client */
            aload 2 /* poolName */
            ldc Ljava/lang/management/MemoryPoolMXBean;
            invokevirtual sun.tools.jconsole.ProxyClient.getMXBean:(Ljavax/management/ObjectName;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.management.MemoryPoolMXBean
            putfield sun.tools.jconsole.MemoryPoolProxy.pool:Ljava/lang/management/MemoryPoolMXBean;
         3: .line 49
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.pool:Ljava/lang/management/MemoryPoolMXBean;
            invokeinterface java.lang.management.MemoryPoolMXBean.getName:()Ljava/lang/String;
            putfield sun.tools.jconsole.MemoryPoolProxy.poolName:Ljava/lang/String;
         4: .line 50
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jconsole.MemoryPoolProxy.gcMBeans:Ljava/util/Map;
         5: .line 51
            aload 0 /* this */
            aconst_null
            putfield sun.tools.jconsole.MemoryPoolProxy.lastGcInfo:Lcom/sun/management/GcInfo;
         6: .line 53
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.pool:Ljava/lang/management/MemoryPoolMXBean;
            invokeinterface java.lang.management.MemoryPoolMXBean.getMemoryManagerNames:()[Ljava/lang/String;
            astore 3 /* mgrNames */
        start local 3 // java.lang.String[] mgrNames
         7: .line 54
            aload 3 /* mgrNames */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 18
      StackMap locals: sun.tools.jconsole.MemoryPoolProxy sun.tools.jconsole.ProxyClient javax.management.ObjectName java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         8: aload 7
            iload 5
            aaload
            astore 4 /* name */
        start local 4 // java.lang.String name
         9: .line 56
            new javax.management.ObjectName
            dup
            new java.lang.StringBuilder
            dup
            ldc "java.lang:type=GarbageCollector,name="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        10: .line 57
            aload 4 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 56
            invokespecial javax.management.ObjectName.<init>:(Ljava/lang/String;)V
            astore 8 /* mbeanName */
        start local 8 // javax.management.ObjectName mbeanName
        12: .line 58
            aload 1 /* client */
            aload 8 /* mbeanName */
            invokevirtual sun.tools.jconsole.ProxyClient.isRegistered:(Ljavax/management/ObjectName;)Z
            ifeq 17
        13: .line 59
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.gcMBeans:Ljava/util/Map;
            aload 8 /* mbeanName */
            lconst_0
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // javax.management.ObjectName mbeanName
        14: .line 61
            goto 17
      StackMap locals: sun.tools.jconsole.MemoryPoolProxy sun.tools.jconsole.ProxyClient javax.management.ObjectName java.lang.String[] java.lang.String int int java.lang.String[]
      StackMap stack: java.lang.Exception
        15: pop
        16: .line 62
            getstatic sun.tools.jconsole.MemoryPoolProxy.$assertionsDisabled:Z
            ifne 17
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 4 // java.lang.String name
        17: .line 54
      StackMap locals: sun.tools.jconsole.MemoryPoolProxy sun.tools.jconsole.ProxyClient javax.management.ObjectName java.lang.String[] top int int java.lang.String[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        18: iload 5
            iload 6
            if_icmplt 8
        19: .line 66
            return
        end local 3 // java.lang.String[] mgrNames
        end local 2 // javax.management.ObjectName poolName
        end local 1 // sun.tools.jconsole.ProxyClient client
        end local 0 // sun.tools.jconsole.MemoryPoolProxy this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0       this  Lsun/tools/jconsole/MemoryPoolProxy;
            0   20     1     client  Lsun/tools/jconsole/ProxyClient;
            0   20     2   poolName  Ljavax/management/ObjectName;
            7   20     3   mgrNames  [Ljava/lang/String;
            9   17     4       name  Ljava/lang/String;
           12   14     8  mbeanName  Ljavax/management/ObjectName;
      Exception table:
        from    to  target  type
           9    14      15  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      client    
      poolName  

  public boolean isCollectedMemoryPool();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.tools.jconsole.MemoryPoolProxy this
         0: .line 69
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.gcMBeans:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // sun.tools.jconsole.MemoryPoolProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/tools/jconsole/MemoryPoolProxy;

  public sun.tools.jconsole.MemoryPoolStat getStat();
    descriptor: ()Lsun/tools/jconsole/MemoryPoolStat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=16, locals=19, args_size=1
        start local 0 // sun.tools.jconsole.MemoryPoolProxy this
         0: .line 73
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.pool:Ljava/lang/management/MemoryPoolMXBean;
            invokeinterface java.lang.management.MemoryPoolMXBean.isUsageThresholdSupported:()Z
            ifeq 2
         1: .line 74
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.pool:Ljava/lang/management/MemoryPoolMXBean;
            invokeinterface java.lang.management.MemoryPoolMXBean.getUsageThreshold:()J
            goto 3
         2: .line 75
      StackMap locals:
      StackMap stack:
            ldc -1
         3: .line 73
      StackMap locals:
      StackMap stack: long
            lstore 1 /* usageThreshold */
        start local 1 // long usageThreshold
         4: .line 76
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.pool:Ljava/lang/management/MemoryPoolMXBean;
            invokeinterface java.lang.management.MemoryPoolMXBean.isCollectionUsageThresholdSupported:()Z
            ifeq 6
         5: .line 77
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.pool:Ljava/lang/management/MemoryPoolMXBean;
            invokeinterface java.lang.management.MemoryPoolMXBean.getCollectionUsageThreshold:()J
            goto 7
         6: .line 78
      StackMap locals: long
      StackMap stack:
            ldc -1
         7: .line 76
      StackMap locals:
      StackMap stack: long
            lstore 3 /* collectThreshold */
        start local 3 // long collectThreshold
         8: .line 79
            lconst_0
            lstore 5 /* lastGcStartTime */
        start local 5 // long lastGcStartTime
         9: .line 80
            lconst_0
            lstore 7 /* lastGcEndTime */
        start local 7 // long lastGcEndTime
        10: .line 81
            aconst_null
            astore 9 /* beforeGcUsage */
        start local 9 // java.lang.management.MemoryUsage beforeGcUsage
        11: .line 82
            aconst_null
            astore 10 /* afterGcUsage */
        start local 10 // java.lang.management.MemoryUsage afterGcUsage
        12: .line 83
            lconst_0
            lstore 11 /* gcId */
        start local 11 // long gcId
        13: .line 84
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.lastGcInfo:Lcom/sun/management/GcInfo;
            ifnull 19
        14: .line 85
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.lastGcInfo:Lcom/sun/management/GcInfo;
            invokevirtual com.sun.management.GcInfo.getId:()J
            lstore 11 /* gcId */
        15: .line 86
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.lastGcInfo:Lcom/sun/management/GcInfo;
            invokevirtual com.sun.management.GcInfo.getStartTime:()J
            lstore 5 /* lastGcStartTime */
        16: .line 87
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.lastGcInfo:Lcom/sun/management/GcInfo;
            invokevirtual com.sun.management.GcInfo.getEndTime:()J
            lstore 7 /* lastGcEndTime */
        17: .line 88
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.lastGcInfo:Lcom/sun/management/GcInfo;
            invokevirtual com.sun.management.GcInfo.getMemoryUsageBeforeGc:()Ljava/util/Map;
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.poolName:Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.management.MemoryUsage
            astore 9 /* beforeGcUsage */
        18: .line 89
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.lastGcInfo:Lcom/sun/management/GcInfo;
            invokevirtual com.sun.management.GcInfo.getMemoryUsageAfterGc:()Ljava/util/Map;
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.poolName:Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.management.MemoryUsage
            astore 10 /* afterGcUsage */
        19: .line 92
      StackMap locals: sun.tools.jconsole.MemoryPoolProxy long long long long java.lang.management.MemoryUsage java.lang.management.MemoryUsage long
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.gcMBeans:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            astore 13 /* set */
        start local 13 // java.util.Set set
        20: .line 93
            aload 13 /* set */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 15
            goto 39
      StackMap locals: sun.tools.jconsole.MemoryPoolProxy long long long long java.lang.management.MemoryUsage java.lang.management.MemoryUsage long java.util.Set top java.util.Iterator
      StackMap stack:
        21: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 14 /* e */
        start local 14 // java.util.Map$Entry e
        22: .line 95
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.client:Lsun/tools/jconsole/ProxyClient;
            aload 14 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast javax.management.ObjectName
        23: .line 96
            ldc Lcom/sun/management/GarbageCollectorMXBean;
        24: .line 95
            invokevirtual sun.tools.jconsole.ProxyClient.getMXBean:(Ljavax/management/ObjectName;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.sun.management.GarbageCollectorMXBean
        25: .line 94
            astore 16 /* gc */
        start local 16 // com.sun.management.GarbageCollectorMXBean gc
        26: .line 97
            aload 14 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.Long
            astore 17 /* gcCount */
        start local 17 // java.lang.Long gcCount
        27: .line 98
            aload 16 /* gc */
            invokeinterface com.sun.management.GarbageCollectorMXBean.getCollectionCount:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            astore 18 /* newCount */
        start local 18 // java.lang.Long newCount
        28: .line 99
            aload 18 /* newCount */
            invokevirtual java.lang.Long.longValue:()J
            aload 17 /* gcCount */
            invokevirtual java.lang.Long.longValue:()J
            lcmp
            ifle 39
        29: .line 100
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.gcMBeans:Ljava/util/Map;
            aload 14 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast javax.management.ObjectName
            aload 18 /* newCount */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        30: .line 101
            aload 0 /* this */
            aload 16 /* gc */
            invokeinterface com.sun.management.GarbageCollectorMXBean.getLastGcInfo:()Lcom/sun/management/GcInfo;
            putfield sun.tools.jconsole.MemoryPoolProxy.lastGcInfo:Lcom/sun/management/GcInfo;
        31: .line 102
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.lastGcInfo:Lcom/sun/management/GcInfo;
            invokevirtual com.sun.management.GcInfo.getEndTime:()J
            lload 7 /* lastGcEndTime */
            lcmp
            ifle 39
        32: .line 103
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.lastGcInfo:Lcom/sun/management/GcInfo;
            invokevirtual com.sun.management.GcInfo.getId:()J
            lstore 11 /* gcId */
        33: .line 104
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.lastGcInfo:Lcom/sun/management/GcInfo;
            invokevirtual com.sun.management.GcInfo.getStartTime:()J
            lstore 5 /* lastGcStartTime */
        34: .line 105
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.lastGcInfo:Lcom/sun/management/GcInfo;
            invokevirtual com.sun.management.GcInfo.getEndTime:()J
            lstore 7 /* lastGcEndTime */
        35: .line 106
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.lastGcInfo:Lcom/sun/management/GcInfo;
            invokevirtual com.sun.management.GcInfo.getMemoryUsageBeforeGc:()Ljava/util/Map;
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.poolName:Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.management.MemoryUsage
            astore 9 /* beforeGcUsage */
        36: .line 107
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.lastGcInfo:Lcom/sun/management/GcInfo;
            invokevirtual com.sun.management.GcInfo.getMemoryUsageAfterGc:()Ljava/util/Map;
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.poolName:Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.management.MemoryUsage
            astore 10 /* afterGcUsage */
        37: .line 108
            getstatic sun.tools.jconsole.MemoryPoolProxy.$assertionsDisabled:Z
            ifne 38
            aload 9 /* beforeGcUsage */
            ifnonnull 38
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        38: .line 109
      StackMap locals: sun.tools.jconsole.MemoryPoolProxy long long long long java.lang.management.MemoryUsage java.lang.management.MemoryUsage long java.util.Set java.util.Map$Entry java.util.Iterator com.sun.management.GarbageCollectorMXBean java.lang.Long java.lang.Long
      StackMap stack:
            getstatic sun.tools.jconsole.MemoryPoolProxy.$assertionsDisabled:Z
            ifne 39
            aload 10 /* afterGcUsage */
            ifnonnull 39
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 18 // java.lang.Long newCount
        end local 17 // java.lang.Long gcCount
        end local 16 // com.sun.management.GarbageCollectorMXBean gc
        end local 14 // java.util.Map$Entry e
        39: .line 93
      StackMap locals: sun.tools.jconsole.MemoryPoolProxy long long long long java.lang.management.MemoryUsage java.lang.management.MemoryUsage long java.util.Set top java.util.Iterator
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        40: .line 114
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.pool:Ljava/lang/management/MemoryPoolMXBean;
            invokeinterface java.lang.management.MemoryPoolMXBean.getUsage:()Ljava/lang/management/MemoryUsage;
            astore 14 /* usage */
        start local 14 // java.lang.management.MemoryUsage usage
        41: .line 115
            new sun.tools.jconsole.MemoryPoolStat
            dup
            aload 0 /* this */
            getfield sun.tools.jconsole.MemoryPoolProxy.poolName:Ljava/lang/String;
        42: .line 116
            lload 1 /* usageThreshold */
        43: .line 117
            aload 14 /* usage */
        44: .line 118
            lload 11 /* gcId */
        45: .line 119
            lload 5 /* lastGcStartTime */
        46: .line 120
            lload 7 /* lastGcEndTime */
        47: .line 121
            lload 3 /* collectThreshold */
        48: .line 122
            aload 9 /* beforeGcUsage */
        49: .line 123
            aload 10 /* afterGcUsage */
        50: .line 115
            invokespecial sun.tools.jconsole.MemoryPoolStat.<init>:(Ljava/lang/String;JLjava/lang/management/MemoryUsage;JJJJLjava/lang/management/MemoryUsage;Ljava/lang/management/MemoryUsage;)V
            areturn
        end local 14 // java.lang.management.MemoryUsage usage
        end local 13 // java.util.Set set
        end local 11 // long gcId
        end local 10 // java.lang.management.MemoryUsage afterGcUsage
        end local 9 // java.lang.management.MemoryUsage beforeGcUsage
        end local 7 // long lastGcEndTime
        end local 5 // long lastGcStartTime
        end local 3 // long collectThreshold
        end local 1 // long usageThreshold
        end local 0 // sun.tools.jconsole.MemoryPoolProxy this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   51     0              this  Lsun/tools/jconsole/MemoryPoolProxy;
            4   51     1    usageThreshold  J
            8   51     3  collectThreshold  J
            9   51     5   lastGcStartTime  J
           10   51     7     lastGcEndTime  J
           11   51     9     beforeGcUsage  Ljava/lang/management/MemoryUsage;
           12   51    10      afterGcUsage  Ljava/lang/management/MemoryUsage;
           13   51    11              gcId  J
           20   51    13               set  Ljava/util/Set<Ljava/util/Map$Entry<Ljavax/management/ObjectName;Ljava/lang/Long;>;>;
           22   39    14                 e  Ljava/util/Map$Entry<Ljavax/management/ObjectName;Ljava/lang/Long;>;
           26   39    16                gc  Lcom/sun/management/GarbageCollectorMXBean;
           27   39    17           gcCount  Ljava/lang/Long;
           28   39    18          newCount  Ljava/lang/Long;
           41   51    14             usage  Ljava/lang/management/MemoryUsage;
    Exceptions:
      throws java.io.IOException
}
SourceFile: "MemoryPoolProxy.java"
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map