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 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 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 92
            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 110
            iconst_0
            anewarray java.lang.management.MonitorInfo
            putstatic java.lang.management.ThreadInfo.EMPTY_MONITORS:[Ljava/lang/management/MonitorInfo;
         4: .line 111
            iconst_0
            anewarray java.lang.management.LockInfo
            putstatic java.lang.management.ThreadInfo.EMPTY_SYNCS:[Ljava/lang/management/LockInfo;
         5: .line 833
            iconst_0
            anewarray java.lang.StackTraceElement
         6: .line 832
            putstatic java.lang.management.ThreadInfo.NO_STACK_TRACE:[Ljava/lang/StackTraceElement;
         7: .line 833
            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 126
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 130
            aload 0 /* this */
            aload 1 /* t */
            iload 2 /* state */
            aload 3 /* lockObj */
            aload 4 /* lockOwner */
         2: .line 131
            lload 5 /* blockedCount */
            lload 7 /* blockedTime */
         3: .line 132
            lload 9 /* waitedCount */
            lload 11 /* waitedTime */
            aload 13 /* stackTrace */
         4: .line 133
            getstatic java.lang.management.ThreadInfo.EMPTY_MONITORS:[Ljava/lang/management/MonitorInfo;
            getstatic java.lang.management.ThreadInfo.EMPTY_SYNCS:[Ljava/lang/management/LockInfo;
         5: .line 130
            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 134
            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 154
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 161
            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 163
            iload 17 /* numMonitors */
            ifne 7
         5: .line 164
            getstatic java.lang.management.ThreadInfo.EMPTY_MONITORS:[Ljava/lang/management/MonitorInfo;
            astore 18 /* lockedMonitors */
        start local 18 // java.lang.management.MonitorInfo[] lockedMonitors
         6: .line 165
            goto 24
        end local 18 // java.lang.management.MonitorInfo[] lockedMonitors
         7: .line 166
      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 167
            iconst_0
            istore 19 /* i */
        start local 19 // int i
         9: goto 23
        10: .line 168
      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 169
            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 170
            aload 20 /* lock */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            istore 22 /* identityHashCode */
        start local 22 // int identityHashCode
        13: .line 171
            aload 15 /* stackDepths */
            iload 19 /* i */
            iaload
            istore 23 /* depth */
        start local 23 // int depth
        14: .line 172
            iload 23 /* depth */
            iflt 15
            aload 13 /* stackTrace */
            iload 23 /* depth */
            aaload
            goto 16
        15: .line 173
      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 172
      StackMap locals:
      StackMap stack: java.lang.StackTraceElement
            astore 24 /* ste */
        start local 24 // java.lang.StackTraceElement ste
        17: .line 174
            aload 18 /* lockedMonitors */
            iload 19 /* i */
            new java.lang.management.MonitorInfo
            dup
            aload 21 /* className */
        18: .line 175
            iload 22 /* identityHashCode */
        19: .line 176
            iload 23 /* depth */
        20: .line 177
            aload 24 /* ste */
            invokespecial java.lang.management.MonitorInfo.<init>:(Ljava/lang/String;IILjava/lang/StackTraceElement;)V
        21: .line 174
            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 167
            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 181
      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 183
            iload 19 /* numSyncs */
            ifne 30
        28: .line 184
            getstatic java.lang.management.ThreadInfo.EMPTY_SYNCS:[Ljava/lang/management/LockInfo;
            astore 20 /* lockedSynchronizers */
        start local 20 // java.lang.management.LockInfo[] lockedSynchronizers
        29: .line 185
            goto 41
        end local 20 // java.lang.management.LockInfo[] lockedSynchronizers
        30: .line 186
      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 187
            iconst_0
            istore 21 /* i */
        start local 21 // int i
        32: goto 40
        33: .line 188
      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 189
            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 190
            aload 22 /* lock */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            istore 24 /* identityHashCode */
        start local 24 // int identityHashCode
        36: .line 191
            aload 20 /* lockedSynchronizers */
            iload 21 /* i */
            new java.lang.management.LockInfo
            dup
            aload 23 /* className */
        37: .line 192
            iload 24 /* identityHashCode */
            invokespecial java.lang.management.LockInfo.<init>:(Ljava/lang/String;I)V
        38: .line 191
            aastore
        end local 24 // int identityHashCode
        end local 23 // java.lang.String className
        end local 22 // java.lang.Object lock
        39: .line 187
            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 196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            iload 2 /* state */
            aload 3 /* lockObj */
            aload 4 /* lockOwner */
        42: .line 197
            lload 5 /* blockedCount */
            lload 7 /* blockedTime */
        43: .line 198
            lload 9 /* waitedCount */
            lload 11 /* waitedTime */
            aload 13 /* stackTrace */
        44: .line 199
            aload 18 /* lockedMonitors */
            aload 20 /* lockedSynchronizers */
        45: .line 196
            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 200
            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 223
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual java.lang.Thread.getId:()J
            putfield java.lang.management.ThreadInfo.threadId:J
         1: .line 224
            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 225
            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 226
            aload 0 /* this */
            iload 2 /* state */
            invokestatic sun.management.ManagementFactoryHelper.isThreadSuspended:(I)Z
            putfield java.lang.management.ThreadInfo.suspended:Z
         4: .line 227
            aload 0 /* this */
            iload 2 /* state */
            invokestatic sun.management.ManagementFactoryHelper.isThreadRunningNative:(I)Z
            putfield java.lang.management.ThreadInfo.inNative:Z
         5: .line 228
            aload 0 /* this */
            lload 5 /* blockedCount */
            putfield java.lang.management.ThreadInfo.blockedCount:J
         6: .line 229
            aload 0 /* this */
            lload 7 /* blockedTime */
            putfield java.lang.management.ThreadInfo.blockedTime:J
         7: .line 230
            aload 0 /* this */
            lload 9 /* waitedCount */
            putfield java.lang.management.ThreadInfo.waitedCount:J
         8: .line 231
            aload 0 /* this */
            lload 11 /* waitedTime */
            putfield java.lang.management.ThreadInfo.waitedTime:J
         9: .line 233
            aload 3 /* lockObj */
            ifnonnull 13
        10: .line 234
            aload 0 /* this */
            aconst_null
            putfield java.lang.management.ThreadInfo.lock:Ljava/lang/management/LockInfo;
        11: .line 235
            aload 0 /* this */
            aconst_null
            putfield java.lang.management.ThreadInfo.lockName:Ljava/lang/String;
        12: .line 236
            goto 19
        13: .line 237
      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;
        14: .line 238
            aload 0 /* this */
        15: .line 239
            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;
        16: .line 240
            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;
        17: .line 239
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 238
            putfield java.lang.management.ThreadInfo.lockName:Ljava/lang/String;
        19: .line 242
      StackMap locals:
      StackMap stack:
            aload 4 /* lockOwner */
            ifnonnull 23
        20: .line 243
            aload 0 /* this */
            ldc -1
            putfield java.lang.management.ThreadInfo.lockOwnerId:J
        21: .line 244
            aload 0 /* this */
            aconst_null
            putfield java.lang.management.ThreadInfo.lockOwnerName:Ljava/lang/String;
        22: .line 245
            goto 25
        23: .line 246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* lockOwner */
            invokevirtual java.lang.Thread.getId:()J
            putfield java.lang.management.ThreadInfo.lockOwnerId:J
        24: .line 247
            aload 0 /* this */
            aload 4 /* lockOwner */
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            putfield java.lang.management.ThreadInfo.lockOwnerName:Ljava/lang/String;
        25: .line 249
      StackMap locals:
      StackMap stack:
            aload 13 /* stackTrace */
            ifnonnull 28
        26: .line 250
            aload 0 /* this */
            getstatic java.lang.management.ThreadInfo.NO_STACK_TRACE:[Ljava/lang/StackTraceElement;
            putfield java.lang.management.ThreadInfo.stackTrace:[Ljava/lang/StackTraceElement;
        27: .line 251
            goto 29
        28: .line 252
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 13 /* stackTrace */
            putfield java.lang.management.ThreadInfo.stackTrace:[Ljava/lang/StackTraceElement;
        29: .line 254
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 14 /* lockedMonitors */
            putfield java.lang.management.ThreadInfo.lockedMonitors:[Ljava/lang/management/MonitorInfo;
        30: .line 255
            aload 0 /* this */
            aload 15 /* lockedSynchronizers */
            putfield java.lang.management.ThreadInfo.lockedSynchronizers:[Ljava/lang/management/LockInfo;
        31: .line 256
            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   32     0                 this  Ljava/lang/management/ThreadInfo;
            0   32     1                    t  Ljava/lang/Thread;
            0   32     2                state  I
            0   32     3              lockObj  Ljava/lang/Object;
            0   32     4            lockOwner  Ljava/lang/Thread;
            0   32     5         blockedCount  J
            0   32     7          blockedTime  J
            0   32     9          waitedCount  J
            0   32    11           waitedTime  J
            0   32    13           stackTrace  [Ljava/lang/StackTraceElement;
            0   32    14       lockedMonitors  [Ljava/lang/management/MonitorInfo;
            0   32    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 262
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 263
            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 265
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.threadId:()J
            putfield java.lang.management.ThreadInfo.threadId:J
         3: .line 266
            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 267
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.blockedTime:()J
            putfield java.lang.management.ThreadInfo.blockedTime:J
         5: .line 268
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.blockedCount:()J
            putfield java.lang.management.ThreadInfo.blockedCount:J
         6: .line 269
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.waitedTime:()J
            putfield java.lang.management.ThreadInfo.waitedTime:J
         7: .line 270
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.waitedCount:()J
            putfield java.lang.management.ThreadInfo.waitedCount:J
         8: .line 271
            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 272
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.lockOwnerId:()J
            putfield java.lang.management.ThreadInfo.lockOwnerId:J
        10: .line 273
            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 274
            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 275
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.suspended:()Z
            putfield java.lang.management.ThreadInfo.suspended:Z
        13: .line 276
            aload 0 /* this */
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.inNative:()Z
            putfield java.lang.management.ThreadInfo.inNative:Z
        14: .line 277
            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 280
            aload 2 /* ticd */
            invokevirtual sun.management.ThreadInfoCompositeData.isCurrentVersion:()Z
            ifeq 20
        16: .line 281
            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 282
            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 283
            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 284
            goto 32
        20: .line 288
      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 289
            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 290
            aload 3 /* result */
            arraylength
            iconst_2
            if_icmpne 26
        23: .line 291
            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 292
            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 293
            goto 30
        26: .line 294
      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 295
      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 297
            goto 30
        29: .line 298
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield java.lang.management.ThreadInfo.lock:Ljava/lang/management/LockInfo;
        30: .line 300
      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 301
            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 303
      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   33     0              this  Ljava/lang/management/ThreadInfo;
            0   33     1                cd  Ljavax/management/openmbean/CompositeData;
            2   33     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 311
            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 320
            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 329
            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 358
            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 372
            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 403
            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 418
            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 459
            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 482
            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 500
            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 518
            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 541
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.stackTrace:[Ljava/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 553
            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 567
            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 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 582
            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 583
            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;
         2: .line 584
            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;
         3: .line 582
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         4: .line 585
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.getLockName:()Ljava/lang/String;
            ifnull 6
         5: .line 586
            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
         6: .line 588
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.getLockOwnerName:()Ljava/lang/String;
            ifnull 10
         7: .line 589
            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;
         8: .line 590
            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;
         9: .line 589
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 592
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.isSuspended:()Z
            ifeq 12
        11: .line 593
            aload 1 /* sb */
            ldc " (suspended)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 595
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.isInNative:()Z
            ifeq 14
        13: .line 596
            aload 1 /* sb */
            ldc " (in native)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 598
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        15: .line 599
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        16: .line 600
            goto 39
        17: .line 601
      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
        18: .line 602
            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
        19: .line 603
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        20: .line 604
            iload 2 /* i */
            ifne 31
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.getLockInfo:()Ljava/lang/management/LockInfo;
            ifnull 31
        21: .line 605
            aload 0 /* this */
            invokevirtual java.lang.management.ThreadInfo.getThreadState:()Ljava/lang/Thread$State;
            astore 4 /* ts */
        start local 4 // java.lang.Thread$State ts
        22: .line 606
            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: 23
                    4: 26
                    5: 29
              default: 31
          }
        23: .line 608
      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
        24: .line 609
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        25: .line 610
            goto 31
        26: .line 612
      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
        27: .line 613
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        28: .line 614
            goto 31
        29: .line 616
      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
        30: .line 617
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 4 // java.lang.Thread$State ts
        31: .line 623
      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 37
      StackMap locals: java.lang.management.ThreadInfo java.lang.StringBuilder int java.lang.StackTraceElement top int int java.lang.management.MonitorInfo[]
      StackMap stack:
        32: aload 7
            iload 5
            aaload
            astore 4 /* mi */
        start local 4 // java.lang.management.MonitorInfo mi
        33: .line 624
            aload 4 /* mi */
            invokevirtual java.lang.management.MonitorInfo.getLockedStackDepth:()I
            iload 2 /* i */
            if_icmpne 36
        34: .line 625
            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
        35: .line 626
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 4 // java.lang.management.MonitorInfo mi
        36: .line 623
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        37: iload 5
            iload 6
            if_icmplt 32
        end local 3 // java.lang.StackTraceElement ste
        38: .line 600
            iinc 2 /* i */ 1
      StackMap locals: java.lang.management.ThreadInfo java.lang.StringBuilder int
      StackMap stack:
        39: iload 2 /* i */
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.stackTrace:[Ljava/lang/StackTraceElement;
            arraylength
            if_icmpge 40
            iload 2 /* i */
            bipush 8
            if_icmplt 17
        40: .line 630
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.stackTrace:[Ljava/lang/StackTraceElement;
            arraylength
            if_icmpge 43
        41: .line 631
            aload 1 /* sb */
            ldc "\t..."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        42: .line 632
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        43: .line 635
      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
        44: .line 636
            aload 3 /* locks */
            arraylength
            ifle 53
        45: .line 637
            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
        46: .line 638
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        47: .line 639
            aload 3 /* locks */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 52
      StackMap locals: java.lang.management.ThreadInfo java.lang.StringBuilder int java.lang.management.LockInfo[] top int int java.lang.management.LockInfo[]
      StackMap stack:
        48: aload 7
            iload 5
            aaload
            astore 4 /* li */
        start local 4 // java.lang.management.LockInfo li
        49: .line 640
            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
        50: .line 641
            aload 1 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 4 // java.lang.management.LockInfo li
        51: .line 639
            iinc 5 1
      StackMap locals:
      StackMap stack:
        52: iload 5
            iload 6
            if_icmplt 48
        53: .line 644
      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
        54: .line 645
            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   55     0   this  Ljava/lang/management/ThreadInfo;
            4   55     1     sb  Ljava/lang/StringBuilder;
           16   55     2      i  I
           18   38     3    ste  Ljava/lang/StackTraceElement;
           22   31     4     ts  Ljava/lang/Thread$State;
           33   36     4     mi  Ljava/lang/management/MonitorInfo;
           44   55     3  locks  [Ljava/lang/management/LockInfo;
           49   51     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 787
            aload 0 /* cd */
            ifnonnull 2
         1: .line 788
            aconst_null
            areturn
         2: .line 791
      StackMap locals:
      StackMap stack:
            aload 0 /* cd */
            instanceof sun.management.ThreadInfoCompositeData
            ifeq 4
         3: .line 792
            aload 0 /* cd */
            checkcast sun.management.ThreadInfoCompositeData
            invokevirtual sun.management.ThreadInfoCompositeData.getThreadInfo:()Ljava/lang/management/ThreadInfo;
            areturn
         4: .line 794
      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 812
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.lockedMonitors:[Ljava/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 829
            aload 0 /* this */
            getfield java.lang.management.ThreadInfo.lockedSynchronizers:[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;

  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 92
            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