public abstract class com.google.common.util.concurrent.AbstractService implements com.google.common.util.concurrent.Service
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.google.common.util.concurrent.AbstractService
super_class: java.lang.Object
{
private static final com.google.common.util.concurrent.ListenerCallQueue$Event<com.google.common.util.concurrent.Service$Listener> STARTING_EVENT;
descriptor: Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lcom/google/common/util/concurrent/ListenerCallQueue$Event<Lcom/google/common/util/concurrent/Service$Listener;>;
private static final com.google.common.util.concurrent.ListenerCallQueue$Event<com.google.common.util.concurrent.Service$Listener> RUNNING_EVENT;
descriptor: Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lcom/google/common/util/concurrent/ListenerCallQueue$Event<Lcom/google/common/util/concurrent/Service$Listener;>;
private static final com.google.common.util.concurrent.ListenerCallQueue$Event<com.google.common.util.concurrent.Service$Listener> STOPPING_FROM_STARTING_EVENT;
descriptor: Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lcom/google/common/util/concurrent/ListenerCallQueue$Event<Lcom/google/common/util/concurrent/Service$Listener;>;
private static final com.google.common.util.concurrent.ListenerCallQueue$Event<com.google.common.util.concurrent.Service$Listener> STOPPING_FROM_RUNNING_EVENT;
descriptor: Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lcom/google/common/util/concurrent/ListenerCallQueue$Event<Lcom/google/common/util/concurrent/Service$Listener;>;
private static final com.google.common.util.concurrent.ListenerCallQueue$Event<com.google.common.util.concurrent.Service$Listener> TERMINATED_FROM_NEW_EVENT;
descriptor: Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lcom/google/common/util/concurrent/ListenerCallQueue$Event<Lcom/google/common/util/concurrent/Service$Listener;>;
private static final com.google.common.util.concurrent.ListenerCallQueue$Event<com.google.common.util.concurrent.Service$Listener> TERMINATED_FROM_RUNNING_EVENT;
descriptor: Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lcom/google/common/util/concurrent/ListenerCallQueue$Event<Lcom/google/common/util/concurrent/Service$Listener;>;
private static final com.google.common.util.concurrent.ListenerCallQueue$Event<com.google.common.util.concurrent.Service$Listener> TERMINATED_FROM_STOPPING_EVENT;
descriptor: Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lcom/google/common/util/concurrent/ListenerCallQueue$Event<Lcom/google/common/util/concurrent/Service$Listener;>;
private final com.google.common.util.concurrent.Monitor monitor;
descriptor: Lcom/google/common/util/concurrent/Monitor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.google.common.util.concurrent.Monitor$Guard isStartable;
descriptor: Lcom/google/common/util/concurrent/Monitor$Guard;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.google.common.util.concurrent.Monitor$Guard isStoppable;
descriptor: Lcom/google/common/util/concurrent/Monitor$Guard;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.google.common.util.concurrent.Monitor$Guard hasReachedRunning;
descriptor: Lcom/google/common/util/concurrent/Monitor$Guard;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.google.common.util.concurrent.Monitor$Guard isStopped;
descriptor: Lcom/google/common/util/concurrent/Monitor$Guard;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.google.common.util.concurrent.ListenerCallQueue<com.google.common.util.concurrent.Service$Listener> listeners;
descriptor: Lcom/google/common/util/concurrent/ListenerCallQueue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/google/common/util/concurrent/ListenerCallQueue<Lcom/google/common/util/concurrent/Service$Listener;>;
private volatile com.google.common.util.concurrent.AbstractService$StateSnapshot snapshot;
descriptor: Lcom/google/common/util/concurrent/AbstractService$StateSnapshot;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static volatile int[] $SWITCH_TABLE$com$google$common$util$concurrent$Service$State;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new com.google.common.util.concurrent.AbstractService$1
dup
invokespecial com.google.common.util.concurrent.AbstractService$1.<init>:()V
1: putstatic com.google.common.util.concurrent.AbstractService.STARTING_EVENT:Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
2: new com.google.common.util.concurrent.AbstractService$2
dup
invokespecial com.google.common.util.concurrent.AbstractService$2.<init>:()V
3: putstatic com.google.common.util.concurrent.AbstractService.RUNNING_EVENT:Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
4: getstatic com.google.common.util.concurrent.Service$State.STARTING:Lcom/google/common/util/concurrent/Service$State;
invokestatic com.google.common.util.concurrent.AbstractService.stoppingEvent:(Lcom/google/common/util/concurrent/Service$State;)Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
5: putstatic com.google.common.util.concurrent.AbstractService.STOPPING_FROM_STARTING_EVENT:Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
6: getstatic com.google.common.util.concurrent.Service$State.RUNNING:Lcom/google/common/util/concurrent/Service$State;
invokestatic com.google.common.util.concurrent.AbstractService.stoppingEvent:(Lcom/google/common/util/concurrent/Service$State;)Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
7: putstatic com.google.common.util.concurrent.AbstractService.STOPPING_FROM_RUNNING_EVENT:Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
8: getstatic com.google.common.util.concurrent.Service$State.NEW:Lcom/google/common/util/concurrent/Service$State;
invokestatic com.google.common.util.concurrent.AbstractService.terminatedEvent:(Lcom/google/common/util/concurrent/Service$State;)Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
9: putstatic com.google.common.util.concurrent.AbstractService.TERMINATED_FROM_NEW_EVENT:Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
10: getstatic com.google.common.util.concurrent.Service$State.RUNNING:Lcom/google/common/util/concurrent/Service$State;
invokestatic com.google.common.util.concurrent.AbstractService.terminatedEvent:(Lcom/google/common/util/concurrent/Service$State;)Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
11: putstatic com.google.common.util.concurrent.AbstractService.TERMINATED_FROM_RUNNING_EVENT:Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
12: getstatic com.google.common.util.concurrent.Service$State.STOPPING:Lcom/google/common/util/concurrent/Service$State;
invokestatic com.google.common.util.concurrent.AbstractService.terminatedEvent:(Lcom/google/common/util/concurrent/Service$State;)Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
13: putstatic com.google.common.util.concurrent.AbstractService.TERMINATED_FROM_STOPPING_EVENT:Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
14: return
LocalVariableTable:
Start End Slot Name Signature
private static com.google.common.util.concurrent.ListenerCallQueue$Event<com.google.common.util.concurrent.Service$Listener> terminatedEvent(com.google.common.util.concurrent.Service$State);
descriptor: (Lcom/google/common/util/concurrent/Service$State;)Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.google.common.util.concurrent.AbstractService$3
dup
aload 0
invokespecial com.google.common.util.concurrent.AbstractService$3.<init>:(Lcom/google/common/util/concurrent/Service$State;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 from Lcom/google/common/util/concurrent/Service$State;
Signature: (Lcom/google/common/util/concurrent/Service$State;)Lcom/google/common/util/concurrent/ListenerCallQueue$Event<Lcom/google/common/util/concurrent/Service$Listener;>;
MethodParameters:
Name Flags
from final
private static com.google.common.util.concurrent.ListenerCallQueue$Event<com.google.common.util.concurrent.Service$Listener> stoppingEvent(com.google.common.util.concurrent.Service$State);
descriptor: (Lcom/google/common/util/concurrent/Service$State;)Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.google.common.util.concurrent.AbstractService$4
dup
aload 0
invokespecial com.google.common.util.concurrent.AbstractService$4.<init>:(Lcom/google/common/util/concurrent/Service$State;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 from Lcom/google/common/util/concurrent/Service$State;
Signature: (Lcom/google/common/util/concurrent/Service$State;)Lcom/google/common/util/concurrent/ListenerCallQueue$Event<Lcom/google/common/util/concurrent/Service$Listener;>;
MethodParameters:
Name Flags
from final
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new com.google.common.util.concurrent.Monitor
dup
invokespecial com.google.common.util.concurrent.Monitor.<init>:()V
putfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
2: aload 0
new com.google.common.util.concurrent.AbstractService$IsStartableGuard
dup
aload 0
invokespecial com.google.common.util.concurrent.AbstractService$IsStartableGuard.<init>:(Lcom/google/common/util/concurrent/AbstractService;)V
putfield com.google.common.util.concurrent.AbstractService.isStartable:Lcom/google/common/util/concurrent/Monitor$Guard;
3: aload 0
new com.google.common.util.concurrent.AbstractService$IsStoppableGuard
dup
aload 0
invokespecial com.google.common.util.concurrent.AbstractService$IsStoppableGuard.<init>:(Lcom/google/common/util/concurrent/AbstractService;)V
putfield com.google.common.util.concurrent.AbstractService.isStoppable:Lcom/google/common/util/concurrent/Monitor$Guard;
4: aload 0
new com.google.common.util.concurrent.AbstractService$HasReachedRunningGuard
dup
aload 0
invokespecial com.google.common.util.concurrent.AbstractService$HasReachedRunningGuard.<init>:(Lcom/google/common/util/concurrent/AbstractService;)V
putfield com.google.common.util.concurrent.AbstractService.hasReachedRunning:Lcom/google/common/util/concurrent/Monitor$Guard;
5: aload 0
new com.google.common.util.concurrent.AbstractService$IsStoppedGuard
dup
aload 0
invokespecial com.google.common.util.concurrent.AbstractService$IsStoppedGuard.<init>:(Lcom/google/common/util/concurrent/AbstractService;)V
putfield com.google.common.util.concurrent.AbstractService.isStopped:Lcom/google/common/util/concurrent/Monitor$Guard;
6: aload 0
new com.google.common.util.concurrent.ListenerCallQueue
dup
invokespecial com.google.common.util.concurrent.ListenerCallQueue.<init>:()V
putfield com.google.common.util.concurrent.AbstractService.listeners:Lcom/google/common/util/concurrent/ListenerCallQueue;
7: aload 0
new com.google.common.util.concurrent.AbstractService$StateSnapshot
dup
getstatic com.google.common.util.concurrent.Service$State.NEW:Lcom/google/common/util/concurrent/Service$State;
invokespecial com.google.common.util.concurrent.AbstractService$StateSnapshot.<init>:(Lcom/google/common/util/concurrent/Service$State;)V
putfield com.google.common.util.concurrent.AbstractService.snapshot:Lcom/google/common/util/concurrent/AbstractService$StateSnapshot;
8: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/common/util/concurrent/AbstractService;
protected abstract void doStart();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.ForOverride()
protected abstract void doStop();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.ForOverride()
public final com.google.common.util.concurrent.Service startAsync();
descriptor: ()Lcom/google/common/util/concurrent/Service;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
getfield com.google.common.util.concurrent.AbstractService.isStartable:Lcom/google/common/util/concurrent/Monitor$Guard;
invokevirtual com.google.common.util.concurrent.Monitor.enterIf:(Lcom/google/common/util/concurrent/Monitor$Guard;)Z
ifeq 16
1: aload 0
new com.google.common.util.concurrent.AbstractService$StateSnapshot
dup
getstatic com.google.common.util.concurrent.Service$State.STARTING:Lcom/google/common/util/concurrent/Service$State;
invokespecial com.google.common.util.concurrent.AbstractService$StateSnapshot.<init>:(Lcom/google/common/util/concurrent/Service$State;)V
putfield com.google.common.util.concurrent.AbstractService.snapshot:Lcom/google/common/util/concurrent/AbstractService$StateSnapshot;
2: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.enqueueStartingEvent:()V
3: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.doStart:()V
4: goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 1
start local 1 6: aload 0
aload 1
invokevirtual com.google.common.util.concurrent.AbstractService.notifyFailed:(Ljava/lang/Throwable;)V
end local 1 7: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
8: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.dispatchListenerEvents:()V
goto 17
9: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
10: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
11: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.dispatchListenerEvents:()V
12: aload 2
athrow
13: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
14: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.dispatchListenerEvents:()V
15: goto 17
16: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Service "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " has already been started"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/google/common/util/concurrent/AbstractService;
6 7 1 startupFailure Ljava/lang/Throwable;
Exception table:
from to target type
1 4 5 Class java.lang.Throwable
1 7 9 any
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
public final com.google.common.util.concurrent.Service stopAsync();
descriptor: ()Lcom/google/common/util/concurrent/Service;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=6, locals=3, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
getfield com.google.common.util.concurrent.AbstractService.isStoppable:Lcom/google/common/util/concurrent/Monitor$Guard;
invokevirtual com.google.common.util.concurrent.Monitor.enterIf:(Lcom/google/common/util/concurrent/Monitor$Guard;)Z
ifeq 25
1: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.state:()Lcom/google/common/util/concurrent/Service$State;
astore 1
start local 1 2: invokestatic com.google.common.util.concurrent.AbstractService.$SWITCH_TABLE$com$google$common$util$concurrent$Service$State:()[I
aload 1
invokevirtual com.google.common.util.concurrent.Service$State.ordinal:()I
iaload
tableswitch { // 1 - 6
1: 3
2: 6
3: 9
4: 13
5: 13
6: 13
default: 14
}
3: StackMap locals: com.google.common.util.concurrent.Service$State
StackMap stack:
aload 0
new com.google.common.util.concurrent.AbstractService$StateSnapshot
dup
getstatic com.google.common.util.concurrent.Service$State.TERMINATED:Lcom/google/common/util/concurrent/Service$State;
invokespecial com.google.common.util.concurrent.AbstractService$StateSnapshot.<init>:(Lcom/google/common/util/concurrent/Service$State;)V
putfield com.google.common.util.concurrent.AbstractService.snapshot:Lcom/google/common/util/concurrent/AbstractService$StateSnapshot;
4: aload 0
getstatic com.google.common.util.concurrent.Service$State.NEW:Lcom/google/common/util/concurrent/Service$State;
invokevirtual com.google.common.util.concurrent.AbstractService.enqueueTerminatedEvent:(Lcom/google/common/util/concurrent/Service$State;)V
5: goto 23
6: StackMap locals:
StackMap stack:
aload 0
new com.google.common.util.concurrent.AbstractService$StateSnapshot
dup
getstatic com.google.common.util.concurrent.Service$State.STARTING:Lcom/google/common/util/concurrent/Service$State;
iconst_1
aconst_null
invokespecial com.google.common.util.concurrent.AbstractService$StateSnapshot.<init>:(Lcom/google/common/util/concurrent/Service$State;ZLjava/lang/Throwable;)V
putfield com.google.common.util.concurrent.AbstractService.snapshot:Lcom/google/common/util/concurrent/AbstractService$StateSnapshot;
7: aload 0
getstatic com.google.common.util.concurrent.Service$State.STARTING:Lcom/google/common/util/concurrent/Service$State;
invokevirtual com.google.common.util.concurrent.AbstractService.enqueueStoppingEvent:(Lcom/google/common/util/concurrent/Service$State;)V
8: goto 23
9: StackMap locals:
StackMap stack:
aload 0
new com.google.common.util.concurrent.AbstractService$StateSnapshot
dup
getstatic com.google.common.util.concurrent.Service$State.STOPPING:Lcom/google/common/util/concurrent/Service$State;
invokespecial com.google.common.util.concurrent.AbstractService$StateSnapshot.<init>:(Lcom/google/common/util/concurrent/Service$State;)V
putfield com.google.common.util.concurrent.AbstractService.snapshot:Lcom/google/common/util/concurrent/AbstractService$StateSnapshot;
10: aload 0
getstatic com.google.common.util.concurrent.Service$State.RUNNING:Lcom/google/common/util/concurrent/Service$State;
invokevirtual com.google.common.util.concurrent.AbstractService.enqueueStoppingEvent:(Lcom/google/common/util/concurrent/Service$State;)V
11: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.doStop:()V
12: goto 23
13: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "isStoppable is incorrectly implemented, saw: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
14: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unexpected state: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 1 15: StackMap locals: com.google.common.util.concurrent.AbstractService
StackMap stack: java.lang.Throwable
astore 1
start local 1 16: aload 0
aload 1
invokevirtual com.google.common.util.concurrent.AbstractService.notifyFailed:(Ljava/lang/Throwable;)V
end local 1 17: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
18: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.dispatchListenerEvents:()V
goto 25
19: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
20: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
21: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.dispatchListenerEvents:()V
22: aload 2
athrow
23: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
24: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.dispatchListenerEvents:()V
25: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lcom/google/common/util/concurrent/AbstractService;
2 15 1 previous Lcom/google/common/util/concurrent/Service$State;
16 17 1 shutdownFailure Ljava/lang/Throwable;
Exception table:
from to target type
1 15 15 Class java.lang.Throwable
1 17 19 any
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
public final void awaitRunning();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
getfield com.google.common.util.concurrent.AbstractService.hasReachedRunning:Lcom/google/common/util/concurrent/Monitor$Guard;
invokevirtual com.google.common.util.concurrent.Monitor.enterWhenUninterruptibly:(Lcom/google/common/util/concurrent/Monitor$Guard;)V
1: aload 0
getstatic com.google.common.util.concurrent.Service$State.RUNNING:Lcom/google/common/util/concurrent/Service$State;
invokevirtual com.google.common.util.concurrent.AbstractService.checkCurrentState:(Lcom/google/common/util/concurrent/Service$State;)V
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 1
4: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
5: aload 1
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/google/common/util/concurrent/AbstractService;
Exception table:
from to target type
1 3 3 any
public final void awaitRunning(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
getfield com.google.common.util.concurrent.AbstractService.hasReachedRunning:Lcom/google/common/util/concurrent/Monitor$Guard;
lload 1
aload 3
invokevirtual com.google.common.util.concurrent.Monitor.enterWhenUninterruptibly:(Lcom/google/common/util/concurrent/Monitor$Guard;JLjava/util/concurrent/TimeUnit;)Z
ifeq 8
1: aload 0
getstatic com.google.common.util.concurrent.Service$State.RUNNING:Lcom/google/common/util/concurrent/Service$State;
invokevirtual com.google.common.util.concurrent.AbstractService.checkCurrentState:(Lcom/google/common/util/concurrent/Service$State;)V
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 4
4: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
5: aload 4
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
7: goto 9
8: StackMap locals:
StackMap stack:
new java.util.concurrent.TimeoutException
dup
new java.lang.StringBuilder
dup
ldc "Timed out waiting for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " to reach the RUNNING state."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.util.concurrent.TimeoutException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/google/common/util/concurrent/AbstractService;
0 10 1 timeout J
0 10 3 unit Ljava/util/concurrent/TimeUnit;
Exception table:
from to target type
1 3 3 any
Exceptions:
throws java.util.concurrent.TimeoutException
MethodParameters:
Name Flags
timeout
unit
public final void awaitTerminated();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
getfield com.google.common.util.concurrent.AbstractService.isStopped:Lcom/google/common/util/concurrent/Monitor$Guard;
invokevirtual com.google.common.util.concurrent.Monitor.enterWhenUninterruptibly:(Lcom/google/common/util/concurrent/Monitor$Guard;)V
1: aload 0
getstatic com.google.common.util.concurrent.Service$State.TERMINATED:Lcom/google/common/util/concurrent/Service$State;
invokevirtual com.google.common.util.concurrent.AbstractService.checkCurrentState:(Lcom/google/common/util/concurrent/Service$State;)V
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 1
4: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
5: aload 1
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/google/common/util/concurrent/AbstractService;
Exception table:
from to target type
1 3 3 any
public final void awaitTerminated(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
getfield com.google.common.util.concurrent.AbstractService.isStopped:Lcom/google/common/util/concurrent/Monitor$Guard;
lload 1
aload 3
invokevirtual com.google.common.util.concurrent.Monitor.enterWhenUninterruptibly:(Lcom/google/common/util/concurrent/Monitor$Guard;JLjava/util/concurrent/TimeUnit;)Z
ifeq 8
1: aload 0
getstatic com.google.common.util.concurrent.Service$State.TERMINATED:Lcom/google/common/util/concurrent/Service$State;
invokevirtual com.google.common.util.concurrent.AbstractService.checkCurrentState:(Lcom/google/common/util/concurrent/Service$State;)V
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 4
4: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
5: aload 4
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
7: goto 16
8: StackMap locals:
StackMap stack:
new java.util.concurrent.TimeoutException
dup
9: new java.lang.StringBuilder
dup
ldc "Timed out waiting for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
10: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
11: ldc " to reach a terminal state. "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: ldc "Current state: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
13: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.state:()Lcom/google/common/util/concurrent/Service$State;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
14: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
15: invokespecial java.util.concurrent.TimeoutException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals:
StackMap stack:
return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/google/common/util/concurrent/AbstractService;
0 17 1 timeout J
0 17 3 unit Ljava/util/concurrent/TimeUnit;
Exception table:
from to target type
1 3 3 any
Exceptions:
throws java.util.concurrent.TimeoutException
MethodParameters:
Name Flags
timeout
unit
private void checkCurrentState(com.google.common.util.concurrent.Service$State);
descriptor: (Lcom/google/common/util/concurrent/Service$State;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.state:()Lcom/google/common/util/concurrent/Service$State;
astore 2
start local 2 1: aload 2
aload 1
if_acmpeq 10
2: aload 2
getstatic com.google.common.util.concurrent.Service$State.FAILED:Lcom/google/common/util/concurrent/Service$State;
if_acmpne 7
3: new java.lang.IllegalStateException
dup
4: new java.lang.StringBuilder
dup
ldc "Expected the service "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " to be "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ", but the service has FAILED"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.failureCause:()Ljava/lang/Throwable;
6: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
7: StackMap locals: com.google.common.util.concurrent.Service$State
StackMap stack:
new java.lang.IllegalStateException
dup
8: new java.lang.StringBuilder
dup
ldc "Expected the service "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " to be "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ", but was "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/google/common/util/concurrent/AbstractService;
0 11 1 expected Lcom/google/common/util/concurrent/Service$State;
1 11 2 actual Lcom/google/common/util/concurrent/Service$State;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "monitor")
MethodParameters:
Name Flags
expected
protected final void notifyStarted();
descriptor: ()V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.enter:()V
1: aload 0
getfield com.google.common.util.concurrent.AbstractService.snapshot:Lcom/google/common/util/concurrent/AbstractService$StateSnapshot;
getfield com.google.common.util.concurrent.AbstractService$StateSnapshot.state:Lcom/google/common/util/concurrent/Service$State;
getstatic com.google.common.util.concurrent.Service$State.STARTING:Lcom/google/common/util/concurrent/Service$State;
if_acmpeq 8
2: new java.lang.IllegalStateException
dup
3: new java.lang.StringBuilder
dup
ldc "Cannot notifyStarted() when the service is "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.google.common.util.concurrent.AbstractService.snapshot:Lcom/google/common/util/concurrent/AbstractService$StateSnapshot;
getfield com.google.common.util.concurrent.AbstractService$StateSnapshot.state:Lcom/google/common/util/concurrent/Service$State;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
5: astore 1
start local 1 6: aload 0
aload 1
invokevirtual com.google.common.util.concurrent.AbstractService.notifyFailed:(Ljava/lang/Throwable;)V
7: aload 1
athrow
end local 1 8: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractService.snapshot:Lcom/google/common/util/concurrent/AbstractService$StateSnapshot;
getfield com.google.common.util.concurrent.AbstractService$StateSnapshot.shutdownWhenStartupFinishes:Z
ifeq 12
9: aload 0
new com.google.common.util.concurrent.AbstractService$StateSnapshot
dup
getstatic com.google.common.util.concurrent.Service$State.STOPPING:Lcom/google/common/util/concurrent/Service$State;
invokespecial com.google.common.util.concurrent.AbstractService$StateSnapshot.<init>:(Lcom/google/common/util/concurrent/Service$State;)V
putfield com.google.common.util.concurrent.AbstractService.snapshot:Lcom/google/common/util/concurrent/AbstractService$StateSnapshot;
10: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.doStop:()V
11: goto 19
12: StackMap locals:
StackMap stack:
aload 0
new com.google.common.util.concurrent.AbstractService$StateSnapshot
dup
getstatic com.google.common.util.concurrent.Service$State.RUNNING:Lcom/google/common/util/concurrent/Service$State;
invokespecial com.google.common.util.concurrent.AbstractService$StateSnapshot.<init>:(Lcom/google/common/util/concurrent/Service$State;)V
putfield com.google.common.util.concurrent.AbstractService.snapshot:Lcom/google/common/util/concurrent/AbstractService$StateSnapshot;
13: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.enqueueRunningEvent:()V
14: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
15: astore 2
16: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
17: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.dispatchListenerEvents:()V
18: aload 2
athrow
19: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
20: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.dispatchListenerEvents:()V
21: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/google/common/util/concurrent/AbstractService;
6 8 1 failure Ljava/lang/IllegalStateException;
Exception table:
from to target type
1 15 15 any
protected final void notifyStopped();
descriptor: ()V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.enter:()V
1: aload 0
getfield com.google.common.util.concurrent.AbstractService.snapshot:Lcom/google/common/util/concurrent/AbstractService$StateSnapshot;
getfield com.google.common.util.concurrent.AbstractService$StateSnapshot.state:Lcom/google/common/util/concurrent/Service$State;
astore 1
start local 1 2: aload 1
getstatic com.google.common.util.concurrent.Service$State.STOPPING:Lcom/google/common/util/concurrent/Service$State;
if_acmpeq 7
aload 1
getstatic com.google.common.util.concurrent.Service$State.RUNNING:Lcom/google/common/util/concurrent/Service$State;
if_acmpeq 7
3: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Cannot notifyStopped() when the service is "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
4: astore 2
start local 2 5: aload 0
aload 2
invokevirtual com.google.common.util.concurrent.AbstractService.notifyFailed:(Ljava/lang/Throwable;)V
6: aload 2
athrow
end local 2 7: StackMap locals: com.google.common.util.concurrent.Service$State
StackMap stack:
aload 0
new com.google.common.util.concurrent.AbstractService$StateSnapshot
dup
getstatic com.google.common.util.concurrent.Service$State.TERMINATED:Lcom/google/common/util/concurrent/Service$State;
invokespecial com.google.common.util.concurrent.AbstractService$StateSnapshot.<init>:(Lcom/google/common/util/concurrent/Service$State;)V
putfield com.google.common.util.concurrent.AbstractService.snapshot:Lcom/google/common/util/concurrent/AbstractService$StateSnapshot;
8: aload 0
aload 1
invokevirtual com.google.common.util.concurrent.AbstractService.enqueueTerminatedEvent:(Lcom/google/common/util/concurrent/Service$State;)V
end local 1 9: goto 14
StackMap locals: com.google.common.util.concurrent.AbstractService
StackMap stack: java.lang.Throwable
10: astore 3
11: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
12: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.dispatchListenerEvents:()V
13: aload 3
athrow
14: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
15: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.dispatchListenerEvents:()V
16: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/google/common/util/concurrent/AbstractService;
2 9 1 previous Lcom/google/common/util/concurrent/Service$State;
5 7 2 failure Ljava/lang/IllegalStateException;
Exception table:
from to target type
1 10 10 any
protected final void notifyFailed(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.enter:()V
2: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.state:()Lcom/google/common/util/concurrent/Service$State;
astore 2
start local 2 3: invokestatic com.google.common.util.concurrent.AbstractService.$SWITCH_TABLE$com$google$common$util$concurrent$Service$State:()[I
aload 2
invokevirtual com.google.common.util.concurrent.Service$State.ordinal:()I
iaload
tableswitch { // 1 - 6
1: 4
2: 5
3: 5
4: 5
5: 4
6: 8
default: 9
}
4: StackMap locals: com.google.common.util.concurrent.Service$State
StackMap stack:
new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Failed while in state:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 1
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
new com.google.common.util.concurrent.AbstractService$StateSnapshot
dup
getstatic com.google.common.util.concurrent.Service$State.FAILED:Lcom/google/common/util/concurrent/Service$State;
iconst_0
aload 1
invokespecial com.google.common.util.concurrent.AbstractService$StateSnapshot.<init>:(Lcom/google/common/util/concurrent/Service$State;ZLjava/lang/Throwable;)V
putfield com.google.common.util.concurrent.AbstractService.snapshot:Lcom/google/common/util/concurrent/AbstractService$StateSnapshot;
6: aload 0
aload 2
aload 1
invokevirtual com.google.common.util.concurrent.AbstractService.enqueueFailedEvent:(Lcom/google/common/util/concurrent/Service$State;Ljava/lang/Throwable;)V
7: goto 14
8: StackMap locals:
StackMap stack:
goto 14
9: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unexpected state: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 2 10: StackMap locals: com.google.common.util.concurrent.AbstractService java.lang.Throwable
StackMap stack: java.lang.Throwable
astore 3
11: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
12: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.dispatchListenerEvents:()V
13: aload 3
athrow
14: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
15: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.dispatchListenerEvents:()V
16: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/google/common/util/concurrent/AbstractService;
0 17 1 cause Ljava/lang/Throwable;
3 10 2 previous Lcom/google/common/util/concurrent/Service$State;
Exception table:
from to target type
2 10 10 any
MethodParameters:
Name Flags
cause
public final boolean isRunning();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.state:()Lcom/google/common/util/concurrent/Service$State;
getstatic com.google.common.util.concurrent.Service$State.RUNNING:Lcom/google/common/util/concurrent/Service$State;
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/util/concurrent/AbstractService;
public final com.google.common.util.concurrent.Service$State state();
descriptor: ()Lcom/google/common/util/concurrent/Service$State;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.AbstractService.snapshot:Lcom/google/common/util/concurrent/AbstractService$StateSnapshot;
invokevirtual com.google.common.util.concurrent.AbstractService$StateSnapshot.externalState:()Lcom/google/common/util/concurrent/Service$State;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/AbstractService;
public final java.lang.Throwable failureCause();
descriptor: ()Ljava/lang/Throwable;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.AbstractService.snapshot:Lcom/google/common/util/concurrent/AbstractService$StateSnapshot;
invokevirtual com.google.common.util.concurrent.AbstractService$StateSnapshot.failureCause:()Ljava/lang/Throwable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/AbstractService;
public final void addListener(com.google.common.util.concurrent.Service$Listener, java.util.concurrent.Executor);
descriptor: (Lcom/google/common/util/concurrent/Service$Listener;Ljava/util/concurrent/Executor;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.google.common.util.concurrent.AbstractService.listeners:Lcom/google/common/util/concurrent/ListenerCallQueue;
aload 1
aload 2
invokevirtual com.google.common.util.concurrent.ListenerCallQueue.addListener:(Ljava/lang/Object;Ljava/util/concurrent/Executor;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/util/concurrent/AbstractService;
0 2 1 listener Lcom/google/common/util/concurrent/Service$Listener;
0 2 2 executor Ljava/util/concurrent/Executor;
MethodParameters:
Name Flags
listener
executor
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual com.google.common.util.concurrent.AbstractService.state:()Lcom/google/common/util/concurrent/Service$State;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/AbstractService;
private void dispatchListenerEvents();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.AbstractService.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.isOccupiedByCurrentThread:()Z
ifne 2
1: aload 0
getfield com.google.common.util.concurrent.AbstractService.listeners:Lcom/google/common/util/concurrent/ListenerCallQueue;
invokevirtual com.google.common.util.concurrent.ListenerCallQueue.dispatch:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/util/concurrent/AbstractService;
private void enqueueStartingEvent();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.AbstractService.listeners:Lcom/google/common/util/concurrent/ListenerCallQueue;
getstatic com.google.common.util.concurrent.AbstractService.STARTING_EVENT:Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
invokevirtual com.google.common.util.concurrent.ListenerCallQueue.enqueue:(Lcom/google/common/util/concurrent/ListenerCallQueue$Event;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/util/concurrent/AbstractService;
private void enqueueRunningEvent();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.AbstractService.listeners:Lcom/google/common/util/concurrent/ListenerCallQueue;
getstatic com.google.common.util.concurrent.AbstractService.RUNNING_EVENT:Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
invokevirtual com.google.common.util.concurrent.ListenerCallQueue.enqueue:(Lcom/google/common/util/concurrent/ListenerCallQueue$Event;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/util/concurrent/AbstractService;
private void enqueueStoppingEvent(com.google.common.util.concurrent.Service$State);
descriptor: (Lcom/google/common/util/concurrent/Service$State;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getstatic com.google.common.util.concurrent.Service$State.STARTING:Lcom/google/common/util/concurrent/Service$State;
if_acmpne 3
1: aload 0
getfield com.google.common.util.concurrent.AbstractService.listeners:Lcom/google/common/util/concurrent/ListenerCallQueue;
getstatic com.google.common.util.concurrent.AbstractService.STOPPING_FROM_STARTING_EVENT:Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
invokevirtual com.google.common.util.concurrent.ListenerCallQueue.enqueue:(Lcom/google/common/util/concurrent/ListenerCallQueue$Event;)V
2: goto 7
StackMap locals:
StackMap stack:
3: aload 1
getstatic com.google.common.util.concurrent.Service$State.RUNNING:Lcom/google/common/util/concurrent/Service$State;
if_acmpne 6
4: aload 0
getfield com.google.common.util.concurrent.AbstractService.listeners:Lcom/google/common/util/concurrent/ListenerCallQueue;
getstatic com.google.common.util.concurrent.AbstractService.STOPPING_FROM_RUNNING_EVENT:Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
invokevirtual com.google.common.util.concurrent.ListenerCallQueue.enqueue:(Lcom/google/common/util/concurrent/ListenerCallQueue$Event;)V
5: goto 7
6: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/google/common/util/concurrent/AbstractService;
0 8 1 from Lcom/google/common/util/concurrent/Service$State;
MethodParameters:
Name Flags
from final
private void enqueueTerminatedEvent(com.google.common.util.concurrent.Service$State);
descriptor: (Lcom/google/common/util/concurrent/Service$State;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: invokestatic com.google.common.util.concurrent.AbstractService.$SWITCH_TABLE$com$google$common$util$concurrent$Service$State:()[I
aload 1
invokevirtual com.google.common.util.concurrent.Service$State.ordinal:()I
iaload
tableswitch { // 1 - 6
1: 1
2: 7
3: 3
4: 5
5: 7
6: 7
default: 7
}
1: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractService.listeners:Lcom/google/common/util/concurrent/ListenerCallQueue;
getstatic com.google.common.util.concurrent.AbstractService.TERMINATED_FROM_NEW_EVENT:Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
invokevirtual com.google.common.util.concurrent.ListenerCallQueue.enqueue:(Lcom/google/common/util/concurrent/ListenerCallQueue$Event;)V
2: goto 8
3: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractService.listeners:Lcom/google/common/util/concurrent/ListenerCallQueue;
getstatic com.google.common.util.concurrent.AbstractService.TERMINATED_FROM_RUNNING_EVENT:Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
invokevirtual com.google.common.util.concurrent.ListenerCallQueue.enqueue:(Lcom/google/common/util/concurrent/ListenerCallQueue$Event;)V
4: goto 8
5: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.AbstractService.listeners:Lcom/google/common/util/concurrent/ListenerCallQueue;
getstatic com.google.common.util.concurrent.AbstractService.TERMINATED_FROM_STOPPING_EVENT:Lcom/google/common/util/concurrent/ListenerCallQueue$Event;
invokevirtual com.google.common.util.concurrent.ListenerCallQueue.enqueue:(Lcom/google/common/util/concurrent/ListenerCallQueue$Event;)V
6: goto 8
7: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/common/util/concurrent/AbstractService;
0 9 1 from Lcom/google/common/util/concurrent/Service$State;
MethodParameters:
Name Flags
from final
private void enqueueFailedEvent(com.google.common.util.concurrent.Service$State, java.lang.Throwable);
descriptor: (Lcom/google/common/util/concurrent/Service$State;Ljava/lang/Throwable;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.google.common.util.concurrent.AbstractService.listeners:Lcom/google/common/util/concurrent/ListenerCallQueue;
1: new com.google.common.util.concurrent.AbstractService$5
dup
aload 0
aload 1
aload 2
invokespecial com.google.common.util.concurrent.AbstractService$5.<init>:(Lcom/google/common/util/concurrent/AbstractService;Lcom/google/common/util/concurrent/Service$State;Ljava/lang/Throwable;)V
2: invokevirtual com.google.common.util.concurrent.ListenerCallQueue.enqueue:(Lcom/google/common/util/concurrent/ListenerCallQueue$Event;)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/common/util/concurrent/AbstractService;
0 4 1 from Lcom/google/common/util/concurrent/Service$State;
0 4 2 cause Ljava/lang/Throwable;
MethodParameters:
Name Flags
from final
cause final
static int[] $SWITCH_TABLE$com$google$common$util$concurrent$Service$State();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.google.common.util.concurrent.AbstractService.$SWITCH_TABLE$com$google$common$util$concurrent$Service$State:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic com.google.common.util.concurrent.Service$State.values:()[Lcom/google/common/util/concurrent/Service$State;
arraylength
newarray 10
astore 0
2: aload 0
getstatic com.google.common.util.concurrent.Service$State.FAILED:Lcom/google/common/util/concurrent/Service$State;
invokevirtual com.google.common.util.concurrent.Service$State.ordinal:()I
bipush 6
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic com.google.common.util.concurrent.Service$State.NEW:Lcom/google/common/util/concurrent/Service$State;
invokevirtual com.google.common.util.concurrent.Service$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 com.google.common.util.concurrent.Service$State.RUNNING:Lcom/google/common/util/concurrent/Service$State;
invokevirtual com.google.common.util.concurrent.Service$State.ordinal:()I
iconst_3
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic com.google.common.util.concurrent.Service$State.STARTING:Lcom/google/common/util/concurrent/Service$State;
invokevirtual com.google.common.util.concurrent.Service$State.ordinal:()I
iconst_2
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic com.google.common.util.concurrent.Service$State.STOPPING:Lcom/google/common/util/concurrent/Service$State;
invokevirtual com.google.common.util.concurrent.Service$State.ordinal:()I
iconst_4
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic com.google.common.util.concurrent.Service$State.TERMINATED:Lcom/google/common/util/concurrent/Service$State;
invokevirtual com.google.common.util.concurrent.Service$State.ordinal:()I
iconst_5
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
dup
putstatic com.google.common.util.concurrent.AbstractService.$SWITCH_TABLE$com$google$common$util$concurrent$Service$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: "AbstractService.java"
NestMembers:
com.google.common.util.concurrent.AbstractService$1 com.google.common.util.concurrent.AbstractService$2 com.google.common.util.concurrent.AbstractService$3 com.google.common.util.concurrent.AbstractService$4 com.google.common.util.concurrent.AbstractService$5 com.google.common.util.concurrent.AbstractService$HasReachedRunningGuard com.google.common.util.concurrent.AbstractService$IsStartableGuard com.google.common.util.concurrent.AbstractService$IsStoppableGuard com.google.common.util.concurrent.AbstractService$IsStoppedGuard com.google.common.util.concurrent.AbstractService$StateSnapshot
InnerClasses:
com.google.common.util.concurrent.AbstractService$1
com.google.common.util.concurrent.AbstractService$2
com.google.common.util.concurrent.AbstractService$3
com.google.common.util.concurrent.AbstractService$4
com.google.common.util.concurrent.AbstractService$5
private final HasReachedRunningGuard = com.google.common.util.concurrent.AbstractService$HasReachedRunningGuard of com.google.common.util.concurrent.AbstractService
private final IsStartableGuard = com.google.common.util.concurrent.AbstractService$IsStartableGuard of com.google.common.util.concurrent.AbstractService
private final IsStoppableGuard = com.google.common.util.concurrent.AbstractService$IsStoppableGuard of com.google.common.util.concurrent.AbstractService
private final IsStoppedGuard = com.google.common.util.concurrent.AbstractService$IsStoppedGuard of com.google.common.util.concurrent.AbstractService
private final StateSnapshot = com.google.common.util.concurrent.AbstractService$StateSnapshot of com.google.common.util.concurrent.AbstractService
abstract Event = com.google.common.util.concurrent.ListenerCallQueue$Event of com.google.common.util.concurrent.ListenerCallQueue
public abstract Guard = com.google.common.util.concurrent.Monitor$Guard of com.google.common.util.concurrent.Monitor
public abstract Listener = com.google.common.util.concurrent.Service$Listener of com.google.common.util.concurrent.Service
public abstract State = com.google.common.util.concurrent.Service$State of com.google.common.util.concurrent.Service
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()
com.google.common.annotations.GwtIncompatible()