class oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode extends java.lang.Object
{
final java.util.Map allowedPriorLocks;
final java.util.Map disallowedPriorLocks;
final java.lang.String lockName;
void <init>(java.lang.String)
{
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode v;
oadd.com.google.common.collect.MapMaker v, v, v, v;
java.util.concurrent.ConcurrentMap v, v;
java.lang.Object v;
java.lang.String v;
v := @this: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode;
v := @parameter: java.lang.String;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new oadd.com.google.common.collect.MapMaker;
specialinvoke v.<oadd.com.google.common.collect.MapMaker: void <init>()>();
v = virtualinvoke v.<oadd.com.google.common.collect.MapMaker: oadd.com.google.common.collect.MapMaker weakKeys()>();
v = virtualinvoke v.<oadd.com.google.common.collect.MapMaker: java.util.concurrent.ConcurrentMap makeMap()>();
v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode: java.util.Map allowedPriorLocks> = v;
v = new oadd.com.google.common.collect.MapMaker;
specialinvoke v.<oadd.com.google.common.collect.MapMaker: void <init>()>();
v = virtualinvoke v.<oadd.com.google.common.collect.MapMaker: oadd.com.google.common.collect.MapMaker weakKeys()>();
v = virtualinvoke v.<oadd.com.google.common.collect.MapMaker: java.util.concurrent.ConcurrentMap makeMap()>();
v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode: java.util.Map disallowedPriorLocks> = v;
v = staticinvoke <oadd.com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode: java.lang.String lockName> = v;
return;
}
java.lang.String getLockName()
{
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode v;
java.lang.String v;
v := @this: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode;
v = v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode: java.lang.String lockName>;
return v;
}
void checkAcquiredLocks(oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$Policy, java.util.List)
{
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode v;
java.util.List v;
int v, v;
java.lang.Object v;
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$Policy v;
v := @this: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode;
v := @parameter: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$Policy;
v := @parameter: java.util.List;
v = 0;
v = interfaceinvoke v.<java.util.List: int size()>();
label:
if v >= v goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
virtualinvoke v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode: void checkAcquiredLock(oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$Policy,oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode)>(v, v);
v = v + 1;
goto label;
label:
return;
}
void checkAcquiredLock(oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$Policy, oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode)
{
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace v, v, v;
java.util.Map v, v, v, v;
java.lang.String v;
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$Policy v;
boolean v, v;
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode v, v;
java.util.Set v;
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$PotentialDeadlockException v, v;
java.lang.Object v;
v := @this: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode;
v := @parameter: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$Policy;
v := @parameter: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode;
if v == v goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = virtualinvoke v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode: java.lang.String getLockName()>();
staticinvoke <oadd.com.google.common.base.Preconditions: void checkState(boolean,java.lang.String,java.lang.Object)>(v, "Attempted to acquire multiple locks with the same rank %s", v);
v = v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode: java.util.Map allowedPriorLocks>;
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
return;
label:
v = v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode: java.util.Map disallowedPriorLocks>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = new oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$PotentialDeadlockException;
v = virtualinvoke v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$PotentialDeadlockException: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace getConflictingStackTrace()>();
specialinvoke v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$PotentialDeadlockException: void <init>(oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode,oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode,oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace)>(v, v, v);
interfaceinvoke v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$Policy: void handlePotentialDeadlock(oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$PotentialDeadlockException)>(v);
return;
label:
v = staticinvoke <oadd.com.google.common.collect.Sets: java.util.Set newIdentityHashSet()>();
v = specialinvoke v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace findPathTo(oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode,java.util.Set)>(v, v);
if v != null goto label;
v = v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode: java.util.Map allowedPriorLocks>;
v = new oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace;
specialinvoke v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace: void <init>(oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode,oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode)>(v, v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = new oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$PotentialDeadlockException;
specialinvoke v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$PotentialDeadlockException: void <init>(oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode,oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode,oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace)>(v, v, v);
v = v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode: java.util.Map disallowedPriorLocks>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
interfaceinvoke v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$Policy: void handlePotentialDeadlock(oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$PotentialDeadlockException)>(v);
label:
return;
}
private oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace findPathTo(oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode, java.util.Set)
{
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace v, v;
java.util.Map v, v;
boolean v, v;
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode v, v;
java.util.Iterator v;
java.util.Set v, v;
java.lang.StackTraceElement[] v;
java.lang.Object v, v, v, v;
v := @this: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode;
v := @parameter: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode;
v := @parameter: java.util.Set;
v = interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
if v != 0 goto label;
return null;
label:
v = v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode: java.util.Map allowedPriorLocks>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
return v;
label:
v = v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode: java.util.Map allowedPriorLocks>;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = specialinvoke v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace findPathTo(oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode,java.util.Set)>(v, v);
if v == null goto label;
v = new oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace;
specialinvoke v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace: void <init>(oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode,oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode)>(v, v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace: java.lang.StackTraceElement[] getStackTrace()>();
virtualinvoke v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace: void setStackTrace(java.lang.StackTraceElement[])>(v);
virtualinvoke v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$ExampleStackTrace: java.lang.Throwable initCause(java.lang.Throwable)>(v);
return v;
label:
return null;
}
}