class org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture extends java.util.concurrent.FutureTask<java.lang.Object> implements commonj.timers.TimerListener, java.util.concurrent.ScheduledFuture<java.lang.Object>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture
  super_class: java.util.concurrent.FutureTask
{
  protected transient commonj.timers.Timer timer;
    descriptor: Lcommonj/timers/Timer;
    flags: (0x0084) ACC_PROTECTED, ACC_TRANSIENT
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  protected transient boolean cancelled;
    descriptor: Z
    flags: (0x0084) ACC_PROTECTED, ACC_TRANSIENT

  public void <init>(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture this
        start local 1 // java.lang.Runnable runnable
         0: .line 123
            aload 0 /* this */
            aload 1 /* runnable */
            aconst_null
            invokespecial java.util.concurrent.FutureTask.<init>:(Ljava/lang/Runnable;Ljava/lang/Object;)V
         1: .line 120
            aload 0 /* this */
            iconst_0
            putfield org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture.cancelled:Z
         2: .line 124
            return
        end local 1 // java.lang.Runnable runnable
        end local 0 // org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/springframework/scheduling/commonj/TimerManagerTaskScheduler$TimerScheduledFuture;
            0    3     1  runnable  Ljava/lang/Runnable;
    MethodParameters:
          Name  Flags
      runnable  

  public void setTimer(commonj.timers.Timer);
    descriptor: (Lcommonj/timers/Timer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture this
        start local 1 // commonj.timers.Timer timer
         0: .line 127
            aload 0 /* this */
            aload 1 /* timer */
            putfield org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture.timer:Lcommonj/timers/Timer;
         1: .line 128
            return
        end local 1 // commonj.timers.Timer timer
        end local 0 // org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/springframework/scheduling/commonj/TimerManagerTaskScheduler$TimerScheduledFuture;
            0    2     1  timer  Lcommonj/timers/Timer;
    MethodParameters:
       Name  Flags
      timer  

  public void timerExpired(commonj.timers.Timer);
    descriptor: (Lcommonj/timers/Timer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture this
        start local 1 // commonj.timers.Timer timer
         0: .line 132
            aload 0 /* this */
            invokevirtual org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture.runAndReset:()Z
            pop
         1: .line 133
            return
        end local 1 // commonj.timers.Timer timer
        end local 0 // org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/springframework/scheduling/commonj/TimerManagerTaskScheduler$TimerScheduledFuture;
            0    2     1  timer  Lcommonj/timers/Timer;
    MethodParameters:
       Name  Flags
      timer  

  public boolean cancel(boolean);
    descriptor: (Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture this
        start local 1 // boolean mayInterruptIfRunning
         0: .line 137
            aload 0 /* this */
            iload 1 /* mayInterruptIfRunning */
            invokespecial java.util.concurrent.FutureTask.cancel:(Z)Z
            istore 2 /* result */
        start local 2 // boolean result
         1: .line 138
            aload 0 /* this */
            getfield org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture.timer:Lcommonj/timers/Timer;
            ifnull 3
         2: .line 139
            aload 0 /* this */
            getfield org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture.timer:Lcommonj/timers/Timer;
            invokeinterface commonj.timers.Timer.cancel:()Z
            pop
         3: .line 141
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture.cancelled:Z
         4: .line 142
            iload 2 /* result */
            ireturn
        end local 2 // boolean result
        end local 1 // boolean mayInterruptIfRunning
        end local 0 // org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    5     0                   this  Lorg/springframework/scheduling/commonj/TimerManagerTaskScheduler$TimerScheduledFuture;
            0    5     1  mayInterruptIfRunning  Z
            1    5     2                 result  Z
    MethodParameters:
                       Name  Flags
      mayInterruptIfRunning  

  public long getDelay(java.util.concurrent.TimeUnit);
    descriptor: (Ljava/util/concurrent/TimeUnit;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture this
        start local 1 // java.util.concurrent.TimeUnit unit
         0: .line 147
            aload 0 /* this */
            getfield org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture.timer:Lcommonj/timers/Timer;
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ldc "No Timer available"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         3: .line 148
            aload 1 /* unit */
            aload 0 /* this */
            getfield org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture.timer:Lcommonj/timers/Timer;
            invokeinterface commonj.timers.Timer.getScheduledExecutionTime:()J
            invokestatic java.lang.System.currentTimeMillis:()J
            lsub
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
            lreturn
        end local 1 // java.util.concurrent.TimeUnit unit
        end local 0 // org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/springframework/scheduling/commonj/TimerManagerTaskScheduler$TimerScheduledFuture;
            0    4     1  unit  Ljava/util/concurrent/TimeUnit;
    MethodParameters:
      Name  Flags
      unit  

  public int compareTo(java.util.concurrent.Delayed);
    descriptor: (Ljava/util/concurrent/Delayed;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture this
        start local 1 // java.util.concurrent.Delayed other
         0: .line 153
            aload 0 /* this */
            aload 1 /* other */
            if_acmpne 2
         1: .line 154
            iconst_0
            ireturn
         2: .line 156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture.getDelay:(Ljava/util/concurrent/TimeUnit;)J
            aload 1 /* other */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.Delayed.getDelay:(Ljava/util/concurrent/TimeUnit;)J
            lsub
            lstore 2 /* diff */
        start local 2 // long diff
         3: .line 157
            lload 2 /* diff */
            lconst_0
            lcmp
            ifne 4
            iconst_0
            goto 6
      StackMap locals: long
      StackMap stack:
         4: lload 2 /* diff */
            lconst_0
            lcmp
            ifge 5
            iconst_m1
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_1
      StackMap locals:
      StackMap stack: int
         6: ireturn
        end local 2 // long diff
        end local 1 // java.util.concurrent.Delayed other
        end local 0 // org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/springframework/scheduling/commonj/TimerManagerTaskScheduler$TimerScheduledFuture;
            0    7     1  other  Ljava/util/concurrent/Delayed;
            3    7     2   diff  J
    MethodParameters:
       Name  Flags
      other  

  public int compareTo(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast java.util.concurrent.Delayed
            invokevirtual org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture.compareTo:(Ljava/util/concurrent/Delayed;)I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/util/concurrent/FutureTask<Ljava/lang/Object;>;Lcommonj/timers/TimerListener;Ljava/util/concurrent/ScheduledFuture<Ljava/lang/Object;>;
SourceFile: "TimerManagerTaskScheduler.java"
NestHost: org.springframework.scheduling.commonj.TimerManagerTaskScheduler
InnerClasses:
  private TimerScheduledFuture = org.springframework.scheduling.commonj.TimerManagerTaskScheduler$TimerScheduledFuture of org.springframework.scheduling.commonj.TimerManagerTaskScheduler