public abstract class java.util.TimerTask implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: java.util.TimerTask
  super_class: java.lang.Object
{
  final java.lang.Object lock;
    descriptor: Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL

  int state;
    descriptor: I
    flags: (0x0000) 

  static final int VIRGIN;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int SCHEDULED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int EXECUTED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int CANCELLED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  long nextExecutionTime;
    descriptor: J
    flags: (0x0000) 

  long period;
    descriptor: J
    flags: (0x0000) 

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.TimerTask this
         0: .line 90
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 44
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield java.util.TimerTask.lock:Ljava/lang/Object;
         2: .line 49
            aload 0 /* this */
            iconst_0
            putfield java.util.TimerTask.state:I
         3: .line 85
            aload 0 /* this */
            lconst_0
            putfield java.util.TimerTask.period:J
         4: .line 91
            return
        end local 0 // java.util.TimerTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/util/TimerTask;

  public abstract void run();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public boolean cancel();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.util.TimerTask this
         0: .line 121
            aload 0 /* this */
            getfield java.util.TimerTask.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 122
            aload 0 /* this */
            getfield java.util.TimerTask.state:I
            iconst_1
            if_icmpne 2
            iconst_1
            goto 3
      StackMap locals: java.lang.Object
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 2 /* result */
        start local 2 // boolean result
         4: .line 123
            aload 0 /* this */
            iconst_3
            putfield java.util.TimerTask.state:I
         5: .line 124
            iload 2 /* result */
            aload 1
            monitorexit
         6: ireturn
        end local 2 // boolean result
         7: .line 121
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         8: athrow
        end local 0 // java.util.TimerTask this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Ljava/util/TimerTask;
            4    7     2  result  Z
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any

  public long scheduledExecutionTime();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.util.TimerTask this
         0: .line 157
            aload 0 /* this */
            getfield java.util.TimerTask.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 158
            aload 0 /* this */
            getfield java.util.TimerTask.period:J
            lconst_0
            lcmp
            ifge 2
            aload 0 /* this */
            getfield java.util.TimerTask.nextExecutionTime:J
            aload 0 /* this */
            getfield java.util.TimerTask.period:J
            ladd
            goto 3
         2: .line 159
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield java.util.TimerTask.nextExecutionTime:J
            aload 0 /* this */
            getfield java.util.TimerTask.period:J
            lsub
         3: .line 158
      StackMap locals:
      StackMap stack: long
            aload 1
            monitorexit
         4: lreturn
         5: .line 157
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         6: athrow
        end local 0 // java.util.TimerTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljava/util/TimerTask;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
}
SourceFile: "TimerTask.java"