class com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode
super_class: java.lang.Object
{
final java.util.Map<com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode, com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace> allowedPriorLocks;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;Lcom/google/common/util/concurrent/CycleDetectingLockFactory$ExampleStackTrace;>;
final java.util.Map<com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode, com.google.common.util.concurrent.CycleDetectingLockFactory$PotentialDeadlockException> disallowedPriorLocks;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;Lcom/google/common/util/concurrent/CycleDetectingLockFactory$PotentialDeadlockException;>;
final java.lang.String lockName;
descriptor: Ljava/lang/String;
flags: (0x0010) ACC_FINAL
void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
2: new com.google.common.collect.MapMaker
dup
invokespecial com.google.common.collect.MapMaker.<init>:()V
invokevirtual com.google.common.collect.MapMaker.weakKeys:()Lcom/google/common/collect/MapMaker;
invokevirtual com.google.common.collect.MapMaker.makeMap:()Ljava/util/concurrent/ConcurrentMap;
putfield com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode.allowedPriorLocks:Ljava/util/Map;
3: aload 0
4: new com.google.common.collect.MapMaker
dup
invokespecial com.google.common.collect.MapMaker.<init>:()V
invokevirtual com.google.common.collect.MapMaker.weakKeys:()Lcom/google/common/collect/MapMaker;
invokevirtual com.google.common.collect.MapMaker.makeMap:()Ljava/util/concurrent/ConcurrentMap;
putfield com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode.disallowedPriorLocks:Ljava/util/Map;
5: aload 0
aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode.lockName:Ljava/lang/String;
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;
0 7 1 lockName Ljava/lang/String;
MethodParameters:
Name Flags
lockName
java.lang.String getLockName();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode.lockName:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;
void checkAcquiredLocks(com.google.common.util.concurrent.CycleDetectingLockFactory$Policy, java.util.List<com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode>);
descriptor: (Lcom/google/common/util/concurrent/CycleDetectingLockFactory$Policy;Ljava/util/List;)V
flags: (0x0000)
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: aload 2
invokeinterface java.util.List.size:()I
istore 4
start local 4 2: goto 5
3: StackMap locals: int int
StackMap stack:
aload 0
aload 1
aload 2
iload 3
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode
invokevirtual com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode.checkAcquiredLock:(Lcom/google/common/util/concurrent/CycleDetectingLockFactory$Policy;Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;)V
4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 3
end local 4 end local 3 6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;
0 7 1 policy Lcom/google/common/util/concurrent/CycleDetectingLockFactory$Policy;
0 7 2 acquiredLocks Ljava/util/List<Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;>;
1 6 3 i I
2 6 4 size I
Signature: (Lcom/google/common/util/concurrent/CycleDetectingLockFactory$Policy;Ljava/util/List<Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;>;)V
MethodParameters:
Name Flags
policy
acquiredLocks
void checkAcquiredLock(com.google.common.util.concurrent.CycleDetectingLockFactory$Policy, com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode);
descriptor: (Lcom/google/common/util/concurrent/CycleDetectingLockFactory$Policy;Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;)V
flags: (0x0000)
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
if_acmpeq 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
2: StackMap locals:
StackMap stack: int
ldc "Attempted to acquire multiple locks with the same rank %s"
3: aload 2
invokevirtual com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode.getLockName:()Ljava/lang/String;
4: invokestatic com.google.common.base.Preconditions.checkState:(ZLjava/lang/String;Ljava/lang/Object;)V
5: aload 0
getfield com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode.allowedPriorLocks:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 7
6: return
7: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode.disallowedPriorLocks:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.google.common.util.concurrent.CycleDetectingLockFactory$PotentialDeadlockException
astore 3
start local 3 8: aload 3
ifnull 15
9: new com.google.common.util.concurrent.CycleDetectingLockFactory$PotentialDeadlockException
dup
10: aload 2
aload 0
aload 3
invokevirtual com.google.common.util.concurrent.CycleDetectingLockFactory$PotentialDeadlockException.getConflictingStackTrace:()Lcom/google/common/util/concurrent/CycleDetectingLockFactory$ExampleStackTrace;
11: invokespecial com.google.common.util.concurrent.CycleDetectingLockFactory$PotentialDeadlockException.<init>:(Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;Lcom/google/common/util/concurrent/CycleDetectingLockFactory$ExampleStackTrace;)V
12: astore 4
start local 4 13: aload 1
aload 4
invokeinterface com.google.common.util.concurrent.CycleDetectingLockFactory$Policy.handlePotentialDeadlock:(Lcom/google/common/util/concurrent/CycleDetectingLockFactory$PotentialDeadlockException;)V
14: return
end local 4 15: StackMap locals: com.google.common.util.concurrent.CycleDetectingLockFactory$PotentialDeadlockException
StackMap stack:
invokestatic com.google.common.collect.Sets.newIdentityHashSet:()Ljava/util/Set;
astore 4
start local 4 16: aload 2
aload 0
aload 4
invokevirtual com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode.findPathTo:(Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;Ljava/util/Set;)Lcom/google/common/util/concurrent/CycleDetectingLockFactory$ExampleStackTrace;
astore 5
start local 5 17: aload 5
ifnonnull 20
18: aload 0
getfield com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode.allowedPriorLocks:Ljava/util/Map;
aload 2
new com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace
dup
aload 2
aload 0
invokespecial com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace.<init>:(Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
19: goto 24
20: StackMap locals: java.util.Set com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace
StackMap stack:
new com.google.common.util.concurrent.CycleDetectingLockFactory$PotentialDeadlockException
dup
aload 2
aload 0
aload 5
invokespecial com.google.common.util.concurrent.CycleDetectingLockFactory$PotentialDeadlockException.<init>:(Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;Lcom/google/common/util/concurrent/CycleDetectingLockFactory$ExampleStackTrace;)V
21: astore 6
start local 6 22: aload 0
getfield com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode.disallowedPriorLocks:Ljava/util/Map;
aload 2
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
23: aload 1
aload 6
invokeinterface com.google.common.util.concurrent.CycleDetectingLockFactory$Policy.handlePotentialDeadlock:(Lcom/google/common/util/concurrent/CycleDetectingLockFactory$PotentialDeadlockException;)V
end local 6 24: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;
0 25 1 policy Lcom/google/common/util/concurrent/CycleDetectingLockFactory$Policy;
0 25 2 acquiredLock Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;
8 25 3 previousDeadlockException Lcom/google/common/util/concurrent/CycleDetectingLockFactory$PotentialDeadlockException;
13 15 4 exception Lcom/google/common/util/concurrent/CycleDetectingLockFactory$PotentialDeadlockException;
16 25 4 seen Ljava/util/Set<Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;>;
17 25 5 path Lcom/google/common/util/concurrent/CycleDetectingLockFactory$ExampleStackTrace;
22 24 6 exception Lcom/google/common/util/concurrent/CycleDetectingLockFactory$PotentialDeadlockException;
MethodParameters:
Name Flags
policy
acquiredLock
private com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace findPathTo(com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode, java.util.Set<com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode>);
descriptor: (Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;Ljava/util/Set;)Lcom/google/common/util/concurrent/CycleDetectingLockFactory$ExampleStackTrace;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 2
aload 0
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
ifne 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode.allowedPriorLocks:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace
astore 3
start local 3 3: aload 3
ifnull 5
4: aload 3
areturn
5: StackMap locals: com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace
StackMap stack:
aload 0
getfield com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode.allowedPriorLocks:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 14
StackMap locals: com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode java.util.Set com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace top java.util.Iterator
StackMap stack:
6: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 4
start local 4 7: aload 4
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode
astore 6
start local 6 8: aload 6
aload 1
aload 2
invokevirtual com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode.findPathTo:(Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;Ljava/util/Set;)Lcom/google/common/util/concurrent/CycleDetectingLockFactory$ExampleStackTrace;
astore 3
9: aload 3
ifnull 14
10: new com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace
dup
aload 6
aload 0
invokespecial com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace.<init>:(Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;)V
astore 7
start local 7 11: aload 7
aload 4
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace
invokevirtual com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace.getStackTrace:()[Ljava/lang/StackTraceElement;
invokevirtual com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace.setStackTrace:([Ljava/lang/StackTraceElement;)V
12: aload 7
aload 3
invokevirtual com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
13: aload 7
areturn
end local 7 end local 6 end local 4 14: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
15: aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;
0 16 1 node Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;
0 16 2 seen Ljava/util/Set<Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;>;
3 16 3 found Lcom/google/common/util/concurrent/CycleDetectingLockFactory$ExampleStackTrace;
7 14 4 entry Ljava/util/Map$Entry<Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;Lcom/google/common/util/concurrent/CycleDetectingLockFactory$ExampleStackTrace;>;
8 14 6 preAcquiredLock Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;
11 14 7 path Lcom/google/common/util/concurrent/CycleDetectingLockFactory$ExampleStackTrace;
Signature: (Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;Ljava/util/Set<Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;>;)Lcom/google/common/util/concurrent/CycleDetectingLockFactory$ExampleStackTrace;
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
org.checkerframework.checker.nullness.qual.Nullable()
MethodParameters:
Name Flags
node
seen
}
SourceFile: "CycleDetectingLockFactory.java"
NestHost: com.google.common.util.concurrent.CycleDetectingLockFactory
InnerClasses:
private ExampleStackTrace = com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace of com.google.common.util.concurrent.CycleDetectingLockFactory
private LockGraphNode = com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode of com.google.common.util.concurrent.CycleDetectingLockFactory
public abstract Policy = com.google.common.util.concurrent.CycleDetectingLockFactory$Policy of com.google.common.util.concurrent.CycleDetectingLockFactory
public final PotentialDeadlockException = com.google.common.util.concurrent.CycleDetectingLockFactory$PotentialDeadlockException of com.google.common.util.concurrent.CycleDetectingLockFactory
public abstract Entry = java.util.Map$Entry of java.util.Map