public class java.lang.management.ThreadInfo
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.lang.management.ThreadInfo
  super_class: java.lang.Object
{
  private java.lang.String threadName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private long threadId;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long blockedTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long blockedCount;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long waitedTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long waitedCount;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

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

  private java.lang.String lockName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private long lockOwnerId;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String lockOwnerName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private boolean daemon;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean inNative;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean suspended;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Thread$State threadState;
    descriptor: Ljava/lang/Thread$State;
    flags: (0x0002) ACC_PRIVATE

  private int priority;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.lang.StackTraceElement[] stackTrace;
    descriptor: [Ljava/lang/StackTraceElement;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.management.MonitorInfo[] lockedMonitors;
    descriptor: [Ljava/lang/management/MonitorInfo;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.management.LockInfo[] lockedSynchronizers;
    descriptor: [Ljava/lang/management/LockInfo;
    flags: (0x0002) ACC_PRIVATE

  private static java.lang.management.MonitorInfo[] EMPTY_MONITORS;
    descriptor: [Ljava/lang/management/MonitorInfo;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.management.LockInfo[] EMPTY_SYNCS;
    descriptor: [Ljava/lang/management/LockInfo;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final int MAX_FRAMES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final java.lang.StackTraceElement[] NO_STACK_TRACE;
    descriptor: [Ljava/lang/StackTraceElement;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private static volatile int[] $SWITCH_TABLE$java$lang$Thread$State;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 94
            ldc Ljava/lang/management/ThreadInfo;
            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 java.lang.management.ThreadInfo.$assertionsDisabled:Z
         3: .line 114
            iconst_0
            anewarray java.lang.management.MonitorInfo
            putstatic java.lang.management.ThreadInfo.EMPTY_MONITORS:[Ljava/lang/management/MonitorInfo;
         4: .line 115
            iconst_0
            anewarray java.lang.management.LockInfo
            putstatic java.lang.management.ThreadInfo.EMPTY_SYNCS:[Ljava/lang/management/LockInfo;
         5: .line 897
            iconst_0
            anewarray java.lang.StackTraceElement
         6: .line 896
            putstatic java.lang.management.ThreadInfo.NO_STACK_TRACE:[Ljava/lang/StackTraceElement;
         7: .line 897
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(java.lang.Thread, int, java.lang.Object, java.lang.Thread, long, long, long, long, java.lang.StackTraceElement[]);
    descriptor: (Ljava/lang/Thread;ILjava/lang/Object;Ljava/lang/Thread;JJJJ[Ljava/lang/StackTraceElement;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=16, locals=14, args_size=10
        start local 0 // java.lang.management.ThreadInfo this
        start local 1 // java.lang.Thread t
        start local 2 // int state
        start local 3 // java.lang.Object lockObj
        start local 4 // java.lang.Thread lockOwner
        start local 5 // long blockedCount
        start local 7 // long blockedTime
        start local 9 // long waitedCount
        start local 11 // long waitedTime
        start local 13 // java.lang.StackTraceElement[] stackTrace
         0: .line 130
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 134
            aload 0 /* this */
            aload 1 /* t */
            iload 2 /* state */
            aload 3 /* lockObj */
            aload 4 /* lockOwner */
         2: .line 135
            lload 5 /* blockedCount */
            lload 7 /* blockedTime */
         3: .line 136
            lload 9 /* waitedCount */
            lload 11 /* waitedTime */
            aload 13 /* stackTrace */
         4: .line 137
            getstatic java.lang.management.ThreadInfo.EMPTY_MONITORS:[Ljava/lang/management/MonitorInfo;
            getstatic java.lang.management.ThreadInfo.EMPTY_SYNCS:[Ljava/lang/management/LockInfo;
         5: .line 134
            invokevirtual java.lang.management.ThreadInfo.initialize:(Ljava/lang/Thread;ILjava/lang/Object;Ljava/lang/Thread;JJJJ[Ljava/lang/StackTraceElement;[Ljava/lang/management/MonitorInfo;[Ljava/lang/management/LockInfo;)V
         6: .line 138
            return
        end local 13 // java.lang.StackTraceElement[] stackTrace
        end local 11 // long waitedTime
        end local 9 // long waitedCount
        end local 7 // long blockedTime
        end local 5 // long blockedCount
        end local 4 // java.lang.Thread lockOwner
        end local 3 // java.lang.Object lockObj
        end local 2 // int state
        end local 1 // java.lang.Thread t
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Ljava/lang/management/ThreadInfo;
            0    7     1             t  Ljava/lang/Thread;
            0    7     2         state  I
            0    7     3       lockObj  Ljava/lang/Object;
            0    7     4     lockOwner  Ljava/lang/Thread;
            0    7     5  blockedCount  J
            0    7     7   blockedTime  J
            0    7     9   waitedCount  J
            0    7    11    waitedTime  J
            0    7    13    stackTrace  [Ljava/lang/StackTraceElement;
    MethodParameters:
              Name  Flags
      t             
      state         
      lockObj       
      lockOwner     
      blockedCount  
      blockedTime   
      waitedCount   
      waitedTime    
      stackTrace    

  private void <init>(java.lang.Thread, int, java.lang.Object, java.lang.Thread, long, long, long, long, java.lang.StackTraceElement[], java.lang.Object[], int[], java.lang.Object[]);
    descriptor: (Ljava/lang/Thread;ILjava/lang/Object;Ljava/lang/Thread;JJJJ[Ljava/lang/StackTraceElement;[Ljava/lang/Object;[I[Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=16, locals=25, args_size=13
        start local 0 // java.lang.management.ThreadInfo this
        start local 1 // java.lang.Thread t
        start local 2 // int state
        start local 3 // java.lang.Object lockObj
        start local 4 // java.lang.Thread lockOwner
        start local 5 // long blockedCount
        start local 7 // long blockedTime
        start local 9 // long waitedCount
        start local 11 // long waitedTime
        start local 13 // java.lang.StackTraceElement[] stackTrace
        start local 14 // java.lang.Object[] monitors
        start local 15 // int[] stackDepths
        start local 16 // java.lang.Object[] synchronizers
         0: .line 158
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 165
            aload 14 /* monitors */
            ifnonnull 2
            iconst_0
            goto 3
      StackMap locals: java.lang.management.ThreadInfo java.lang.Thread int java.lang.Object java.lang.Thread long long long long java.lang.StackTraceElement[] java.lang.Object[] int[] java.lang.Object[]
      StackMap stack:
         2: aload 14 /* monitors */
            arraylength
      StackMap locals:
      StackMap stack: int
         3: istore 17 /* numMonitors */
        start local 17 // int numMonitors
         4: .line 167
            iload 17 /* numMonitors */
            ifne 7
         5: .line 168
            getstatic java.lang.management.ThreadInfo.EMPTY_MONITORS:[Ljava/lang/management/MonitorInfo;
            astore 18 /* lockedMonitors */
        start local 18 // java.lang.management.MonitorInfo[] lockedMonitors
         6: .line 169
            goto 24
        end local 18 // java.lang.management.MonitorInfo[] lockedMonitors
         7: .line 170
      StackMap locals: int
      StackMap stack:
            iload 17 /* numMonitors */
            anewarray java.lang.management.MonitorInfo
            astore 18 /* lockedMonitors */
        start local 18 // java.lang.management.MonitorInfo[] lockedMonitors
         8: .line 171
            iconst_0
            istore 19 /* i */
        start local 19 // int i
         9: goto 23
        10: .line 172
      StackMap locals: java.lang.management.MonitorInfo[] int
      StackMap stack:
            aload 14 /* monitors */
            iload 19 /* i */
            aaload
            astore 20 /* lock */
        start local 20 // java.lang.Object lock
        11: .line 173
            aload 20 /* lock */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 21 /* className */
        start local 21 // java.lang.String className
        12: .line 174
            aload 20 /* lock */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            istore 22 /* identityHashCode */
        start local 22 // int identityHashCode
        13: .line 175
            aload 15 /* stackDepths */
            iload 19 /* i */
            iaload
            istore 23 /* depth */
        start local 23 // int depth
        14: .line 176
            iload 23 /* depth */
            iflt 15
            aload 13 /* stackTrace */
            iload 23 /* depth */
            aaload
            goto 16
        15: .line 177
      StackMap locals: java.lang.management.ThreadInfo java.lang.Thread int java.lang.Object java.lang.Thread long long long long java.lang.StackTraceElement[] java.lang.Object[] int[] java.lang.Object[] int java.lang.management.MonitorInfo[] int java.lang.Object java.lang.String int int
      StackMap stack:
            aconst_null
        16: .line 176
      StackMap locals:
      StackMap stack: java.lang.StackTraceElement
            astore 24 /* ste */
        start local 24 // java.lang.StackTraceElement ste
        17: .line 178
            aload 18 /* lockedMonitors */
            iload 19 /* i */
            new java.lang.management.MonitorInfo
            dup
            aload 21 /* className */
        18: .line 179
            iload 22 /* identityHashCode */
        19: .line 180
            iload 23 /* depth */
        20: .line 181
            aload 24 /* ste */
            invokespecial java.lang.management.MonitorInfo.<init>:(Ljava/lang/String;IILjava/lang/StackTraceElement;)V
        21: .line 178
            aastore
        end local 24 // java.lang.StackTraceElement ste
        end local 23 // int depth
        end local 22 // int identityHashCode
        end local 21 // java.lang.String className
        end local 20 // java.lang.Object lock
        22: .line 171
            iinc 19 /* i */ 1
      StackMap locals: java.lang.management.ThreadInfo java.lang.Thread int java.lang.Object java.lang.Thread long long long long java.lang.StackTraceElement[] java.lang.Object[] int[] java.lang.Object[] int java.lang.management.MonitorInfo[] int
      StackMap stack:
        23: iload 19 /* i */
            iload 17 /* numMonitors */
            if_icmplt 10
        end local 19 // int i
        24: .line 185
      StackMap locals:
      StackMap stack:
            aload 16 /* synchronizers */
            ifnonnull 25
            iconst_0
            goto 26
      StackMap locals:
      StackMap stack:
        25: aload 16 /* synchronizers */
            arraylength
      StackMap locals:
      StackMap stack: int
        26: istore 19 /* numSyncs */
        start local 19 // int numSyncs
        27: .line 187
            iload 19 /* numSyncs */
            ifne 30
        28: .line 188
            getstatic java.lang.management.ThreadInfo.EMPTY_SYNCS:[Ljava/lang/management/LockInfo;
            astore 20 /* lockedSynchronizers */
        start local 20 // java.lang.management.LockInfo[] lockedSynchronizers
        29: .line 189
            goto 41
        end local 20 // java.lang.management.LockInfo[] lockedSynchronizers
        30: .line 190
      StackMap locals: int
      StackMap stack:
            iload 19 /* numSyncs */
            anewarray java.lang.management.LockInfo
            astore 20 /* lockedSynchronizers */
        start local 20 // java.lang.management.LockInfo[] lockedSynchronizers
        31: .line 191
            iconst_0
            istore 21 /* i */
        start local 21 // int i
        32: goto 40
        33: .line 192
      StackMap locals: java.lang.management.LockInfo[] int
      StackMap stack:
            aload 16 /* synchronizers */
            iload 21 /* i */
            aaload
            astore 22 /* lock */
        start local 22 // java.lang.Object lock
        34: .line 193
            aload 22 /* lock */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 23 /* className */
        start local 23 // java.lang.String className
        35: .line 194
            aload 22 /* lock */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            istore 24 /* identityHashCode */
        start local 24 // int identityHashCode
        36: .line 195
            aload 20 /* lockedSynchronizers */
            iload 21 /* i */
            new java.lang.management.LockInfo
            dup
            aload 23 /* className */
        37: .line 196
            iload 24 /* identityHashCode */
            invokespecial java.lang.management.LockInfo.<init>:(Ljava/lang/String;I)V
        38: .line 195
            aastore
        end local 24 // int identityHashCode
        end local 23 // java.lang.String className
        end local 22 // java.lang.Object lock
        39: .line 191
            iinc 21 /* i */ 1
      StackMap locals:
      StackMap stack:
        40: iload 21 /* i */
            iload 19 /* numSyncs */
            if_icmplt 33
        end local 21 // int i
        41: .line 200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            iload 2 /* state */
            aload 3 /* lockObj */
            aload 4 /* lockOwner */
        42: .line 201
            lload 5 /* blockedCount */
            lload 7 /* blockedTime */
        43: .line 202
            lload 9 /* waitedCount */
            lload 11 /* waitedTime */
            aload 13 /* stackTrace */
        44: .line 203
            aload 18 /* lockedMonitors */
            aload 20 /* lockedSynchronizers */
        45: .line 200
            invokevirtual java.lang.management.ThreadInfo.initialize:(Ljava/lang/Thread;ILjava/lang/Object;Ljava/lang/Thread;JJJJ[Ljava/lang/StackTraceElement;[Ljava/lang/management/MonitorInfo;[Ljava/lang/management/LockInfo;)V
        46: .line 204
            return
        end local 20 // java.lang.management.LockInfo[] lockedSynchronizers
        end local 19 // int numSyncs
        end local 18 // java.lang.management.MonitorInfo[] lockedMonitors
        end local 17 // int numMonitors
        end local 16 // java.lang.Object[] synchronizers
        end local 15 // int[] stackDepths
        end local 14 // java.lang.Object[] monitors
        end local 13 // java.lang.StackTraceElement[] stackTrace
        end local 11 // long waitedTime
        end local 9 // long waitedCount
        end local 7 // long blockedTime
        end local 5 // long blockedCount
        end local 4 // java.lang.Thread lockOwner
        end local 3 // java.lang.Object lockObj
        end local 2 // int state
        end local 1 // java.lang.Thread t
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   47     0                 this  Ljava/lang/management/ThreadInfo;
            0   47     1                    t  Ljava/lang/Thread;
            0   47     2                state  I
            0   47     3              lockObj  Ljava/lang/Object;
            0   47     4            lockOwner  Ljava/lang/Thread;
            0   47     5         blockedCount  J
            0   47     7          blockedTime  J
            0   47     9          waitedCount  J
            0   47    11           waitedTime  J
            0   47    13           stackTrace  [Ljava/lang/StackTraceElement;
            0   47    14             monitors  [Ljava/lang/Object;
            0   47    15          stackDepths  [I
            0   47    16        synchronizers  [Ljava/lang/Object;
            4   47    17          numMonitors  I
            6    7    18       lockedMonitors  [Ljava/lang/management/MonitorInfo;
            8   47    18       lockedMonitors  [Ljava/lang/management/MonitorInfo;
            9   24    19                    i  I
           11   22    20                 lock  Ljava/lang/Object;
           12   22    21            className  Ljava/lang/String;
           13   22    22     identityHashCode  I
           14   22    23                depth  I
           17   22    24                  ste  Ljava/lang/StackTraceElement;
           27   47    19             numSyncs  I
           29   30    20  lockedSynchronizers  [Ljava/lang/management/LockInfo;
           31   47    20  lockedSynchronizers  [Ljava/lang/management/LockInfo;
           32   41    21                    i  I
           34   39    22                 lock  Ljava/lang/Object;
           35   39    23            className  Ljava/lang/String;
           36   39    24     identityHashCode  I
    MethodParameters:
               Name  Flags
      t              
      state          
      lockObj        
      lockOwner      
      blockedCount   
      blockedTime    
      waitedCount    
      waitedTime     
      stackTrace     
      monitors       
      stackDepths    
      synchronizers  

  private void initialize(java.lang.Thread, int, java.lang.Object, java.lang.Thread, long, long, long, long, java.lang.StackTraceElement[], java.lang.management.MonitorInfo[], java.lang.management.LockInfo[]);
    descriptor: (Ljava/lang/Thread;ILjava/lang/Object;Ljava/lang/Thread;JJJJ[Ljava/lang/StackTraceElement;[Ljava/lang/management/MonitorInfo;[Ljava/lang/management/LockInfo;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=16, args_size=12
        start local 0 // java.lang.management.ThreadInfo this
        start local 1 // java.lang.Thread t
        start local 2 // int state
        start local 3 // java.lang.Object lockObj
        start local 4 // java.lang.Thread lockOwner
        start local 5 // long blockedCount
        start local 7 // long blockedTime
        start local 9 // long waitedCount
        start local 11 // long waitedTime
        start local 13 // java.lang.StackTraceElement[] stackTrace
        start local 14 // java.lang.management.MonitorInfo[] lockedMonitors
        start local 15 // java.lang.management.LockInfo[] lockedSynchronizers
         0: .line 227
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual java.lang.Thread.getId:()J
            putfield java.lang.management.ThreadInfo.threadId:J
         1: .line 228
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            putfield java.lang.management.ThreadInfo.threadName:Ljava/lang/String;
         2: .line 229
            aload 0 /* this */
            iload 2 /* state */
            invokestatic sun.management.ManagementFactoryHelper.toThreadState:(I)Ljava/lang/Thread$State;
            putfield java.lang.management.ThreadInfo.threadState:Ljava/lang/Thread$State;
         3: .line 230
            aload 0 /* this */
            iload 2 /* state */
            invokestatic sun.management.ManagementFactoryHelper.isThreadSuspended:(I)Z
            putfield java.lang.management.ThreadInfo.suspended:Z
         4: .line 231
            aload 0 /* this */
            iload 2 /* state */
            invokestatic sun.management.ManagementFactoryHelper.isThreadRunningNative:(I)Z
            putfield java.lang.management.ThreadInfo.inNative:Z
         5: .line 232
            aload 0 /* this */
            lload 5 /* blockedCount */
            putfield java.lang.management.ThreadInfo.blockedCount:J
         6: .line 233
            aload 0 /* this */
            lload 7 /* blockedTime */
            putfield java.lang.management.ThreadInfo.blockedTime:J
         7: .line 234
            aload 0 /* this */
            lload 9 /* waitedCount */
            putfield java.lang.management.ThreadInfo.waitedCount:J
         8: .line 235
            aload 0 /* this */
            lload 11 /* waitedTime */
            putfield java.lang.management.ThreadInfo.waitedTime:J
         9: .line 236
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual java.lang.Thread.isDaemon:()Z
            putfield java.lang.management.ThreadInfo.daemon:Z
        10: .line 237
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual java.lang.Thread.getPriority:()I
            putfield java.lang.management.ThreadInfo.priority:I
        11: .line 239
            aload 3 /* lockObj */
            ifnonnull 15
        12: .line 240
            aload 0 /* this */
            aconst_null
            putfield java.lang.management.ThreadInfo.lock:Ljava/lang/management/LockInfo;
        13: .line 241
            aload 0 /* this */
            aconst_null
            putfield java.lang.management.ThreadInfo.lockName:Ljava/lang/String;
        14: .line 242
            goto 21
        15: .line 243
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.lang.management.LockInfo
            dup
            aload 3 /* lockObj */
            invokespecial java.lang.management.LockInfo.<init>:(Ljava/lang/Object;)V
            putfield java.lang.management.ThreadInfo.lock:Ljava/lang/management/LockInfo;
        16: .line 244
            aload 0 /* this */
        17: .line 245
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.lock:Ljava/lang/management/LockInfo;
            invokevirtual java.lang.management.LockInfo.getClassName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 64
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        18: .line 246
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.lock:Ljava/lang/management/LockInfo;
            invokevirtual java.lang.management.LockInfo.getIdentityHashCode:()I
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        19: .line 245
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        20: .line 244
            putfield java.lang.management.ThreadInfo.lockName:Ljava/lang/String;
        21: .line 248
      StackMap locals:
      StackMap stack:
            aload 4 /* lockOwner */
            ifnonnull 25
        22: .line 249
            aload 0 /* this */
            ldc -1
            putfield java.lang.management.ThreadInfo.lockOwnerId:J
        23: .line 250
            aload 0 /* this */
            aconst_null
            putfield java.lang.management.ThreadInfo.lockOwnerName:Ljava/lang/String;
        24: .line 251
            goto 27
        25: .line 252
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* lockOwner */
            invokevirtual java.lang.Thread.getId:()J
            putfield java.lang.management.ThreadInfo.lockOwnerId:J
        26: .line 253
            aload 0 /* this */
            aload 4 /* lockOwner */
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            putfield java.lang.management.ThreadInfo.lockOwnerName:Ljava/lang/String;
        27: .line 255
      StackMap locals:
      StackMap stack:
            aload 13 /* stackTrace */
            ifnonnull 30
        28: .line 256
            aload 0 /* this */
            getstatic java.lang.management.ThreadInfo.NO_STACK_TRACE:[Ljava/lang/StackTraceElement;
            putfield java.lang.management.ThreadInfo.stackTrace:[Ljava/lang/StackTraceElement;
        29: .line 257
            goto 31
        30: .line 258
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 13 /* stackTrace */
            putfield java.lang.management.ThreadInfo.stackTrace:[Ljava/lang/StackTraceElement;
        31: .line 260
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 14 /* lockedMonitors */
            putfield java.lang.management.ThreadInfo.lockedMonitors:[Ljava/lang/management/MonitorInfo;
        32: .line 261
            aload 0 /* this */
            aload 15 /* lockedSynchronizers */
            putfield java.lang.management.ThreadInfo.lockedSynchronizers:[Ljava/lang/management/LockInfo;
        33: .line 262
            return
        end local 15 // java.lang.management.LockInfo[] lockedSynchronizers
        end local 14 // java.lang.management.MonitorInfo[] lockedMonitors
        end local 13 // java.lang.StackTraceElement[] stackTrace
        end local 11 // long waitedTime
        end local 9 // long waitedCount
        end local 7 // long blockedTime
        end local 5 // long blockedCount
        end local 4 // java.lang.Thread lockOwner
        end local 3 // java.lang.Object lockObj
        end local 2 // int state
        end local 1 // java.lang.Thread t
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   34     0                 this  Ljava/lang/management/ThreadInfo;
            0   34     1                    t  Ljava/lang/Thread;
            0   34     2                state  I
            0   34     3              lockObj  Ljava/lang/Object;
            0   34     4            lockOwner  Ljava/lang/Thread;
            0   34     5         blockedCount  J
            0   34     7          blockedTime  J
            0   34     9          waitedCount  J
            0   34    11           waitedTime  J
            0   34    13           stackTrace  [Ljava/lang/StackTraceElement;
            0   34    14       lockedMonitors  [Ljava/lang/management/MonitorInfo;
            0   34    15  lockedSynchronizers  [Ljava/lang/management/LockInfo;
    MethodParameters:
                     Name  Flags
      t                    
      state                
      lockObj              
      lockOwner            
      blockedCount         
      blockedTime          
      waitedCount          
      waitedTime           
      stackTrace           
      lockedMonitors       
      lockedSynchronizers  

  private void <init>(javax.management.openmbean.CompositeData);
    descriptor: (Ljavax/management/openmbean/CompositeData;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // java.lang.management.ThreadInfo this
        start local 1 // javax.management.openmbean.CompositeData cd
         0: .line 268
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 269
            aload 1 /* cd */
            invokestatic sun.management.ThreadInfoCompositeData.getInstance:(Ljavax/management/openmbean/CompositeData;)Lsun/management/ThreadInfoCompositeData;
            astore 2 /* ticd */
        start local 2 // sun.management.ThreadInfoCompositeData ticd
         2: .line 271
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.threadId:()J
            putfield java.lang.management.ThreadInfo.threadId:J
         3: .line 272
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.threadName:()Ljava/lang/String;
            putfield java.lang.management.ThreadInfo.threadName:Ljava/lang/String;
         4: .line 273
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.blockedTime:()J
            putfield java.lang.management.ThreadInfo.blockedTime:J
         5: .line 274
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.blockedCount:()J
            putfield java.lang.management.ThreadInfo.blockedCount:J
         6: .line 275
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.waitedTime:()J
            putfield java.lang.management.ThreadInfo.waitedTime:J
         7: .line 276
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.waitedCount:()J
            putfield java.lang.management.ThreadInfo.waitedCount:J
         8: .line 277
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.lockName:()Ljava/lang/String;
            putfield java.lang.management.ThreadInfo.lockName:Ljava/lang/String;
         9: .line 278
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.lockOwnerId:()J
            putfield java.lang.management.ThreadInfo.lockOwnerId:J
        10: .line 279
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.lockOwnerName:()Ljava/lang/String;
            putfield java.lang.management.ThreadInfo.lockOwnerName:Ljava/lang/String;
        11: .line 280
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.threadState:()Ljava/lang/Thread$State;
            putfield java.lang.management.ThreadInfo.threadState:Ljava/lang/Thread$State;
        12: .line 281
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.suspended:()Z
            putfield java.lang.management.ThreadInfo.suspended:Z
        13: .line 282
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.inNative:()Z
            putfield java.lang.management.ThreadInfo.inNative:Z
        14: .line 283
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.stackTrace:()[Ljava/lang/StackTraceElement;
            putfield java.lang.management.ThreadInfo.stackTrace:[Ljava/lang/StackTraceElement;
        15: .line 286
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.hasV6:()Z
            ifeq 20
        16: .line 287
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.lockInfo:()Ljava/lang/management/LockInfo;
            putfield java.lang.management.ThreadInfo.lock:Ljava/lang/management/LockInfo;
        17: .line 288
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.lockedMonitors:()[Ljava/lang/management/MonitorInfo;
            putfield java.lang.management.ThreadInfo.lockedMonitors:[Ljava/lang/management/MonitorInfo;
        18: .line 289
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.lockedSynchronizers:()[Ljava/lang/management/LockInfo;
            putfield java.lang.management.ThreadInfo.lockedSynchronizers:[Ljava/lang/management/LockInfo;
        19: .line 290
            goto 32
        20: .line 294
      StackMap locals: java.lang.management.ThreadInfo javax.management.openmbean.CompositeData sun.management.ThreadInfoCompositeData
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.lockName:Ljava/lang/String;
            ifnull 29
        21: .line 295
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.lockName:Ljava/lang/String;
            ldc "@"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* result */
        start local 3 // java.lang.String[] result
        22: .line 296
            aload 3 /* result */
            arraylength
            iconst_2
            if_icmpne 26
        23: .line 297
            aload 3 /* result */
            iconst_1
            aaload
            bipush 16
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;I)I
            istore 4 /* identityHashCode */
        start local 4 // int identityHashCode
        24: .line 298
            aload 0 /* this */
            new java.lang.management.LockInfo
            dup
            aload 3 /* result */
            iconst_0
            aaload
            iload 4 /* identityHashCode */
            invokespecial java.lang.management.LockInfo.<init>:(Ljava/lang/String;I)V
            putfield java.lang.management.ThreadInfo.lock:Ljava/lang/management/LockInfo;
        end local 4 // int identityHashCode
        25: .line 299
            goto 30
        26: .line 300
      StackMap locals: java.lang.String[]
      StackMap stack:
            getstatic java.lang.management.ThreadInfo.$assertionsDisabled:Z
            ifne 27
            aload 3 /* result */
            arraylength
            iconst_2
            if_icmpeq 27
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        27: .line 301
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield java.lang.management.ThreadInfo.lock:Ljava/lang/management/LockInfo;
        end local 3 // java.lang.String[] result
        28: .line 303
            goto 30
        29: .line 304
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield java.lang.management.ThreadInfo.lock:Ljava/lang/management/LockInfo;
        30: .line 306
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic java.lang.management.ThreadInfo.EMPTY_MONITORS:[Ljava/lang/management/MonitorInfo;
            putfield java.lang.management.ThreadInfo.lockedMonitors:[Ljava/lang/management/MonitorInfo;
        31: .line 307
            aload 0 /* this */
            getstatic java.lang.management.ThreadInfo.EMPTY_SYNCS:[Ljava/lang/management/LockInfo;
            putfield java.lang.management.ThreadInfo.lockedSynchronizers:[Ljava/lang/management/LockInfo;
        32: .line 311
      StackMap locals:
      StackMap stack:
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.isCurrentVersion:()Z
            ifeq 36
        33: .line 312
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.isDaemon:()Z
            putfield java.lang.management.ThreadInfo.daemon:Z
        34: .line 313
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.getPriority:()I
            putfield java.lang.management.ThreadInfo.priority:I
        35: .line 314
            goto 38
        36: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield java.lang.management.ThreadInfo.daemon:Z
        37: .line 317
            aload 0 /* this */
            iconst_5
            putfield java.lang.management.ThreadInfo.priority:I
        38: .line 319
      StackMap locals:
      StackMap stack:
            return
        end local 2 // sun.management.ThreadInfoCompositeData ticd
        end local 1 // javax.management.openmbean.CompositeData cd
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   39     0              this  Ljava/lang/management/ThreadInfo;
            0   39     1                cd  Ljavax/management/openmbean/CompositeData;
            2   39     2              ticd  Lsun/management/ThreadInfoCompositeData;
           22   28     3            result  [Ljava/lang/String;
           24   25     4  identityHashCode  I
    MethodParameters:
      Name  Flags
      cd    

  public long getThreadId();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.management.ThreadInfo this
         0: .line 327
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.threadId:J
            lreturn
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/management/ThreadInfo;

  public java.lang.String getThreadName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.management.ThreadInfo this
         0: .line 336
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.threadName:Ljava/lang/String;
            areturn
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/management/ThreadInfo;

  public java.lang.Thread$State getThreadState();
    descriptor: ()Ljava/lang/Thread$State;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.management.ThreadInfo this
         0: .line 345
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.threadState:Ljava/lang/Thread$State;
            areturn
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/management/ThreadInfo;

  public long getBlockedTime();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.management.ThreadInfo this
         0: .line 374
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.blockedTime:J
            lreturn
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/management/ThreadInfo;

  public long getBlockedCount();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.management.ThreadInfo this
         0: .line 388
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.blockedCount:J
            lreturn
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/management/ThreadInfo;

  public long getWaitedTime();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.management.ThreadInfo this
         0: .line 419
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.waitedTime:J
            lreturn
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/management/ThreadInfo;

  public long getWaitedCount();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.management.ThreadInfo this
         0: .line 434
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.waitedCount:J
            lreturn
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/management/ThreadInfo;

  public java.lang.management.LockInfo getLockInfo();
    descriptor: ()Ljava/lang/management/LockInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.management.ThreadInfo this
         0: .line 475
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.lock:Ljava/lang/management/LockInfo;
            areturn
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/management/ThreadInfo;

  public java.lang.String getLockName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.management.ThreadInfo this
         0: .line 498
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.lockName:Ljava/lang/String;
            areturn
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/management/ThreadInfo;

  public long getLockOwnerId();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.management.ThreadInfo this
         0: .line 516
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.lockOwnerId:J
            lreturn
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/management/ThreadInfo;

  public java.lang.String getLockOwnerName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.management.ThreadInfo this
         0: .line 534
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.lockOwnerName:Ljava/lang/String;
            areturn
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/management/ThreadInfo;

  public java.lang.StackTraceElement[] getStackTrace();
    descriptor: ()[Ljava/lang/StackTraceElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.management.ThreadInfo this
         0: .line 557
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.stackTrace:[Ljava/lang/StackTraceElement;
            invokevirtual java.lang.StackTraceElement[].clone:()Ljava/lang/Object;
            checkcast java.lang.StackTraceElement[]
            areturn
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/management/ThreadInfo;

  public boolean isSuspended();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.management.ThreadInfo this
         0: .line 569
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.suspended:Z
            ireturn
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/management/ThreadInfo;

  public boolean isInNative();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.management.ThreadInfo this
         0: .line 583
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.inNative:Z
            ireturn
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/management/ThreadInfo;

  public boolean isDaemon();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.management.ThreadInfo this
         0: .line 596
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.daemon:Z
            ireturn
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/management/ThreadInfo;

  public int getPriority();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.management.ThreadInfo this
         0: .line 608
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.priority:I
            ireturn
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/management/ThreadInfo;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // java.lang.management.ThreadInfo this
         0: .line 623
            new java.lang.StringBuilder
            dup
            new java.lang.StringBuilder
            dup
            ldc "\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.getThreadName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 624
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.daemon:Z
            ifeq 2
            ldc " daemon"
            goto 3
      StackMap locals: java.lang.management.ThreadInfo
      StackMap stack: new 0 new 0 java.lang.StringBuilder
         2: ldc ""
      StackMap locals: java.lang.management.ThreadInfo
      StackMap stack: new 0 new 0 java.lang.StringBuilder java.lang.String
         3: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 625
            ldc " prio="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.priority:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         5: .line 626
            ldc " Id="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.getThreadId:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 627
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.getThreadState:()Ljava/lang/Thread$State;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 623
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         8: .line 628
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.getLockName:()Ljava/lang/String;
            ifnull 10
         9: .line 629
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            ldc " on "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.getLockName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 631
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.getLockOwnerName:()Ljava/lang/String;
            ifnull 14
        11: .line 632
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            ldc " owned by \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.getLockOwnerName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 633
            ldc "\" Id="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.getLockOwnerId:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 632
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 635
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.isSuspended:()Z
            ifeq 16
        15: .line 636
            aload 1 /* sb */
            ldc " (suspended)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 638
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.isInNative:()Z
            ifeq 18
        17: .line 639
            aload 1 /* sb */
            ldc " (in native)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 641
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        19: .line 642
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        20: .line 643
            goto 43
        21: .line 644
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.stackTrace:[Ljava/lang/StackTraceElement;
            iload 2 /* i */
            aaload
            astore 3 /* ste */
        start local 3 // java.lang.StackTraceElement ste
        22: .line 645
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "\tat "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* ste */
            invokevirtual java.lang.StackTraceElement.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        23: .line 646
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        24: .line 647
            iload 2 /* i */
            ifne 35
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.getLockInfo:()Ljava/lang/management/LockInfo;
            ifnull 35
        25: .line 648
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.getThreadState:()Ljava/lang/Thread$State;
            astore 4 /* ts */
        start local 4 // java.lang.Thread$State ts
        26: .line 649
            invokestatic java.lang.management.ThreadInfo.$SWITCH_TABLE$java$lang$Thread$State:()[I
            aload 4 /* ts */
            invokevirtual java.lang.Thread$State.ordinal:()I
            iaload
            tableswitch { // 3 - 5
                    3: 27
                    4: 30
                    5: 33
              default: 35
          }
        27: .line 651
      StackMap locals: java.lang.StackTraceElement java.lang.Thread$State
      StackMap stack:
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "\t-  blocked on "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.getLockInfo:()Ljava/lang/management/LockInfo;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        28: .line 652
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        29: .line 653
            goto 35
        30: .line 655
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "\t-  waiting on "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.getLockInfo:()Ljava/lang/management/LockInfo;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        31: .line 656
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        32: .line 657
            goto 35
        33: .line 659
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "\t-  waiting on "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.getLockInfo:()Ljava/lang/management/LockInfo;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        34: .line 660
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 4 // java.lang.Thread$State ts
        35: .line 666
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.lockedMonitors:[Ljava/lang/management/MonitorInfo;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 41
      StackMap locals: java.lang.management.ThreadInfo java.lang.StringBuilder int java.lang.StackTraceElement top int int java.lang.management.MonitorInfo[]
      StackMap stack:
        36: aload 7
            iload 5
            aaload
            astore 4 /* mi */
        start local 4 // java.lang.management.MonitorInfo mi
        37: .line 667
            aload 4 /* mi */
            invokevirtual java.lang.management.MonitorInfo.getLockedStackDepth:()I
            iload 2 /* i */
            if_icmpne 40
        38: .line 668
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "\t-  locked "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* mi */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        39: .line 669
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 4 // java.lang.management.MonitorInfo mi
        40: .line 666
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        41: iload 5
            iload 6
            if_icmplt 36
        end local 3 // java.lang.StackTraceElement ste
        42: .line 643
            iinc 2 /* i */ 1
      StackMap locals: java.lang.management.ThreadInfo java.lang.StringBuilder int
      StackMap stack:
        43: iload 2 /* i */
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.stackTrace:[Ljava/lang/StackTraceElement;
            arraylength
            if_icmpge 44
            iload 2 /* i */
            bipush 8
            if_icmplt 21
        44: .line 673
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.stackTrace:[Ljava/lang/StackTraceElement;
            arraylength
            if_icmpge 47
        45: .line 674
            aload 1 /* sb */
            ldc "\t..."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        46: .line 675
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        47: .line 678
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.getLockedSynchronizers:()[Ljava/lang/management/LockInfo;
            astore 3 /* locks */
        start local 3 // java.lang.management.LockInfo[] locks
        48: .line 679
            aload 3 /* locks */
            arraylength
            ifle 57
        49: .line 680
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "\n\tNumber of locked synchronizers = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* locks */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        50: .line 681
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        51: .line 682
            aload 3 /* locks */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 56
      StackMap locals: java.lang.management.ThreadInfo java.lang.StringBuilder int java.lang.management.LockInfo[] top int int java.lang.management.LockInfo[]
      StackMap stack:
        52: aload 7
            iload 5
            aaload
            astore 4 /* li */
        start local 4 // java.lang.management.LockInfo li
        53: .line 683
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "\t- "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* li */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        54: .line 684
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 4 // java.lang.management.LockInfo li
        55: .line 682
            iinc 5 1
      StackMap locals:
      StackMap stack:
        56: iload 5
            iload 6
            if_icmplt 52
        57: .line 687
      StackMap locals: java.lang.management.ThreadInfo java.lang.StringBuilder int java.lang.management.LockInfo[]
      StackMap stack:
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        58: .line 688
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.management.LockInfo[] locks
        end local 2 // int i
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   59     0   this  Ljava/lang/management/ThreadInfo;
            8   59     1     sb  Ljava/lang/StringBuilder;
           20   59     2      i  I
           22   42     3    ste  Ljava/lang/StackTraceElement;
           26   35     4     ts  Ljava/lang/Thread$State;
           37   40     4     mi  Ljava/lang/management/MonitorInfo;
           48   59     3  locks  [Ljava/lang/management/LockInfo;
           53   55     4     li  Ljava/lang/management/LockInfo;

  public static java.lang.management.ThreadInfo from(javax.management.openmbean.CompositeData);
    descriptor: (Ljavax/management/openmbean/CompositeData;)Ljava/lang/management/ThreadInfo;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // javax.management.openmbean.CompositeData cd
         0: .line 851
            aload 0 /* cd */
            ifnonnull 2
         1: .line 852
            aconst_null
            areturn
         2: .line 855
      StackMap locals:
      StackMap stack:
            aload 0 /* cd */
            instanceof sun.management.ThreadInfoCompositeData
            ifeq 4
         3: .line 856
            aload 0 /* cd */
            checkcast sun.management.ThreadInfoCompositeData
            invokevirtual sun.management.ThreadInfoCompositeData.getThreadInfo:()Ljava/lang/management/ThreadInfo;
            areturn
         4: .line 858
      StackMap locals:
      StackMap stack:
            new java.lang.management.ThreadInfo
            dup
            aload 0 /* cd */
            invokespecial java.lang.management.ThreadInfo.<init>:(Ljavax/management/openmbean/CompositeData;)V
            areturn
        end local 0 // javax.management.openmbean.CompositeData cd
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0    cd  Ljavax/management/openmbean/CompositeData;
    MethodParameters:
      Name  Flags
      cd    

  public java.lang.management.MonitorInfo[] getLockedMonitors();
    descriptor: ()[Ljava/lang/management/MonitorInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.management.ThreadInfo this
         0: .line 876
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.lockedMonitors:[Ljava/lang/management/MonitorInfo;
            invokevirtual java.lang.management.MonitorInfo[].clone:()Ljava/lang/Object;
            checkcast java.lang.management.MonitorInfo[]
            areturn
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/management/ThreadInfo;

  public java.lang.management.LockInfo[] getLockedSynchronizers();
    descriptor: ()[Ljava/lang/management/LockInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.management.ThreadInfo this
         0: .line 893
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.lockedSynchronizers:[Ljava/lang/management/LockInfo;
            invokevirtual java.lang.management.LockInfo[].clone:()Ljava/lang/Object;
            checkcast java.lang.management.LockInfo[]
            areturn
        end local 0 // java.lang.management.ThreadInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/management/ThreadInfo;

  static int[] $SWITCH_TABLE$java$lang$Thread$State();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 94
            getstatic java.lang.management.ThreadInfo.$SWITCH_TABLE$java$lang$Thread$State:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic java.lang.Thread$State.values:()[Ljava/lang/Thread$State;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic java.lang.Thread$State.BLOCKED:Ljava/lang/Thread$State;
            invokevirtual java.lang.Thread$State.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic java.lang.Thread$State.NEW:Ljava/lang/Thread$State;
            invokevirtual java.lang.Thread$State.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic java.lang.Thread$State.RUNNABLE:Ljava/lang/Thread$State;
            invokevirtual java.lang.Thread$State.ordinal:()I
            iconst_2
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic java.lang.Thread$State.TERMINATED:Ljava/lang/Thread$State;
            invokevirtual java.lang.Thread$State.ordinal:()I
            bipush 6
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic java.lang.Thread$State.TIMED_WAITING:Ljava/lang/Thread$State;
            invokevirtual java.lang.Thread$State.ordinal:()I
            iconst_5
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic java.lang.Thread$State.WAITING:Ljava/lang/Thread$State;
            invokevirtual java.lang.Thread$State.ordinal:()I
            iconst_4
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            dup
            putstatic java.lang.management.ThreadInfo.$SWITCH_TABLE$java$lang$Thread$State:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
}
SourceFile: "ThreadInfo.java"
InnerClasses:
  public final State = java.lang.Thread$State of java.lang.Thread