final class com.google.common.util.concurrent.ServiceManager$ServiceManagerState
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.google.common.util.concurrent.ServiceManager$ServiceManagerState
super_class: java.lang.Object
{
final com.google.common.util.concurrent.Monitor monitor;
descriptor: Lcom/google/common/util/concurrent/Monitor;
flags: (0x0010) ACC_FINAL
final com.google.common.collect.SetMultimap<com.google.common.util.concurrent.Service$State, com.google.common.util.concurrent.Service> servicesByState;
descriptor: Lcom/google/common/collect/SetMultimap;
flags: (0x0010) ACC_FINAL
Signature: Lcom/google/common/collect/SetMultimap<Lcom/google/common/util/concurrent/Service$State;Lcom/google/common/util/concurrent/Service;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "monitor")
final com.google.common.collect.Multiset<com.google.common.util.concurrent.Service$State> states;
descriptor: Lcom/google/common/collect/Multiset;
flags: (0x0010) ACC_FINAL
Signature: Lcom/google/common/collect/Multiset<Lcom/google/common/util/concurrent/Service$State;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "monitor")
final java.util.Map<com.google.common.util.concurrent.Service, com.google.common.base.Stopwatch> startupTimers;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Lcom/google/common/util/concurrent/Service;Lcom/google/common/base/Stopwatch;>;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "monitor")
boolean ready;
descriptor: Z
flags: (0x0000)
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "monitor")
boolean transitioned;
descriptor: Z
flags: (0x0000)
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "monitor")
final int numberOfServices;
descriptor: I
flags: (0x0010) ACC_FINAL
final com.google.common.util.concurrent.Monitor$Guard awaitHealthGuard;
descriptor: Lcom/google/common/util/concurrent/Monitor$Guard;
flags: (0x0010) ACC_FINAL
final com.google.common.util.concurrent.Monitor$Guard stoppedGuard;
descriptor: Lcom/google/common/util/concurrent/Monitor$Guard;
flags: (0x0010) ACC_FINAL
final com.google.common.util.concurrent.ListenerCallQueue<com.google.common.util.concurrent.ServiceManager$Listener> listeners;
descriptor: Lcom/google/common/util/concurrent/ListenerCallQueue;
flags: (0x0010) ACC_FINAL
Signature: Lcom/google/common/util/concurrent/ListenerCallQueue<Lcom/google/common/util/concurrent/ServiceManager$Listener;>;
void <init>(com.google.common.collect.ImmutableCollection<com.google.common.util.concurrent.Service>);
descriptor: (Lcom/google/common/collect/ImmutableCollection;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 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.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
2: aload 0
3: ldc Lcom/google/common/util/concurrent/Service$State;
invokestatic com.google.common.collect.MultimapBuilder.enumKeys:(Ljava/lang/Class;)Lcom/google/common/collect/MultimapBuilder$MultimapBuilderWithKeys;
invokevirtual com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys.linkedHashSetValues:()Lcom/google/common/collect/MultimapBuilder$SetMultimapBuilder;
invokevirtual com.google.common.collect.MultimapBuilder$SetMultimapBuilder.build:()Lcom/google/common/collect/SetMultimap;
putfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.servicesByState:Lcom/google/common/collect/SetMultimap;
4: aload 0
aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.servicesByState:Lcom/google/common/collect/SetMultimap;
invokeinterface com.google.common.collect.SetMultimap.keys:()Lcom/google/common/collect/Multiset;
putfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.states:Lcom/google/common/collect/Multiset;
5: aload 0
invokestatic com.google.common.collect.Maps.newIdentityHashMap:()Ljava/util/IdentityHashMap;
putfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.startupTimers:Ljava/util/Map;
6: aload 0
new com.google.common.util.concurrent.ServiceManager$ServiceManagerState$AwaitHealthGuard
dup
aload 0
invokespecial com.google.common.util.concurrent.ServiceManager$ServiceManagerState$AwaitHealthGuard.<init>:(Lcom/google/common/util/concurrent/ServiceManager$ServiceManagerState;)V
putfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.awaitHealthGuard:Lcom/google/common/util/concurrent/Monitor$Guard;
7: aload 0
new com.google.common.util.concurrent.ServiceManager$ServiceManagerState$StoppedGuard
dup
aload 0
invokespecial com.google.common.util.concurrent.ServiceManager$ServiceManagerState$StoppedGuard.<init>:(Lcom/google/common/util/concurrent/ServiceManager$ServiceManagerState;)V
putfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.stoppedGuard:Lcom/google/common/util/concurrent/Monitor$Guard;
8: 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.ServiceManager$ServiceManagerState.listeners:Lcom/google/common/util/concurrent/ListenerCallQueue;
9: aload 0
aload 1
invokevirtual com.google.common.collect.ImmutableCollection.size:()I
putfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.numberOfServices:I
10: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.servicesByState:Lcom/google/common/collect/SetMultimap;
getstatic com.google.common.util.concurrent.Service$State.NEW:Lcom/google/common/util/concurrent/Service$State;
aload 1
invokeinterface com.google.common.collect.SetMultimap.putAll:(Ljava/lang/Object;Ljava/lang/Iterable;)Z
pop
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/google/common/util/concurrent/ServiceManager$ServiceManagerState;
0 12 1 services Lcom/google/common/collect/ImmutableCollection<Lcom/google/common/util/concurrent/Service;>;
Signature: (Lcom/google/common/collect/ImmutableCollection<Lcom/google/common/util/concurrent/Service;>;)V
MethodParameters:
Name Flags
services
void tryStartTiming(com.google.common.util.concurrent.Service);
descriptor: (Lcom/google/common/util/concurrent/Service;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.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.ServiceManager$ServiceManagerState.startupTimers:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.google.common.base.Stopwatch
astore 2
start local 2 2: aload 2
ifnonnull 8
3: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.startupTimers:Ljava/util/Map;
aload 1
invokestatic com.google.common.base.Stopwatch.createStarted:()Lcom/google/common/base/Stopwatch;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 2 4: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 3
6: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
7: aload 3
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/google/common/util/concurrent/ServiceManager$ServiceManagerState;
0 10 1 service Lcom/google/common/util/concurrent/Service;
2 4 2 stopwatch Lcom/google/common/base/Stopwatch;
Exception table:
from to target type
1 5 5 any
MethodParameters:
Name Flags
service
void markReady();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.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.ServiceManager$ServiceManagerState.transitioned:Z
ifne 4
2: aload 0
iconst_1
putfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.ready:Z
3: goto 18
4: StackMap locals:
StackMap stack:
invokestatic com.google.common.collect.Lists.newArrayList:()Ljava/util/ArrayList;
astore 1
start local 1 5: aload 0
invokevirtual com.google.common.util.concurrent.ServiceManager$ServiceManagerState.servicesByState:()Lcom/google/common/collect/ImmutableMultimap;
invokevirtual com.google.common.collect.ImmutableMultimap.values:()Lcom/google/common/collect/ImmutableCollection;
invokevirtual com.google.common.collect.ImmutableCollection.iterator:()Ljava/util/Iterator;
astore 3
goto 9
StackMap locals: com.google.common.util.concurrent.ServiceManager$ServiceManagerState java.util.List top java.util.Iterator
StackMap stack:
6: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.google.common.util.concurrent.Service
astore 2
start local 2 7: aload 2
invokeinterface com.google.common.util.concurrent.Service.state:()Lcom/google/common/util/concurrent/Service$State;
getstatic com.google.common.util.concurrent.Service$State.NEW:Lcom/google/common/util/concurrent/Service$State;
if_acmpeq 9
8: aload 1
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 2 9: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
10: new java.lang.IllegalArgumentException
dup
11: new java.lang.StringBuilder
dup
ldc "Services started transitioning asynchronously before the ServiceManager was constructed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
12: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
13: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 1 15: StackMap locals: com.google.common.util.concurrent.ServiceManager$ServiceManagerState
StackMap stack: java.lang.Throwable
astore 4
16: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
17: aload 4
athrow
18: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
19: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/google/common/util/concurrent/ServiceManager$ServiceManagerState;
5 15 1 servicesInBadStates Ljava/util/List<Lcom/google/common/util/concurrent/Service;>;
7 9 2 service Lcom/google/common/util/concurrent/Service;
Exception table:
from to target type
1 15 15 any
void addListener(com.google.common.util.concurrent.ServiceManager$Listener, java.util.concurrent.Executor);
descriptor: (Lcom/google/common/util/concurrent/ServiceManager$Listener;Ljava/util/concurrent/Executor;)V
flags: (0x0000)
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.ServiceManager$ServiceManagerState.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/ServiceManager$ServiceManagerState;
0 2 1 listener Lcom/google/common/util/concurrent/ServiceManager$Listener;
0 2 2 executor Ljava/util/concurrent/Executor;
MethodParameters:
Name Flags
listener
executor
void awaitHealthy();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.awaitHealthGuard: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
invokevirtual com.google.common.util.concurrent.ServiceManager$ServiceManagerState.checkHealthy:()V
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 1
4: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.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.ServiceManager$ServiceManagerState.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/ServiceManager$ServiceManagerState;
Exception table:
from to target type
1 3 3 any
void awaitHealthy(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)V
flags: (0x0000)
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.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.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.awaitHealthGuard:Lcom/google/common/util/concurrent/Monitor$Guard;
lload 1
aload 3
invokevirtual com.google.common.util.concurrent.Monitor.waitForUninterruptibly:(Lcom/google/common/util/concurrent/Monitor$Guard;JLjava/util/concurrent/TimeUnit;)Z
ifne 7
2: new java.util.concurrent.TimeoutException
dup
3: new java.lang.StringBuilder
dup
ldc "Timeout waiting for the services to become healthy. The following services have not started: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.servicesByState:Lcom/google/common/collect/SetMultimap;
getstatic com.google.common.util.concurrent.Service$State.NEW:Lcom/google/common/util/concurrent/Service$State;
getstatic com.google.common.util.concurrent.Service$State.STARTING:Lcom/google/common/util/concurrent/Service$State;
invokestatic com.google.common.collect.ImmutableSet.of:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet;
invokestatic com.google.common.base.Predicates.in:(Ljava/util/Collection;)Lcom/google/common/base/Predicate;
invokestatic com.google.common.collect.Multimaps.filterKeys:(Lcom/google/common/collect/SetMultimap;Lcom/google/common/base/Predicate;)Lcom/google/common/collect/SetMultimap;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
5: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokespecial java.util.concurrent.TimeoutException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.google.common.util.concurrent.ServiceManager$ServiceManagerState.checkHealthy:()V
8: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 4
10: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
11: aload 4
athrow
12: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
13: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/google/common/util/concurrent/ServiceManager$ServiceManagerState;
0 14 1 timeout J
0 14 3 unit Ljava/util/concurrent/TimeUnit;
Exception table:
from to target type
1 9 9 any
Exceptions:
throws java.util.concurrent.TimeoutException
MethodParameters:
Name Flags
timeout
unit
void awaitStopped();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.stoppedGuard: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
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/util/concurrent/ServiceManager$ServiceManagerState;
void awaitStopped(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)V
flags: (0x0000)
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.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.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.stoppedGuard:Lcom/google/common/util/concurrent/Monitor$Guard;
lload 1
aload 3
invokevirtual com.google.common.util.concurrent.Monitor.waitForUninterruptibly:(Lcom/google/common/util/concurrent/Monitor$Guard;JLjava/util/concurrent/TimeUnit;)Z
ifne 10
2: new java.util.concurrent.TimeoutException
dup
3: new java.lang.StringBuilder
dup
ldc "Timeout waiting for the services to stop. The following services have not stopped: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.servicesByState:Lcom/google/common/collect/SetMultimap;
getstatic com.google.common.util.concurrent.Service$State.TERMINATED:Lcom/google/common/util/concurrent/Service$State;
getstatic com.google.common.util.concurrent.Service$State.FAILED:Lcom/google/common/util/concurrent/Service$State;
invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
invokestatic com.google.common.base.Predicates.in:(Ljava/util/Collection;)Lcom/google/common/base/Predicate;
invokestatic com.google.common.base.Predicates.not:(Lcom/google/common/base/Predicate;)Lcom/google/common/base/Predicate;
invokestatic com.google.common.collect.Multimaps.filterKeys:(Lcom/google/common/collect/SetMultimap;Lcom/google/common/base/Predicate;)Lcom/google/common/collect/SetMultimap;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
5: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokespecial java.util.concurrent.TimeoutException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
8: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
9: aload 4
athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
11: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/google/common/util/concurrent/ServiceManager$ServiceManagerState;
0 12 1 timeout J
0 12 3 unit Ljava/util/concurrent/TimeUnit;
Exception table:
from to target type
1 7 7 any
Exceptions:
throws java.util.concurrent.TimeoutException
MethodParameters:
Name Flags
timeout
unit
com.google.common.collect.ImmutableMultimap<com.google.common.util.concurrent.Service$State, com.google.common.util.concurrent.Service> servicesByState();
descriptor: ()Lcom/google/common/collect/ImmutableMultimap;
flags: (0x0000)
Code:
stack=2, locals=5, args_size=1
start local 0 0: invokestatic com.google.common.collect.ImmutableSetMultimap.builder:()Lcom/google/common/collect/ImmutableSetMultimap$Builder;
astore 1
start local 1 1: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.enter:()V
2: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.servicesByState:Lcom/google/common/collect/SetMultimap;
invokeinterface com.google.common.collect.SetMultimap.entries:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 6
StackMap locals: com.google.common.util.concurrent.ServiceManager$ServiceManagerState com.google.common.collect.ImmutableSetMultimap$Builder top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 2
start local 2 4: aload 2
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
instanceof com.google.common.util.concurrent.ServiceManager$NoOpService
ifne 6
5: aload 1
aload 2
invokevirtual com.google.common.collect.ImmutableSetMultimap$Builder.put:(Ljava/util/Map$Entry;)Lcom/google/common/collect/ImmutableSetMultimap$Builder;
pop
end local 2 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
7: goto 11
StackMap locals: com.google.common.util.concurrent.ServiceManager$ServiceManagerState com.google.common.collect.ImmutableSetMultimap$Builder
StackMap stack: java.lang.Throwable
8: astore 4
9: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
10: aload 4
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
12: aload 1
invokevirtual com.google.common.collect.ImmutableSetMultimap$Builder.build:()Lcom/google/common/collect/ImmutableSetMultimap;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/google/common/util/concurrent/ServiceManager$ServiceManagerState;
1 13 1 builder Lcom/google/common/collect/ImmutableSetMultimap$Builder<Lcom/google/common/util/concurrent/Service$State;Lcom/google/common/util/concurrent/Service;>;
4 6 2 entry Ljava/util/Map$Entry<Lcom/google/common/util/concurrent/Service$State;Lcom/google/common/util/concurrent/Service;>;
Exception table:
from to target type
2 8 8 any
Signature: ()Lcom/google/common/collect/ImmutableMultimap<Lcom/google/common/util/concurrent/Service$State;Lcom/google/common/util/concurrent/Service;>;
com.google.common.collect.ImmutableMap<com.google.common.util.concurrent.Service, java.lang.Long> startupTimes();
descriptor: ()Lcom/google/common/collect/ImmutableMap;
flags: (0x0000)
Code:
stack=5, locals=7, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.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.ServiceManager$ServiceManagerState.startupTimers:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
invokestatic com.google.common.collect.Lists.newArrayListWithCapacity:(I)Ljava/util/ArrayList;
astore 1
start local 1 2: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.startupTimers:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 8
StackMap locals: com.google.common.util.concurrent.ServiceManager$ServiceManagerState java.util.List top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 2
start local 2 4: aload 2
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast com.google.common.util.concurrent.Service
astore 4
start local 4 5: aload 2
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast com.google.common.base.Stopwatch
astore 5
start local 5 6: aload 5
invokevirtual com.google.common.base.Stopwatch.isRunning:()Z
ifne 8
aload 4
instanceof com.google.common.util.concurrent.ServiceManager$NoOpService
ifne 8
7: aload 1
aload 4
aload 5
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual com.google.common.base.Stopwatch.elapsed:(Ljava/util/concurrent/TimeUnit;)J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokestatic com.google.common.collect.Maps.immutableEntry:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map$Entry;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 end local 4 end local 2 8: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
9: goto 13
end local 1 StackMap locals: com.google.common.util.concurrent.ServiceManager$ServiceManagerState
StackMap stack: java.lang.Throwable
10: astore 6
11: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
12: aload 6
athrow
start local 1 13: StackMap locals: java.util.List
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
14: aload 1
15: invokestatic com.google.common.collect.Ordering.natural:()Lcom/google/common/collect/Ordering;
16: new com.google.common.util.concurrent.ServiceManager$ServiceManagerState$1
dup
aload 0
invokespecial com.google.common.util.concurrent.ServiceManager$ServiceManagerState$1.<init>:(Lcom/google/common/util/concurrent/ServiceManager$ServiceManagerState;)V
17: invokevirtual com.google.common.collect.Ordering.onResultOf:(Lcom/google/common/base/Function;)Lcom/google/common/collect/Ordering;
18: invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
19: aload 1
invokestatic com.google.common.collect.ImmutableMap.copyOf:(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableMap;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/google/common/util/concurrent/ServiceManager$ServiceManagerState;
2 10 1 loadTimes Ljava/util/List<Ljava/util/Map$Entry<Lcom/google/common/util/concurrent/Service;Ljava/lang/Long;>;>;
13 20 1 loadTimes Ljava/util/List<Ljava/util/Map$Entry<Lcom/google/common/util/concurrent/Service;Ljava/lang/Long;>;>;
4 8 2 entry Ljava/util/Map$Entry<Lcom/google/common/util/concurrent/Service;Lcom/google/common/base/Stopwatch;>;
5 8 4 service Lcom/google/common/util/concurrent/Service;
6 8 5 stopWatch Lcom/google/common/base/Stopwatch;
Exception table:
from to target type
1 10 10 any
Signature: ()Lcom/google/common/collect/ImmutableMap<Lcom/google/common/util/concurrent/Service;Ljava/lang/Long;>;
void transitionService(com.google.common.util.concurrent.Service, com.google.common.util.concurrent.Service$State, com.google.common.util.concurrent.Service$State);
descriptor: (Lcom/google/common/util/concurrent/Service;Lcom/google/common/util/concurrent/Service$State;Lcom/google/common/util/concurrent/Service$State;)V
flags: (0x0000)
Code:
stack=7, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 2
aload 3
if_acmpeq 2
iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: invokestatic com.google.common.base.Preconditions.checkArgument:(Z)V
4: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.enter:()V
5: aload 0
iconst_1
putfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.transitioned:Z
6: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.ready:Z
ifne 10
7: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.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.ServiceManager$ServiceManagerState.dispatchListenerEvents:()V
9: return
10: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.servicesByState:Lcom/google/common/collect/SetMultimap;
aload 2
aload 1
invokeinterface com.google.common.collect.SetMultimap.remove:(Ljava/lang/Object;Ljava/lang/Object;)Z
11: ldc "Service %s not at the expected location in the state map %s"
12: aload 1
13: aload 2
14: invokestatic com.google.common.base.Preconditions.checkState:(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
15: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.servicesByState:Lcom/google/common/collect/SetMultimap;
aload 3
aload 1
invokeinterface com.google.common.collect.SetMultimap.put:(Ljava/lang/Object;Ljava/lang/Object;)Z
16: ldc "Service %s in the state map unexpectedly at %s"
17: aload 1
18: aload 3
19: invokestatic com.google.common.base.Preconditions.checkState:(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
20: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.startupTimers:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.google.common.base.Stopwatch
astore 4
start local 4 21: aload 4
ifnonnull 24
22: invokestatic com.google.common.base.Stopwatch.createStarted:()Lcom/google/common/base/Stopwatch;
astore 4
23: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.startupTimers:Ljava/util/Map;
aload 1
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
24: StackMap locals: com.google.common.base.Stopwatch
StackMap stack:
aload 3
getstatic com.google.common.util.concurrent.Service$State.RUNNING:Lcom/google/common/util/concurrent/Service$State;
invokevirtual com.google.common.util.concurrent.Service$State.compareTo:(Ljava/lang/Enum;)I
iflt 28
aload 4
invokevirtual com.google.common.base.Stopwatch.isRunning:()Z
ifeq 28
25: aload 4
invokevirtual com.google.common.base.Stopwatch.stop:()Lcom/google/common/base/Stopwatch;
pop
26: aload 1
instanceof com.google.common.util.concurrent.ServiceManager$NoOpService
ifne 28
27: getstatic com.google.common.util.concurrent.ServiceManager.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
ldc "Started {0} in {1}."
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 4
aastore
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
28: StackMap locals:
StackMap stack:
aload 3
getstatic com.google.common.util.concurrent.Service$State.FAILED:Lcom/google/common/util/concurrent/Service$State;
if_acmpne 30
29: aload 0
aload 1
invokevirtual com.google.common.util.concurrent.ServiceManager$ServiceManagerState.enqueueFailedEvent:(Lcom/google/common/util/concurrent/Service;)V
30: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.states:Lcom/google/common/collect/Multiset;
getstatic com.google.common.util.concurrent.Service$State.RUNNING:Lcom/google/common/util/concurrent/Service$State;
invokeinterface com.google.common.collect.Multiset.count:(Ljava/lang/Object;)I
aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.numberOfServices:I
if_icmpne 33
31: aload 0
invokevirtual com.google.common.util.concurrent.ServiceManager$ServiceManagerState.enqueueHealthyEvent:()V
32: goto 40
StackMap locals:
StackMap stack:
33: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.states:Lcom/google/common/collect/Multiset;
getstatic com.google.common.util.concurrent.Service$State.TERMINATED:Lcom/google/common/util/concurrent/Service$State;
invokeinterface com.google.common.collect.Multiset.count:(Ljava/lang/Object;)I
aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.states:Lcom/google/common/collect/Multiset;
getstatic com.google.common.util.concurrent.Service$State.FAILED:Lcom/google/common/util/concurrent/Service$State;
invokeinterface com.google.common.collect.Multiset.count:(Ljava/lang/Object;)I
iadd
aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.numberOfServices:I
if_icmpne 40
34: aload 0
invokevirtual com.google.common.util.concurrent.ServiceManager$ServiceManagerState.enqueueStoppedEvent:()V
end local 4 35: goto 40
StackMap locals: com.google.common.util.concurrent.ServiceManager$ServiceManagerState com.google.common.util.concurrent.Service com.google.common.util.concurrent.Service$State com.google.common.util.concurrent.Service$State
StackMap stack: java.lang.Throwable
36: astore 5
37: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
38: aload 0
invokevirtual com.google.common.util.concurrent.ServiceManager$ServiceManagerState.dispatchListenerEvents:()V
39: aload 5
athrow
40: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.leave:()V
41: aload 0
invokevirtual com.google.common.util.concurrent.ServiceManager$ServiceManagerState.dispatchListenerEvents:()V
42: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lcom/google/common/util/concurrent/ServiceManager$ServiceManagerState;
0 43 1 service Lcom/google/common/util/concurrent/Service;
0 43 2 from Lcom/google/common/util/concurrent/Service$State;
0 43 3 to Lcom/google/common/util/concurrent/Service$State;
21 35 4 stopwatch Lcom/google/common/base/Stopwatch;
Exception table:
from to target type
5 7 36 any
10 36 36 any
MethodParameters:
Name Flags
service final
from
to
void enqueueStoppedEvent();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.listeners:Lcom/google/common/util/concurrent/ListenerCallQueue;
getstatic com.google.common.util.concurrent.ServiceManager.STOPPED_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/ServiceManager$ServiceManagerState;
void enqueueHealthyEvent();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.listeners:Lcom/google/common/util/concurrent/ListenerCallQueue;
getstatic com.google.common.util.concurrent.ServiceManager.HEALTHY_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/ServiceManager$ServiceManagerState;
void enqueueFailedEvent(com.google.common.util.concurrent.Service);
descriptor: (Lcom/google/common/util/concurrent/Service;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.listeners:Lcom/google/common/util/concurrent/ListenerCallQueue;
1: new com.google.common.util.concurrent.ServiceManager$ServiceManagerState$2
dup
aload 0
aload 1
invokespecial com.google.common.util.concurrent.ServiceManager$ServiceManagerState$2.<init>:(Lcom/google/common/util/concurrent/ServiceManager$ServiceManagerState;Lcom/google/common/util/concurrent/Service;)V
2: invokevirtual com.google.common.util.concurrent.ListenerCallQueue.enqueue:(Lcom/google/common/util/concurrent/ListenerCallQueue$Event;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/common/util/concurrent/ServiceManager$ServiceManagerState;
0 4 1 service Lcom/google/common/util/concurrent/Service;
MethodParameters:
Name Flags
service final
void dispatchListenerEvents();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.monitor:Lcom/google/common/util/concurrent/Monitor;
invokevirtual com.google.common.util.concurrent.Monitor.isOccupiedByCurrentThread:()Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
2: StackMap locals:
StackMap stack: int
ldc "It is incorrect to execute listeners with the monitor held."
3: invokestatic com.google.common.base.Preconditions.checkState:(ZLjava/lang/Object;)V
4: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.listeners:Lcom/google/common/util/concurrent/ListenerCallQueue;
invokevirtual com.google.common.util.concurrent.ListenerCallQueue.dispatch:()V
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/common/util/concurrent/ServiceManager$ServiceManagerState;
void checkHealthy();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.states:Lcom/google/common/collect/Multiset;
getstatic com.google.common.util.concurrent.Service$State.RUNNING:Lcom/google/common/util/concurrent/Service$State;
invokeinterface com.google.common.collect.Multiset.count:(Ljava/lang/Object;)I
aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.numberOfServices:I
if_icmpeq 12
1: new java.lang.IllegalStateException
dup
2: new java.lang.StringBuilder
dup
ldc "Expected to be healthy after starting. The following services are not running: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
3: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.servicesByState:Lcom/google/common/collect/SetMultimap;
getstatic com.google.common.util.concurrent.Service$State.RUNNING:Lcom/google/common/util/concurrent/Service$State;
invokestatic com.google.common.base.Predicates.equalTo:(Ljava/lang/Object;)Lcom/google/common/base/Predicate;
invokestatic com.google.common.base.Predicates.not:(Lcom/google/common/base/Predicate;)Lcom/google/common/base/Predicate;
invokestatic com.google.common.collect.Multimaps.filterKeys:(Lcom/google/common/collect/SetMultimap;Lcom/google/common/base/Predicate;)Lcom/google/common/collect/SetMultimap;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
4: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
6: astore 1
start local 1 7: aload 0
getfield com.google.common.util.concurrent.ServiceManager$ServiceManagerState.servicesByState:Lcom/google/common/collect/SetMultimap;
getstatic com.google.common.util.concurrent.Service$State.FAILED:Lcom/google/common/util/concurrent/Service$State;
invokeinterface com.google.common.collect.SetMultimap.get:(Ljava/lang/Object;)Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 10
StackMap locals: com.google.common.util.concurrent.ServiceManager$ServiceManagerState java.lang.IllegalStateException top java.util.Iterator
StackMap stack:
8: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.google.common.util.concurrent.Service
astore 2
start local 2 9: aload 1
new com.google.common.util.concurrent.ServiceManager$FailedService
dup
aload 2
invokespecial com.google.common.util.concurrent.ServiceManager$FailedService.<init>:(Lcom/google/common/util/concurrent/Service;)V
invokevirtual java.lang.IllegalStateException.addSuppressed:(Ljava/lang/Throwable;)V
end local 2 10: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
11: aload 1
athrow
end local 1 12: StackMap locals: com.google.common.util.concurrent.ServiceManager$ServiceManagerState
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/google/common/util/concurrent/ServiceManager$ServiceManagerState;
7 12 1 exception Ljava/lang/IllegalStateException;
9 10 2 service Lcom/google/common/util/concurrent/Service;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.concurrent.GuardedBy(value = "monitor")
}
SourceFile: "ServiceManager.java"
NestHost: com.google.common.util.concurrent.ServiceManager
InnerClasses:
public final Builder = com.google.common.collect.ImmutableSetMultimap$Builder of com.google.common.collect.ImmutableSetMultimap
public abstract MultimapBuilderWithKeys = com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys of com.google.common.collect.MultimapBuilder
public abstract SetMultimapBuilder = com.google.common.collect.MultimapBuilder$SetMultimapBuilder of com.google.common.collect.MultimapBuilder
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 State = com.google.common.util.concurrent.Service$State of com.google.common.util.concurrent.Service
private final FailedService = com.google.common.util.concurrent.ServiceManager$FailedService of com.google.common.util.concurrent.ServiceManager
public abstract Listener = com.google.common.util.concurrent.ServiceManager$Listener of com.google.common.util.concurrent.ServiceManager
private final NoOpService = com.google.common.util.concurrent.ServiceManager$NoOpService of com.google.common.util.concurrent.ServiceManager
private final ServiceManagerState = com.google.common.util.concurrent.ServiceManager$ServiceManagerState of com.google.common.util.concurrent.ServiceManager
com.google.common.util.concurrent.ServiceManager$ServiceManagerState$1
com.google.common.util.concurrent.ServiceManager$ServiceManagerState$2
final AwaitHealthGuard = com.google.common.util.concurrent.ServiceManager$ServiceManagerState$AwaitHealthGuard of com.google.common.util.concurrent.ServiceManager$ServiceManagerState
final StoppedGuard = com.google.common.util.concurrent.ServiceManager$ServiceManagerState$StoppedGuard of com.google.common.util.concurrent.ServiceManager$ServiceManagerState
public abstract Entry = java.util.Map$Entry of java.util.Map