class com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable extends com.google.common.util.concurrent.ForwardingFuture<java.lang.Void> implements java.util.concurrent.Callable<java.lang.Void>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable
super_class: com.google.common.util.concurrent.ForwardingFuture
{
private final java.lang.Runnable wrappedRunnable;
descriptor: Ljava/lang/Runnable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.ScheduledExecutorService executor;
descriptor: Ljava/util/concurrent/ScheduledExecutorService;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.google.common.util.concurrent.AbstractService service;
descriptor: Lcom/google/common/util/concurrent/AbstractService;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.locks.ReentrantLock lock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.util.concurrent.Future<java.lang.Void> currentFuture;
descriptor: Ljava/util/concurrent/Future;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/concurrent/Future<Ljava/lang/Void;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "lock")
RuntimeVisibleTypeAnnotations:
FIELD
org.checkerframework.checker.nullness.qual.Nullable()
final com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler this$1;
descriptor: Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler, com.google.common.util.concurrent.AbstractService, java.util.concurrent.ScheduledExecutorService, java.lang.Runnable);
descriptor: (Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler;Lcom/google/common/util/concurrent/AbstractService;Ljava/util/concurrent/ScheduledExecutorService;Ljava/lang/Runnable;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=5
start local 0 start local 2 start local 3 start local 4 0: aload 0
aload 1
putfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.this$1:Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler;
1: aload 0
invokespecial com.google.common.util.concurrent.ForwardingFuture.<init>:()V
2: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.lock:Ljava/util/concurrent/locks/ReentrantLock;
3: aload 0
aload 4
putfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.wrappedRunnable:Ljava/lang/Runnable;
4: aload 0
aload 3
putfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.executor:Ljava/util/concurrent/ScheduledExecutorService;
5: aload 0
aload 2
putfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.service:Lcom/google/common/util/concurrent/AbstractService;
6: return
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$ReschedulableCallable;
0 7 2 service Lcom/google/common/util/concurrent/AbstractService;
0 7 3 executor Ljava/util/concurrent/ScheduledExecutorService;
0 7 4 runnable Ljava/lang/Runnable;
MethodParameters:
Name Flags
this$0 final
service
executor
runnable
public java.lang.Void call();
descriptor: ()Ljava/lang/Void;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.wrappedRunnable:Ljava/lang/Runnable;
invokeinterface java.lang.Runnable.run:()V
1: aload 0
invokevirtual com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.reschedule:()V
2: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$ReschedulableCallable;
Exceptions:
throws java.lang.Exception
public void reschedule();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.this$1:Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler;
invokevirtual com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler.getNextSchedule:()Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$Schedule;
astore 1
start local 1 1: goto 5
end local 1 StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 2
start local 2 3: aload 0
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.service:Lcom/google/common/util/concurrent/AbstractService;
aload 2
invokevirtual com.google.common.util.concurrent.AbstractService.notifyFailed:(Ljava/lang/Throwable;)V
4: return
end local 2 start local 1 5: StackMap locals: com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$Schedule
StackMap stack:
aconst_null
astore 2
start local 2 6: aload 0
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
7: aload 0
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.currentFuture:Ljava/util/concurrent/Future;
ifnull 8
aload 0
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.currentFuture:Ljava/util/concurrent/Future;
invokeinterface java.util.concurrent.Future.isCancelled:()Z
ifne 16
8: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
aload 0
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.executor:Ljava/util/concurrent/ScheduledExecutorService;
aload 0
aload 1
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$Schedule.delay:J
aload 1
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$Schedule.unit:Ljava/util/concurrent/TimeUnit;
invokeinterface java.util.concurrent.ScheduledExecutorService.schedule:(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
putfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.currentFuture:Ljava/util/concurrent/Future;
9: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 3
start local 3 11: aload 3
astore 2
end local 3 12: aload 0
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
goto 17
13: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
14: aload 0
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
15: aload 4
athrow
16: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
17: StackMap locals:
StackMap stack:
aload 2
ifnull 19
18: aload 0
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.service:Lcom/google/common/util/concurrent/AbstractService;
aload 2
invokevirtual com.google.common.util.concurrent.AbstractService.notifyFailed:(Ljava/lang/Throwable;)V
19: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$ReschedulableCallable;
1 2 1 schedule Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$Schedule;
5 20 1 schedule Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$Schedule;
3 5 2 t Ljava/lang/Throwable;
6 20 2 scheduleFailure Ljava/lang/Throwable;
11 12 3 e Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
7 9 10 Class java.lang.Throwable
7 12 13 any
public boolean cancel(boolean);
descriptor: (Z)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.currentFuture:Ljava/util/concurrent/Future;
iload 1
invokeinterface java.util.concurrent.Future.cancel:(Z)Z
istore 3
2: aload 0
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
3: iload 3
ireturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
5: aload 0
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 2
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$ReschedulableCallable;
0 7 1 mayInterruptIfRunning Z
Exception table:
from to target type
1 2 4 any
MethodParameters:
Name Flags
mayInterruptIfRunning
public boolean isCancelled();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.currentFuture:Ljava/util/concurrent/Future;
invokeinterface java.util.concurrent.Future.isCancelled:()Z
istore 2
2: aload 0
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
3: iload 2
ireturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
5: aload 0
getfield com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$ReschedulableCallable;
Exception table:
from to target type
1 2 4 any
protected java.util.concurrent.Future<java.lang.Void> delegate();
descriptor: ()Ljava/util/concurrent/Future;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.UnsupportedOperationException
dup
1: ldc "Only cancel and isCancelled is supported by this future"
2: invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/util/concurrent/AbstractScheduledService$CustomScheduler$ReschedulableCallable;
Signature: ()Ljava/util/concurrent/Future<Ljava/lang/Void;>;
protected java.lang.Object delegate();
descriptor: ()Ljava/lang/Object;
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.delegate:()Ljava/util/concurrent/Future;
areturn
LocalVariableTable:
Start End Slot Name Signature
public java.lang.Object call();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable.call:()Ljava/lang/Void;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
}
Signature: Lcom/google/common/util/concurrent/ForwardingFuture<Ljava/lang/Void;>;Ljava/util/concurrent/Callable<Ljava/lang/Void;>;
SourceFile: "AbstractScheduledService.java"
NestHost: com.google.common.util.concurrent.AbstractScheduledService
InnerClasses:
public abstract CustomScheduler = com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler of com.google.common.util.concurrent.AbstractScheduledService
private ReschedulableCallable = com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$ReschedulableCallable of com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler
protected final Schedule = com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler$Schedule of com.google.common.util.concurrent.AbstractScheduledService$CustomScheduler