abstract class com.github.benmanes.caffeine.cache.BoundedLocalCache extends com.github.benmanes.caffeine.cache.BLCHeader$DrainStatusRef implements com.github.benmanes.caffeine.cache.LocalCache
{
static final java.lang.System$Logger logger;
static final int NCPU;
static final int WRITE_BUFFER_MIN;
static final int WRITE_BUFFER_MAX;
static final int WRITE_BUFFER_RETRIES;
static final long MAXIMUM_CAPACITY;
static final double PERCENT_MAIN;
static final double PERCENT_MAIN_PROTECTED;
static final double HILL_CLIMBER_RESTART_THRESHOLD;
static final double HILL_CLIMBER_STEP_PERCENT;
static final double HILL_CLIMBER_STEP_DECAY_RATE;
static final int ADMIT_HASHDOS_THRESHOLD;
static final int QUEUE_TRANSFER_THRESHOLD;
static final long EXPIRE_WRITE_TOLERANCE;
static final long MAXIMUM_EXPIRY;
static final long WARN_AFTER_LOCK_WAIT_NANOS;
static final int MAX_PUT_SPIN_WAIT_ATTEMPTS;
static final java.lang.invoke.VarHandle REFRESHES;
final com.github.benmanes.caffeine.cache.RemovalListener evictionListener;
final com.github.benmanes.caffeine.cache.AsyncCacheLoader cacheLoader;
final com.github.benmanes.caffeine.cache.MpscGrowableArrayQueue writeBuffer;
final java.util.concurrent.ConcurrentHashMap data;
final com.github.benmanes.caffeine.cache.BoundedLocalCache$PerformCleanupTask drainBuffersTask;
final java.util.function.Consumer accessPolicy;
final com.github.benmanes.caffeine.cache.Buffer readBuffer;
final com.github.benmanes.caffeine.cache.NodeFactory nodeFactory;
final java.util.concurrent.locks.ReentrantLock evictionLock;
final com.github.benmanes.caffeine.cache.Weigher weigher;
final java.util.concurrent.Executor executor;
final boolean isWeighted;
final boolean isAsync;
java.util.Set keySet;
java.util.Collection values;
java.util.Set entrySet;
volatile java.util.concurrent.ConcurrentMap refreshes;
protected void <init>(com.github.benmanes.caffeine.cache.Caffeine, com.github.benmanes.caffeine.cache.AsyncCacheLoader, boolean)
{
com.github.benmanes.caffeine.cache.Buffer v;
long v;
com.github.benmanes.caffeine.cache.BoundedBuffer v;
com.github.benmanes.caffeine.cache.Weigher v;
int v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache$PerformCleanupTask v;
com.github.benmanes.caffeine.cache.AsyncCacheLoader v;
com.github.benmanes.caffeine.cache.RemovalListener v;
boolean v, v, v, v, v, v, v, v, v;
com.github.benmanes.caffeine.cache.Caffeine v;
java.util.concurrent.locks.ReentrantLock v;
java.util.concurrent.Executor v;
java.util.concurrent.ConcurrentHashMap v;
java.util.function.Consumer v;
com.github.benmanes.caffeine.cache.NodeFactory v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
com.github.benmanes.caffeine.cache.MpscGrowableArrayQueue v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.Caffeine;
v := @parameter: com.github.benmanes.caffeine.cache.AsyncCacheLoader;
v := @parameter: boolean;
specialinvoke v.<com.github.benmanes.caffeine.cache.BLCHeader$DrainStatusRef: void <init>()>();
v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean isAsync> = v;
v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AsyncCacheLoader cacheLoader> = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Caffeine: java.util.concurrent.Executor getExecutor()>();
v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.Executor executor> = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Caffeine: boolean isWeighted()>();
v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean isWeighted> = v;
v = new java.util.concurrent.locks.ReentrantLock;
specialinvoke v.<java.util.concurrent.locks.ReentrantLock: void <init>()>();
v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock> = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Caffeine: com.github.benmanes.caffeine.cache.Weigher getWeigher(boolean)>(v);
v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Weigher weigher> = v;
v = new com.github.benmanes.caffeine.cache.BoundedLocalCache$PerformCleanupTask;
specialinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$PerformCleanupTask: void <init>(com.github.benmanes.caffeine.cache.BoundedLocalCache)>(v);
v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.BoundedLocalCache$PerformCleanupTask drainBuffersTask> = v;
v = staticinvoke <com.github.benmanes.caffeine.cache.NodeFactory: com.github.benmanes.caffeine.cache.NodeFactory newFactory(com.github.benmanes.caffeine.cache.Caffeine,boolean)>(v, v);
v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory> = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Caffeine: com.github.benmanes.caffeine.cache.RemovalListener getEvictionListener(boolean)>(v);
v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.RemovalListener evictionListener> = v;
v = new java.util.concurrent.ConcurrentHashMap;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Caffeine: int getInitialCapacity()>();
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(v);
v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data> = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evicts()>();
if v != 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean collectKeys()>();
if v != 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean collectValues()>();
if v != 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterAccess()>();
if v == 0 goto label;
label:
v = new com.github.benmanes.caffeine.cache.BoundedBuffer;
v = v;
specialinvoke v.<com.github.benmanes.caffeine.cache.BoundedBuffer: void <init>()>();
goto label;
label:
v = staticinvoke <com.github.benmanes.caffeine.cache.Buffer: com.github.benmanes.caffeine.cache.Buffer disabled()>();
label:
v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Buffer readBuffer> = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evicts()>();
if v != 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterAccess()>();
if v == 0 goto label;
label:
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$onAccess__18: java.util.function.Consumer bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache)>(v);
goto label;
label:
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_new_0__19: java.util.function.Consumer bootstrap$()>();
label:
v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.function.Consumer accessPolicy> = v;
v = new com.github.benmanes.caffeine.cache.MpscGrowableArrayQueue;
v = <com.github.benmanes.caffeine.cache.BoundedLocalCache: int WRITE_BUFFER_MAX>;
specialinvoke v.<com.github.benmanes.caffeine.cache.MpscGrowableArrayQueue: void <init>(int,int)>(4, v);
v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.MpscGrowableArrayQueue writeBuffer> = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evicts()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Caffeine: long getMaximum()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setMaximumSize(long)>(v);
label:
return;
}
void requireIsAlive(java.lang.Object, com.github.benmanes.caffeine.cache.Node)
{
java.lang.IllegalStateException v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v;
java.lang.String v;
com.github.benmanes.caffeine.cache.Node v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean isAlive()>();
if v != 0 goto label;
v = new java.lang.IllegalStateException;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.String brokenEqualityMessage(java.lang.Object,com.github.benmanes.caffeine.cache.Node)>(v, v);
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
void logIfAlive(com.github.benmanes.caffeine.cache.Node)
{
java.lang.IllegalStateException v;
java.lang.System$Logger v;
java.lang.System$Logger$Level v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v;
java.lang.String v;
com.github.benmanes.caffeine.cache.Node v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean isAlive()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getKeyReference()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.String brokenEqualityMessage(java.lang.Object,com.github.benmanes.caffeine.cache.Node)>(v, v);
v = <com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.System$Logger logger>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level ERROR>;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>()>();
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Throwable)>(v, v, v);
label:
return;
}
java.lang.String brokenEqualityMessage(java.lang.Object, com.github.benmanes.caffeine.cache.Node)
{
java.lang.Object[] v;
java.util.Locale v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Class v, v, v;
java.lang.Object v;
java.lang.String v, v, v, v;
com.github.benmanes.caffeine.cache.Node v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v = <java.util.Locale: java.util.Locale US>;
v = newarray (java.lang.Object)[4];
v[0] = v;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v[1] = v;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getSimpleName()>();
v[2] = v;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getSimpleName()>();
v[3] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.util.Locale,java.lang.String,java.lang.Object[])>(v, "An invalid state was detected, occurring when the key\'s equals or hashCode was modified while residing in the cache. This violation of the Map contract can lead to non-deterministic behavior (key: %s, key type: %s, node type: %s, cache type: %s).", v);
return v;
}
public boolean isAsync()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean isAsync>;
return v;
}
final boolean isComputingAsync(com.github.benmanes.caffeine.cache.Node)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v;
com.github.benmanes.caffeine.cache.Node v;
boolean v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean isAsync>;
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getValue()>();
v = staticinvoke <com.github.benmanes.caffeine.cache.Async: boolean isReady(java.util.concurrent.CompletableFuture)>(v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderWindowDeque()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProbationDeque()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProtectedDeque()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected com.github.benmanes.caffeine.cache.WriteOrderDeque writeOrderDeque()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
public final java.util.concurrent.Executor executor()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.util.concurrent.Executor v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.Executor executor>;
return v;
}
public java.util.concurrent.ConcurrentMap refreshes()
{
java.lang.invoke.VarHandle v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.util.concurrent.ConcurrentHashMap v;
boolean v;
java.util.concurrent.ConcurrentMap v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentMap refreshes>;
if v != null goto label;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v = v;
v = <com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.invoke.VarHandle REFRESHES>;
v = virtualinvoke v.<java.lang.invoke.VarHandle: boolean compareAndSet(com.github.benmanes.caffeine.cache.BoundedLocalCache,java.lang.Void,java.util.concurrent.ConcurrentMap)>(v, null, v);
if v != 0 goto label;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentMap refreshes>;
label:
return v;
}
void discardRefresh(java.lang.Object)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v;
boolean v;
java.util.concurrent.ConcurrentMap v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentMap refreshes>;
if v == null goto label;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object remove(java.lang.Object)>(v);
label:
return;
}
public java.lang.Object referenceKey(java.lang.Object)
{
com.github.benmanes.caffeine.cache.NodeFactory v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: java.lang.Object newLookupKey(java.lang.Object)>(v);
return v;
}
public boolean isPendingEviction(java.lang.Object)
{
com.github.benmanes.caffeine.cache.Ticker v;
java.util.concurrent.ConcurrentHashMap v;
long v;
com.github.benmanes.caffeine.cache.NodeFactory v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v;
boolean v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: java.lang.Object newLookupKey(java.lang.Object)>(v);
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getValue()>();
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Ticker: long read()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean hasExpired(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isRecordingStats()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
return 0;
}
public com.github.benmanes.caffeine.cache.stats.StatsCounter statsCounter()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
com.github.benmanes.caffeine.cache.stats.StatsCounter v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = staticinvoke <com.github.benmanes.caffeine.cache.stats.StatsCounter: com.github.benmanes.caffeine.cache.stats.StatsCounter disabledStatsCounter()>();
return v;
}
public com.github.benmanes.caffeine.cache.Ticker statsTicker()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
com.github.benmanes.caffeine.cache.Ticker v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = staticinvoke <com.github.benmanes.caffeine.cache.Ticker: com.github.benmanes.caffeine.cache.Ticker disabledTicker()>();
return v;
}
protected com.github.benmanes.caffeine.cache.RemovalListener removalListener()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
return null;
}
protected boolean hasRemovalListener()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
return 0;
}
public void notifyRemoval(java.lang.Object, java.lang.Object, com.github.benmanes.caffeine.cache.RemovalCause)
{
java.lang.Throwable v;
java.lang.System$Logger v;
java.util.concurrent.Executor v;
java.lang.Runnable v;
java.lang.System$Logger$Level v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v;
boolean v;
com.github.benmanes.caffeine.cache.RemovalCause v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: com.github.benmanes.caffeine.cache.RemovalCause;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean hasRemovalListener()>();
if v != 0 goto label;
return;
label:
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_notifyRemoval_1__20: java.lang.Runnable bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache,java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.RemovalCause)>(v, v, v, v);
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.Executor executor>;
interfaceinvoke v.<java.util.concurrent.Executor: void execute(java.lang.Runnable)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.System$Logger logger>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level ERROR>;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Throwable)>(v, "Exception thrown when submitting removal listener", v);
interfaceinvoke v.<java.lang.Runnable: void run()>();
label:
return;
catch java.lang.Throwable from label to label with label;
}
void notifyEviction(java.lang.Object, java.lang.Object, com.github.benmanes.caffeine.cache.RemovalCause)
{
java.lang.Throwable v;
java.lang.System$Logger v;
java.lang.System$Logger$Level v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v;
com.github.benmanes.caffeine.cache.RemovalListener v, v;
com.github.benmanes.caffeine.cache.RemovalCause v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: com.github.benmanes.caffeine.cache.RemovalCause;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.RemovalListener evictionListener>;
if v != null goto label;
return;
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.RemovalListener evictionListener>;
interfaceinvoke v.<com.github.benmanes.caffeine.cache.RemovalListener: void onRemoval(java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.RemovalCause)>(v, v, v);
label:
goto label;
label:
v := @caughtexception;
v = <com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.System$Logger logger>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level WARNING>;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Throwable)>(v, "Exception thrown by eviction listener", v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
protected boolean collectKeys()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
return 0;
}
protected boolean collectValues()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
return 0;
}
protected java.lang.ref.ReferenceQueue keyReferenceQueue()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
return null;
}
protected java.lang.ref.ReferenceQueue valueReferenceQueue()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
return null;
}
protected com.github.benmanes.caffeine.cache.Pacer pacer()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
return null;
}
protected boolean expiresVariable()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
return 0;
}
protected boolean expiresAfterAccess()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
return 0;
}
protected long expiresAfterAccessNanos()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected void setExpiresAfterAccessNanos(long)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
long v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: long;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected boolean expiresAfterWrite()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
return 0;
}
protected long expiresAfterWriteNanos()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected void setExpiresAfterWriteNanos(long)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
long v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: long;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected boolean refreshAfterWrite()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
return 0;
}
protected long refreshAfterWriteNanos()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected void setRefreshAfterWriteNanos(long)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
long v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: long;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
public com.github.benmanes.caffeine.cache.Expiry expiry()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
return null;
}
public com.github.benmanes.caffeine.cache.Ticker expirationTicker()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
com.github.benmanes.caffeine.cache.Ticker v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = staticinvoke <com.github.benmanes.caffeine.cache.Ticker: com.github.benmanes.caffeine.cache.Ticker disabledTicker()>();
return v;
}
protected com.github.benmanes.caffeine.cache.TimerWheel timerWheel()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected boolean evicts()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
return 0;
}
protected boolean isWeighted()
{
com.github.benmanes.caffeine.cache.Weigher v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Weigher weigher>;
v = staticinvoke <com.github.benmanes.caffeine.cache.Weigher: com.github.benmanes.caffeine.cache.Weigher singletonWeigher()>();
if v == v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
protected com.github.benmanes.caffeine.cache.FrequencySketch frequencySketch()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected boolean fastpath()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
return 0;
}
protected long maximum()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected long windowMaximum()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected long mainProtectedMaximum()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected void setMaximum(long)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
long v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: long;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected void setWindowMaximum(long)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
long v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: long;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected void setMainProtectedMaximum(long)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
long v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: long;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected long weightedSize()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected long windowWeightedSize()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected long mainProtectedWeightedSize()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected void setWeightedSize(long)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
long v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: long;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected void setWindowWeightedSize(long)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
long v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: long;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected void setMainProtectedWeightedSize(long)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
long v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: long;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected int hitsInSample()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected int missesInSample()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected int sampleCount()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected double stepSize()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected double previousSampleHitRate()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected long adjustment()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected void setHitsInSample(int)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
int v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: int;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected void setMissesInSample(int)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
int v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: int;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected void setSampleCount(int)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
int v;
java.lang.UnsupportedOperationException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: int;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected void setStepSize(double)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
double v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: double;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected void setPreviousSampleHitRate(double)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
double v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: double;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
protected void setAdjustment(long)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.UnsupportedOperationException v;
long v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: long;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
void setMaximumSize(long)
{
java.lang.Object[] v;
long v, v, v, v, v, v, v;
byte v, v, v;
com.github.benmanes.caffeine.cache.FrequencySketch v, v;
boolean v, v;
double v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: long;
v = v cmp 0L;
if v < 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = newarray (java.lang.Object)[0];
staticinvoke <com.github.benmanes.caffeine.cache.Caffeine: void requireArgument(boolean,java.lang.String,java.lang.Object[])>(v, "maximum must not be negative", v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long maximum()>();
v = v cmp v;
if v != 0 goto label;
return;
label:
v = staticinvoke <java.lang.Math: long min(long,long)>(v, 9223372034707292160L);
v = 0.99 * v;
v = v - v;
v = v - v;
v = 0.8 * v;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setMaximum(long)>(v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setWindowMaximum(long)>(v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setMainProtectedMaximum(long)>(v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setHitsInSample(int)>(0);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setMissesInSample(int)>(0);
v = -0.0625 * v;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setStepSize(double)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.FrequencySketch frequencySketch()>();
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean isWeighted()>();
if v != 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long weightedSize()>();
v = v >>> 1;
v = v cmp v;
if v < 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.FrequencySketch frequencySketch()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.FrequencySketch: void ensureCapacity(long)>(v);
label:
return;
}
void evictEntries()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
com.github.benmanes.caffeine.cache.Node v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evicts()>();
if v != 0 goto label;
return;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Node evictFromWindow()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void evictFromMain(com.github.benmanes.caffeine.cache.Node)>(v);
return;
}
com.github.benmanes.caffeine.cache.Node evictFromWindow()
{
com.github.benmanes.caffeine.cache.AccessOrderDeque v, v, v;
long v, v, v, v;
byte v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
int v, v;
java.lang.Object v;
com.github.benmanes.caffeine.cache.Node v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = null;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderWindowDeque()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: java.lang.Object peekFirst()>();
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long windowWeightedSize()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long windowMaximum()>();
v = v cmp v;
if v <= 0 goto label;
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: com.github.benmanes.caffeine.cache.Node getNextInAccessOrder()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: int getPolicyWeight()>();
if v == 0 goto label;
virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: void makeMainProbation()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderWindowDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: boolean remove(com.github.benmanes.caffeine.cache.AccessOrderDeque$AccessOrder)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProbationDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: boolean offerLast(java.lang.Object)>(v);
if v != null goto label;
v = v;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long windowWeightedSize()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: int getPolicyWeight()>();
v = v - v;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setWindowWeightedSize(long)>(v);
label:
v = v;
goto label;
label:
return v;
}
void evictFromMain(com.github.benmanes.caffeine.cache.Node)
{
byte v, v, v;
com.github.benmanes.caffeine.cache.Node v, v, v, v, v, v, v, v, v, v, v;
boolean v, v, v, v;
com.github.benmanes.caffeine.cache.RemovalCause v, v, v, v, v, v, v, v, v, v;
long v, v, v;
int v, v, v;
com.github.benmanes.caffeine.cache.AccessOrderDeque v, v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v = 1;
v = 1;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProbationDeque()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: java.lang.Object peekFirst()>();
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long weightedSize()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long maximum()>();
v = v cmp v;
if v <= 0 goto label;
if v != null goto label;
if v != 1 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderWindowDeque()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: java.lang.Object peekFirst()>();
v = 0;
label:
if v != null goto label;
if v != null goto label;
if v != 1 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProtectedDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: java.lang.Object peekFirst()>();
v = 2;
goto label;
label:
if v != 2 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderWindowDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: java.lang.Object peekFirst()>();
v = 0;
goto label;
label:
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: int getPolicyWeight()>();
if v != 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: com.github.benmanes.caffeine.cache.Node getNextInAccessOrder()>();
goto label;
label:
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: int getPolicyWeight()>();
if v != 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: com.github.benmanes.caffeine.cache.Node getNextInAccessOrder()>();
goto label;
label:
if v != null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: com.github.benmanes.caffeine.cache.Node getNextInAccessOrder()>();
v = v;
v = v;
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause SIZE>;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evictEntry(com.github.benmanes.caffeine.cache.Node,com.github.benmanes.caffeine.cache.RemovalCause,long)>(v, v, 0L);
goto label;
label:
if v != null goto label;
v = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: com.github.benmanes.caffeine.cache.Node getNextInAccessOrder()>();
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause SIZE>;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evictEntry(com.github.benmanes.caffeine.cache.Node,com.github.benmanes.caffeine.cache.RemovalCause,long)>(v, v, 0L);
goto label;
label:
if v != v goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: com.github.benmanes.caffeine.cache.Node getNextInAccessOrder()>();
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause SIZE>;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evictEntry(com.github.benmanes.caffeine.cache.Node,com.github.benmanes.caffeine.cache.RemovalCause,long)>(v, v, 0L);
v = null;
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getKey()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getKey()>();
if v != null goto label;
v = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: com.github.benmanes.caffeine.cache.Node getNextInAccessOrder()>();
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause COLLECTED>;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evictEntry(com.github.benmanes.caffeine.cache.Node,com.github.benmanes.caffeine.cache.RemovalCause,long)>(v, v, 0L);
goto label;
label:
if v != null goto label;
v = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: com.github.benmanes.caffeine.cache.Node getNextInAccessOrder()>();
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause COLLECTED>;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evictEntry(com.github.benmanes.caffeine.cache.Node,com.github.benmanes.caffeine.cache.RemovalCause,long)>(v, v, 0L);
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean isAlive()>();
if v != 0 goto label;
v = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: com.github.benmanes.caffeine.cache.Node getNextInAccessOrder()>();
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause SIZE>;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evictEntry(com.github.benmanes.caffeine.cache.Node,com.github.benmanes.caffeine.cache.RemovalCause,long)>(v, v, 0L);
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean isAlive()>();
if v != 0 goto label;
v = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: com.github.benmanes.caffeine.cache.Node getNextInAccessOrder()>();
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause SIZE>;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evictEntry(com.github.benmanes.caffeine.cache.Node,com.github.benmanes.caffeine.cache.RemovalCause,long)>(v, v, 0L);
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: int getPolicyWeight()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long maximum()>();
v = v cmp v;
if v <= 0 goto label;
v = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: com.github.benmanes.caffeine.cache.Node getNextInAccessOrder()>();
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause SIZE>;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evictEntry(com.github.benmanes.caffeine.cache.Node,com.github.benmanes.caffeine.cache.RemovalCause,long)>(v, v, 0L);
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean admit(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
v = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: com.github.benmanes.caffeine.cache.Node getNextInAccessOrder()>();
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause SIZE>;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evictEntry(com.github.benmanes.caffeine.cache.Node,com.github.benmanes.caffeine.cache.RemovalCause,long)>(v, v, 0L);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: com.github.benmanes.caffeine.cache.Node getNextInAccessOrder()>();
goto label;
label:
v = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: com.github.benmanes.caffeine.cache.Node getNextInAccessOrder()>();
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause SIZE>;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evictEntry(com.github.benmanes.caffeine.cache.Node,com.github.benmanes.caffeine.cache.RemovalCause,long)>(v, v, 0L);
goto label;
label:
return;
}
boolean admit(java.lang.Object, java.lang.Object)
{
java.util.concurrent.ThreadLocalRandom v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
int v, v, v, v;
com.github.benmanes.caffeine.cache.FrequencySketch v, v;
java.lang.Object v, v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.FrequencySketch frequencySketch()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.FrequencySketch: int frequency(java.lang.Object)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.FrequencySketch frequencySketch()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.FrequencySketch: int frequency(java.lang.Object)>(v);
if v <= v goto label;
return 1;
label:
if v < 6 goto label;
v = staticinvoke <java.util.concurrent.ThreadLocalRandom: java.util.concurrent.ThreadLocalRandom current()>();
v = virtualinvoke v.<java.util.concurrent.ThreadLocalRandom: int nextInt()>();
v = v & 127;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
return 0;
}
void expireEntries()
{
com.github.benmanes.caffeine.cache.Pacer v;
com.github.benmanes.caffeine.cache.Ticker v;
java.util.concurrent.Executor v;
long v, v;
byte v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
com.github.benmanes.caffeine.cache.BoundedLocalCache$PerformCleanupTask v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Ticker: long read()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void expireAfterAccessEntries(long)>(v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void expireAfterWriteEntries(long)>(v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void expireVariableEntries(long)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Pacer pacer()>();
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long getExpirationDelay(long)>(v);
v = v cmp 9223372036854775807L;
if v != 0 goto label;
virtualinvoke v.<com.github.benmanes.caffeine.cache.Pacer: void cancel()>();
goto label;
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.Executor executor>;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.BoundedLocalCache$PerformCleanupTask drainBuffersTask>;
virtualinvoke v.<com.github.benmanes.caffeine.cache.Pacer: void schedule(java.util.concurrent.Executor,java.lang.Runnable,long,long)>(v, v, v, v);
label:
return;
}
void expireAfterAccessEntries(long)
{
com.github.benmanes.caffeine.cache.AccessOrderDeque v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
long v;
boolean v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: long;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterAccess()>();
if v != 0 goto label;
return;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderWindowDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void expireAfterAccessEntries(com.github.benmanes.caffeine.cache.AccessOrderDeque,long)>(v, v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evicts()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProbationDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void expireAfterAccessEntries(com.github.benmanes.caffeine.cache.AccessOrderDeque,long)>(v, v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProtectedDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void expireAfterAccessEntries(com.github.benmanes.caffeine.cache.AccessOrderDeque,long)>(v, v);
label:
return;
}
void expireAfterAccessEntries(com.github.benmanes.caffeine.cache.AccessOrderDeque, long)
{
com.github.benmanes.caffeine.cache.AccessOrderDeque v;
long v, v, v, v;
byte v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v;
boolean v;
com.github.benmanes.caffeine.cache.RemovalCause v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.AccessOrderDeque;
v := @parameter: long;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long expiresAfterAccessNanos()>();
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: java.lang.Object peekFirst()>();
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: long getAccessTime()>();
v = v - v;
v = v cmp v;
if v < 0 goto label;
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause EXPIRED>;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evictEntry(com.github.benmanes.caffeine.cache.Node,com.github.benmanes.caffeine.cache.RemovalCause,long)>(v, v, v);
if v != 0 goto label;
label:
return;
}
void expireAfterWriteEntries(long)
{
long v, v, v, v;
com.github.benmanes.caffeine.cache.WriteOrderDeque v;
byte v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v;
boolean v, v;
com.github.benmanes.caffeine.cache.RemovalCause v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: long;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterWrite()>();
if v != 0 goto label;
return;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long expiresAfterWriteNanos()>();
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.WriteOrderDeque writeOrderDeque()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.WriteOrderDeque: java.lang.Object peekFirst()>();
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: long getWriteTime()>();
v = v - v;
v = v cmp v;
if v < 0 goto label;
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause EXPIRED>;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evictEntry(com.github.benmanes.caffeine.cache.Node,com.github.benmanes.caffeine.cache.RemovalCause,long)>(v, v, v);
if v != 0 goto label;
label:
return;
}
void expireVariableEntries(long)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
com.github.benmanes.caffeine.cache.TimerWheel v;
long v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: long;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresVariable()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.TimerWheel timerWheel()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.TimerWheel: void advance(com.github.benmanes.caffeine.cache.BoundedLocalCache,long)>(v, v);
label:
return;
}
long getExpirationDelay(long)
{
boolean v, v, v, v;
com.github.benmanes.caffeine.cache.WriteOrderDeque v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
com.github.benmanes.caffeine.cache.AccessOrderDeque v, v, v;
com.github.benmanes.caffeine.cache.TimerWheel v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: long;
v = 9223372036854775807L;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterAccess()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderWindowDeque()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: java.lang.Object peekFirst()>();
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long expiresAfterAccessNanos()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: long getAccessTime()>();
v = v - v;
v = v - v;
v = staticinvoke <java.lang.Math: long min(long,long)>(9223372036854775807L, v);
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evicts()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProbationDeque()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: java.lang.Object peekFirst()>();
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long expiresAfterAccessNanos()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: long getAccessTime()>();
v = v - v;
v = v - v;
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProtectedDeque()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: java.lang.Object peekFirst()>();
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long expiresAfterAccessNanos()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: long getAccessTime()>();
v = v - v;
v = v - v;
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterWrite()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.WriteOrderDeque writeOrderDeque()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.WriteOrderDeque: java.lang.Object peekFirst()>();
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long expiresAfterWriteNanos()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: long getWriteTime()>();
v = v - v;
v = v - v;
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresVariable()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.TimerWheel timerWheel()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.TimerWheel: long getExpirationDelay()>();
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
label:
return v;
}
boolean hasExpired(com.github.benmanes.caffeine.cache.Node, long)
{
long v, v, v, v, v, v, v, v, v;
byte v, v, v;
com.github.benmanes.caffeine.cache.Node v;
boolean v, v, v, v, v, v, v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v := @parameter: long;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean isComputingAsync(com.github.benmanes.caffeine.cache.Node)>(v);
if v == 0 goto label;
return 0;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterAccess()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: long getAccessTime()>();
v = v - v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long expiresAfterAccessNanos()>();
v = v cmp v;
if v < 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterWrite()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: long getWriteTime()>();
v = v - v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long expiresAfterWriteNanos()>();
v = v cmp v;
if v < 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v | v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresVariable()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: long getVariableTime()>();
v = v - v;
v = v cmp 0L;
if v < 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v | v;
return v;
}
boolean evictEntry(com.github.benmanes.caffeine.cache.Node, com.github.benmanes.caffeine.cache.RemovalCause, long)
{
java.util.function.BiFunction v;
com.github.benmanes.caffeine.cache.RemovalCause[] v;
com.github.benmanes.caffeine.cache.Node v;
boolean v, v, v, v, v, v, v, v, v;
com.github.benmanes.caffeine.cache.RemovalCause v, v, v;
java.util.concurrent.ConcurrentHashMap v;
com.github.benmanes.caffeine.cache.WriteOrderDeque v;
java.lang.Throwable v;
java.lang.Object[] v;
long v;
int v;
com.github.benmanes.caffeine.cache.stats.StatsCounter v;
com.github.benmanes.caffeine.cache.AccessOrderDeque v, v, v;
boolean[] v, v;
com.github.benmanes.caffeine.cache.TimerWheel v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v := @parameter: com.github.benmanes.caffeine.cache.RemovalCause;
v := @parameter: long;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getKey()>();
v = newarray (java.lang.Object)[1];
v = newarray (boolean)[1];
v = newarray (boolean)[1];
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getKeyReference()>();
v = newarray (com.github.benmanes.caffeine.cache.RemovalCause)[1];
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_evictEntry_2__21: java.util.function.BiFunction bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache,com.github.benmanes.caffeine.cache.Node,java.lang.Object[],java.lang.Object,com.github.benmanes.caffeine.cache.RemovalCause[],com.github.benmanes.caffeine.cache.RemovalCause,boolean[],long,java.lang.Object,boolean[])>(v, v, v, v, v, v, v, v, v, v);
virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object computeIfPresent(java.lang.Object,java.util.function.BiFunction)>(v, v);
v = v[0];
if v == 0 goto label;
return 0;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean inWindow()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evicts()>();
if v != 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterAccess()>();
if v == 0 goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderWindowDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: boolean remove(com.github.benmanes.caffeine.cache.AccessOrderDeque$AccessOrder)>(v);
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evicts()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean inMainProbation()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProbationDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: boolean remove(com.github.benmanes.caffeine.cache.AccessOrderDeque$AccessOrder)>(v);
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProtectedDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: boolean remove(com.github.benmanes.caffeine.cache.AccessOrderDeque$AccessOrder)>(v);
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterWrite()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.WriteOrderDeque writeOrderDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.WriteOrderDeque: boolean remove(com.github.benmanes.caffeine.cache.WriteOrderDeque$WriteOrder)>(v);
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresVariable()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.TimerWheel timerWheel()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.TimerWheel: void deschedule(com.github.benmanes.caffeine.cache.Node)>(v);
label:
entermonitor v;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void logIfAlive(com.github.benmanes.caffeine.cache.Node)>(v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void makeDead(com.github.benmanes.caffeine.cache.Node)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v[0];
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.stats.StatsCounter statsCounter()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: int getWeight()>();
v = v[0];
interfaceinvoke v.<com.github.benmanes.caffeine.cache.stats.StatsCounter: void recordEviction(int,com.github.benmanes.caffeine.cache.RemovalCause)>(v, v);
v = v[0];
v = v[0];
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void notifyRemoval(java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.RemovalCause)>(v, v, v);
label:
return 1;
catch java.lang.Throwable from label to label with label;
}
void climb()
{
byte v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
long v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evicts()>();
if v != 0 goto label;
return;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void determineAdjustment()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void demoteFromMainProtected()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long adjustment()>();
v = v cmp 0L;
if v != 0 goto label;
return;
label:
v = v cmp 0L;
if v <= 0 goto label;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void increaseWindow()>();
goto label;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void decreaseWindow()>();
label:
return;
}
void determineAdjustment()
{
long v;
byte v, v, v, v;
int v, v, v, v, v;
com.github.benmanes.caffeine.cache.FrequencySketch v, v;
boolean v;
double v, v, v, v, v, v, v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.FrequencySketch frequencySketch()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.FrequencySketch: boolean isNotInitialized()>();
if v == 0 goto label;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setPreviousSampleHitRate(double)>(0.0);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setMissesInSample(int)>(0);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setHitsInSample(int)>(0);
return;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: int hitsInSample()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: int missesInSample()>();
v = v + v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.FrequencySketch frequencySketch()>();
v = v.<com.github.benmanes.caffeine.cache.FrequencySketch: int sampleSize>;
if v >= v goto label;
return;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: int hitsInSample()>();
v = v / v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: double previousSampleHitRate()>();
v = v - v;
v = v cmpl 0.0;
if v < 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: double stepSize()>();
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: double stepSize()>();
v = neg v;
label:
v = v;
v = staticinvoke <java.lang.Math: double abs(double)>(v);
v = v cmpl 0.05;
if v < 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long maximum()>();
v = 0.0625 * v;
v = v cmpl 0.0;
if v < 0 goto label;
v = 1;
goto label;
label:
v = -1;
label:
v = v * v;
goto label;
label:
v = 0.98 * v;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setPreviousSampleHitRate(double)>(v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setAdjustment(long)>(v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setStepSize(double)>(v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setMissesInSample(int)>(0);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setHitsInSample(int)>(0);
return;
}
void increaseWindow()
{
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
byte v, v, v;
int v, v, v;
boolean v;
com.github.benmanes.caffeine.cache.AccessOrderDeque v, v, v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long mainProtectedMaximum()>();
v = v cmp 0L;
if v != 0 goto label;
return;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long adjustment()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long mainProtectedMaximum()>();
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long mainProtectedMaximum()>();
v = v - v;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setMainProtectedMaximum(long)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long windowMaximum()>();
v = v + v;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setWindowMaximum(long)>(v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void demoteFromMainProtected()>();
v = 0;
label:
if v >= 1000 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProbationDeque()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: java.lang.Object peekFirst()>();
v = 1;
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: int getPolicyWeight()>();
v = v cmp v;
if v >= 0 goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProtectedDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: java.lang.Object peekFirst()>();
v = 0;
label:
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: int getPolicyWeight()>();
v = v cmp v;
if v < 0 goto label;
v = v - v;
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProbationDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: boolean remove(com.github.benmanes.caffeine.cache.AccessOrderDeque$AccessOrder)>(v);
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long mainProtectedWeightedSize()>();
v = v - v;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setMainProtectedWeightedSize(long)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProtectedDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: boolean remove(com.github.benmanes.caffeine.cache.AccessOrderDeque$AccessOrder)>(v);
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long windowWeightedSize()>();
v = v + v;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setWindowWeightedSize(long)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderWindowDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: boolean offerLast(java.lang.Object)>(v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: void makeWindow()>();
v = v + 1;
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long mainProtectedMaximum()>();
v = v + v;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setMainProtectedMaximum(long)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long windowMaximum()>();
v = v - v;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setWindowMaximum(long)>(v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setAdjustment(long)>(v);
return;
}
void decreaseWindow()
{
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
byte v, v;
int v, v;
com.github.benmanes.caffeine.cache.AccessOrderDeque v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long windowMaximum()>();
v = v cmp 1L;
if v > 0 goto label;
return;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long adjustment()>();
v = neg v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long windowMaximum()>();
v = v - 1L;
v = staticinvoke <java.lang.Math: long max(long,long)>(0L, v);
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long mainProtectedMaximum()>();
v = v + v;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setMainProtectedMaximum(long)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long windowMaximum()>();
v = v - v;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setWindowMaximum(long)>(v);
v = 0;
label:
if v >= 1000 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderWindowDeque()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: java.lang.Object peekFirst()>();
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: int getPolicyWeight()>();
v = v cmp v;
if v < 0 goto label;
v = v - v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long windowWeightedSize()>();
v = v - v;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setWindowWeightedSize(long)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderWindowDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: boolean remove(com.github.benmanes.caffeine.cache.AccessOrderDeque$AccessOrder)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProbationDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: boolean offerLast(java.lang.Object)>(v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: void makeMainProbation()>();
v = v + 1;
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long mainProtectedMaximum()>();
v = v - v;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setMainProtectedMaximum(long)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long windowMaximum()>();
v = v + v;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setWindowMaximum(long)>(v);
v = neg v;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setAdjustment(long)>(v);
return;
}
void demoteFromMainProtected()
{
com.github.benmanes.caffeine.cache.AccessOrderDeque v, v;
long v, v;
byte v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
int v, v;
java.lang.Object v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long mainProtectedMaximum()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long mainProtectedWeightedSize()>();
v = v cmp v;
if v > 0 goto label;
return;
label:
v = 0;
label:
if v >= 1000 goto label;
v = v cmp v;
if v <= 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProtectedDeque()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: java.lang.Object poll()>();
if v == null goto label;
virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: void makeMainProbation()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProbationDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: boolean offerLast(java.lang.Object)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: int getPolicyWeight()>();
v = v - v;
v = v + 1;
goto label;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setMainProtectedWeightedSize(long)>(v);
return;
}
java.lang.Object afterRead(com.github.benmanes.caffeine.cache.Node, long, boolean)
{
com.github.benmanes.caffeine.cache.stats.StatsCounter v;
com.github.benmanes.caffeine.cache.Buffer v;
long v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
int v;
java.lang.Object v;
com.github.benmanes.caffeine.cache.Node v;
boolean v, v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v := @parameter: long;
v := @parameter: boolean;
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.stats.StatsCounter statsCounter()>();
interfaceinvoke v.<com.github.benmanes.caffeine.cache.stats.StatsCounter: void recordHits(int)>(1);
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean skipReadBuffer()>();
if v != 0 goto label;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Buffer readBuffer>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Buffer: int offer(java.lang.Object)>(v);
if v == 1 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean shouldDrainBuffers(boolean)>(v);
if v == 0 goto label;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void scheduleDrainBuffers()>();
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object refreshIfNeeded(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
return v;
}
boolean skipReadBuffer()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
com.github.benmanes.caffeine.cache.FrequencySketch v;
boolean v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean fastpath()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.FrequencySketch frequencySketch()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.FrequencySketch: boolean isNotInitialized()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
java.lang.Object refreshIfNeeded(com.github.benmanes.caffeine.cache.Node, long)
{
java.lang.Throwable v;
java.util.function.BiFunction v;
java.util.concurrent.CompletableFuture v, v, v;
long v, v, v, v, v, v;
java.util.function.Function v;
java.util.concurrent.ConcurrentMap v;
long[] v;
byte v, v;
java.util.concurrent.CompletableFuture[] v;
com.github.benmanes.caffeine.cache.Node v;
boolean v, v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v := @parameter: long;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean refreshAfterWrite()>();
if v != 0 goto label;
return null;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: long getWriteTime()>();
v = v | 1L;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getKeyReference()>();
v = v - v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long refreshAfterWriteNanos()>();
v = v cmp v;
if v <= 0 goto label;
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getKey()>();
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getValue()>();
if v == null goto label;
v = v & 1L;
v = v cmp 0L;
if v != 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentMap refreshes()>();
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: boolean containsKey(java.lang.Object)>(v);
if v != 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean isAlive()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean casWriteTime(long,long)>(v, v);
if v == 0 goto label;
v = newarray (long)[1];
v = newarray (java.util.concurrent.CompletableFuture)[1];
label:
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_refreshIfNeeded_3__22: java.util.function.Function bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache,long[],java.lang.Object,java.lang.Object,java.util.concurrent.CompletableFuture[])>(v, v, v, v, v);
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean casWriteTime(long,long)>(v, v);
goto label;
label:
v := @caughtexception;
virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean casWriteTime(long,long)>(v, v);
throw v;
label:
v = v[0];
if v != null goto label;
return null;
label:
v = v[0];
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_refreshIfNeeded_5__23: java.util.function.BiFunction bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache,long[],java.util.concurrent.ConcurrentMap,java.lang.Object,java.util.concurrent.CompletableFuture[],java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.Node,long)>(v, v, v, v, v, v, v, v, v);
v = virtualinvoke v.<java.util.concurrent.CompletableFuture: java.util.concurrent.CompletableFuture handle(java.util.function.BiFunction)>(v);
v = staticinvoke <com.github.benmanes.caffeine.cache.Async: java.lang.Object getIfReady(java.util.concurrent.CompletableFuture)>(v);
return v;
label:
return null;
catch java.lang.Throwable from label to label with label;
}
long expireAfterCreate(java.lang.Object, java.lang.Object, com.github.benmanes.caffeine.cache.Expiry, long)
{
long v, v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v;
com.github.benmanes.caffeine.cache.Expiry v;
boolean v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: com.github.benmanes.caffeine.cache.Expiry;
v := @parameter: long;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresVariable()>();
if v == 0 goto label;
if v == null goto label;
if v == null goto label;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Expiry: long expireAfterCreate(java.lang.Object,java.lang.Object,long)>(v, v, v);
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean isAsync>;
if v == 0 goto label;
v = v + v;
goto label;
label:
v = staticinvoke <java.lang.Math: long min(long,long)>(v, 4611686018427387903L);
v = v + v;
label:
return v;
label:
return 0L;
}
long expireAfterUpdate(com.github.benmanes.caffeine.cache.Node, java.lang.Object, java.lang.Object, com.github.benmanes.caffeine.cache.Expiry, long)
{
long v, v, v, v, v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v;
com.github.benmanes.caffeine.cache.Expiry v;
com.github.benmanes.caffeine.cache.Node v;
boolean v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: com.github.benmanes.caffeine.cache.Expiry;
v := @parameter: long;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresVariable()>();
if v == 0 goto label;
if v == null goto label;
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: long getVariableTime()>();
v = v - v;
v = staticinvoke <java.lang.Math: long max(long,long)>(1L, v);
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Expiry: long expireAfterUpdate(java.lang.Object,java.lang.Object,long,long)>(v, v, v, v);
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean isAsync>;
if v == 0 goto label;
v = v + v;
goto label;
label:
v = staticinvoke <java.lang.Math: long min(long,long)>(v, 4611686018427387903L);
v = v + v;
label:
return v;
label:
return 0L;
}
long expireAfterRead(com.github.benmanes.caffeine.cache.Node, java.lang.Object, java.lang.Object, com.github.benmanes.caffeine.cache.Expiry, long)
{
long v, v, v, v, v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v;
com.github.benmanes.caffeine.cache.Expiry v;
com.github.benmanes.caffeine.cache.Node v;
boolean v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: com.github.benmanes.caffeine.cache.Expiry;
v := @parameter: long;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresVariable()>();
if v == 0 goto label;
if v == null goto label;
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: long getVariableTime()>();
v = v - v;
v = staticinvoke <java.lang.Math: long max(long,long)>(1L, v);
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Expiry: long expireAfterRead(java.lang.Object,java.lang.Object,long,long)>(v, v, v, v);
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean isAsync>;
if v == 0 goto label;
v = v + v;
goto label;
label:
v = staticinvoke <java.lang.Math: long min(long,long)>(v, 4611686018427387903L);
v = v + v;
label:
return v;
label:
return 0L;
}
void tryExpireAfterRead(com.github.benmanes.caffeine.cache.Node, java.lang.Object, java.lang.Object, com.github.benmanes.caffeine.cache.Expiry, long)
{
long v, v, v, v, v, v, v;
byte v, v;
com.github.benmanes.caffeine.cache.Expiry v;
com.github.benmanes.caffeine.cache.Node v;
boolean v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: com.github.benmanes.caffeine.cache.Expiry;
v := @parameter: long;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresVariable()>();
if v == 0 goto label;
if v == null goto label;
if v != null goto label;
label:
return;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: long getVariableTime()>();
v = v - v;
v = staticinvoke <java.lang.Math: long max(long,long)>(1L, v);
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean isAsync>;
if v == 0 goto label;
v = v cmp 4611686018427387903L;
if v <= 0 goto label;
return;
label:
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Expiry: long expireAfterRead(java.lang.Object,java.lang.Object,long,long)>(v, v, v, v);
v = v cmp v;
if v == 0 goto label;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean isAsync>;
if v == 0 goto label;
v = v + v;
goto label;
label:
v = staticinvoke <java.lang.Math: long min(long,long)>(v, 4611686018427387903L);
v = v + v;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean casVariableTime(long,long)>(v, v);
label:
return;
}
void setVariableTime(com.github.benmanes.caffeine.cache.Node, long)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
long v;
com.github.benmanes.caffeine.cache.Node v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v := @parameter: long;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresVariable()>();
if v == 0 goto label;
virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: void setVariableTime(long)>(v);
label:
return;
}
void setWriteTime(com.github.benmanes.caffeine.cache.Node, long)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
long v, v;
com.github.benmanes.caffeine.cache.Node v;
boolean v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v := @parameter: long;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterWrite()>();
if v != 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean refreshAfterWrite()>();
if v == 0 goto label;
label:
v = v & -2L;
virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: void setWriteTime(long)>(v);
label:
return;
}
void setAccessTime(com.github.benmanes.caffeine.cache.Node, long)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
long v;
com.github.benmanes.caffeine.cache.Node v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v := @parameter: long;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterAccess()>();
if v == 0 goto label;
virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: void setAccessTime(long)>(v);
label:
return;
}
void afterWrite(java.lang.Runnable)
{
java.lang.Throwable v;
java.lang.System$Logger v;
java.util.concurrent.locks.ReentrantLock v, v, v;
java.lang.RuntimeException v;
java.lang.Runnable v;
java.lang.System$Logger$Level v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
com.github.benmanes.caffeine.cache.MpscGrowableArrayQueue v;
int v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Runnable;
v = 0;
label:
if v >= 100 goto label;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.MpscGrowableArrayQueue writeBuffer>;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.MpscGrowableArrayQueue: boolean offer(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void scheduleAfterWrite()>();
return;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void scheduleDrainBuffers()>();
staticinvoke <java.lang.Thread: void onSpinWait()>();
v = v + 1;
goto label;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void lock()>();
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void maintenance(java.lang.Runnable)>(v);
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = <com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.System$Logger logger>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level ERROR>;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Throwable)>(v, "Exception thrown when performing the maintenance task", v);
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void rescheduleCleanUpIfIncomplete()>();
return;
catch java.lang.RuntimeException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
void lock()
{
java.lang.Throwable v;
java.util.concurrent.TimeoutException v;
long v, v, v, v;
java.lang.System$Logger$Level v;
java.lang.Thread v, v, v;
boolean v, v;
java.lang.System$Logger v;
java.util.concurrent.locks.ReentrantLock v, v;
java.util.concurrent.TimeUnit v;
java.lang.InterruptedException v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = <com.github.benmanes.caffeine.cache.BoundedLocalCache: long WARN_AFTER_LOCK_WAIT_NANOS>;
v = staticinvoke <java.lang.System: long nanoTime()>();
v = v + v;
v = 0;
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit NANOSECONDS>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: boolean tryLock(long,java.util.concurrent.TimeUnit)>(v, v);
if v == 0 goto label;
label:
if v == 0 goto label;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
label:
return;
label:
v = <com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.System$Logger logger>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level WARNING>;
v = new java.util.concurrent.TimeoutException;
specialinvoke v.<java.util.concurrent.TimeoutException: void <init>()>();
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Throwable)>(v, "The cache is experiencing excessive wait times for acquiring the eviction lock. This may indicate that a long-running computation has halted eviction when trying to remove the victim entry. Consider using AsyncCache to decouple the computation from the map operation.", v);
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
if v == 0 goto label;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
label:
return;
label:
v := @caughtexception;
v = staticinvoke <java.lang.System: long nanoTime()>();
v = v - v;
v = 1;
goto label;
label:
v := @caughtexception;
if v == 0 goto label;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
label:
throw v;
catch java.lang.InterruptedException from label to label with label;
catch java.lang.InterruptedException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
void scheduleAfterWrite()
{
java.lang.IllegalStateException v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
int v;
java.lang.String v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: int drainStatusOpaque()>();
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean casDrainStatus(int,int)>(0, 1);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void scheduleDrainBuffers()>();
return;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void scheduleDrainBuffers()>();
return;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean casDrainStatus(int,int)>(2, 3);
if v == 0 goto label;
return;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: int drainStatusAcquire()>();
goto label;
label:
return;
label:
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Invalid drain status: \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
}
void scheduleDrainBuffers()
{
java.lang.Throwable v, v;
java.lang.System$Logger v;
java.util.concurrent.locks.ReentrantLock v, v, v, v, v;
java.util.concurrent.Executor v;
java.lang.System$Logger$Level v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
int v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache$PerformCleanupTask v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: int drainStatusOpaque()>();
if v < 2 goto label;
return;
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: boolean tryLock()>();
if v == 0 goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: int drainStatusOpaque()>();
if v < 2 goto label;
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
return;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setDrainStatusRelease(int)>(2);
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.Executor executor>;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.BoundedLocalCache$PerformCleanupTask drainBuffersTask>;
interfaceinvoke v.<java.util.concurrent.Executor: void execute(java.lang.Runnable)>(v);
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = <com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.System$Logger logger>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level WARNING>;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Throwable)>(v, "Exception thrown when submitting maintenance task", v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void maintenance(java.lang.Runnable)>(null);
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void cleanUp()
{
java.lang.System$Logger v;
java.lang.System$Logger$Level v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.RuntimeException v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void performCleanUp(java.lang.Runnable)>(null);
label:
goto label;
label:
v := @caughtexception;
v = <com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.System$Logger logger>;
v = <java.lang.System$Logger$Level: java.lang.System$Logger$Level ERROR>;
interfaceinvoke v.<java.lang.System$Logger: void log(java.lang.System$Logger$Level,java.lang.String,java.lang.Throwable)>(v, "Exception thrown when performing the maintenance task", v);
label:
return;
catch java.lang.RuntimeException from label to label with label;
}
void performCleanUp(java.lang.Runnable)
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantLock v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Runnable v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Runnable;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void maintenance(java.lang.Runnable)>(v);
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void rescheduleCleanUpIfIncomplete()>();
return;
catch java.lang.Throwable from label to label with label;
}
void rescheduleCleanUpIfIncomplete()
{
java.lang.Throwable v;
com.github.benmanes.caffeine.cache.Pacer v;
com.github.benmanes.caffeine.cache.Ticker v;
long v, v;
int v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache$PerformCleanupTask v;
boolean v, v, v;
java.util.concurrent.locks.ReentrantLock v, v, v;
java.util.concurrent.Executor v, v;
java.util.concurrent.ForkJoinPool v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: int drainStatusOpaque()>();
if v == 1 goto label;
return;
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.Executor executor>;
v = staticinvoke <java.util.concurrent.ForkJoinPool: java.util.concurrent.ForkJoinPool commonPool()>();
if v != v goto label;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void scheduleDrainBuffers()>();
return;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Pacer pacer()>();
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Pacer: boolean isScheduled()>();
if v != 0 goto label;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: boolean tryLock()>();
if v == 0 goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: int drainStatusOpaque()>();
if v != 1 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Pacer: boolean isScheduled()>();
if v != 0 goto label;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.Executor executor>;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.BoundedLocalCache$PerformCleanupTask drainBuffersTask>;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Ticker: long read()>();
v = <com.github.benmanes.caffeine.cache.Pacer: long TOLERANCE>;
virtualinvoke v.<com.github.benmanes.caffeine.cache.Pacer: void schedule(java.util.concurrent.Executor,java.lang.Runnable,long,long)>(v, v, v, v);
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
void maintenance(java.lang.Runnable)
{
java.lang.Throwable v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
int v, v;
java.lang.Runnable v;
boolean v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Runnable;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setDrainStatusRelease(int)>(2);
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void drainReadBuffer()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void drainWriteBuffer()>();
if v == null goto label;
interfaceinvoke v.<java.lang.Runnable: void run()>();
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void drainKeyReferences()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void drainValueReferences()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void expireEntries()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void evictEntries()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void climb()>();
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: int drainStatusOpaque()>();
if v != 2 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean casDrainStatus(int,int)>(2, 0);
if v != 0 goto label;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setDrainStatusOpaque(int)>(1);
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: int drainStatusOpaque()>();
if v != 2 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean casDrainStatus(int,int)>(2, 0);
if v != 0 goto label;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setDrainStatusOpaque(int)>(1);
label:
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
void drainKeyReferences()
{
java.lang.ref.Reference v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.util.concurrent.ConcurrentHashMap v;
java.lang.Object v;
java.lang.ref.ReferenceQueue v;
boolean v;
com.github.benmanes.caffeine.cache.RemovalCause v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean collectKeys()>();
if v != 0 goto label;
return;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.ref.ReferenceQueue keyReferenceQueue()>();
v = virtualinvoke v.<java.lang.ref.ReferenceQueue: java.lang.ref.Reference poll()>();
if v == null goto label;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause COLLECTED>;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evictEntry(com.github.benmanes.caffeine.cache.Node,com.github.benmanes.caffeine.cache.RemovalCause,long)>(v, v, 0L);
goto label;
label:
return;
}
void drainValueReferences()
{
java.util.concurrent.ConcurrentHashMap v;
java.lang.ref.ReferenceQueue v;
java.lang.ref.Reference v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v;
boolean v;
com.github.benmanes.caffeine.cache.RemovalCause v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean collectValues()>();
if v != 0 goto label;
return;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.ref.ReferenceQueue valueReferenceQueue()>();
v = virtualinvoke v.<java.lang.ref.ReferenceQueue: java.lang.ref.Reference poll()>();
if v == null goto label;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.References$InternalReference: java.lang.Object getKeyReference()>();
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getValueReference()>();
if v != v goto label;
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause COLLECTED>;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evictEntry(com.github.benmanes.caffeine.cache.Node,com.github.benmanes.caffeine.cache.RemovalCause,long)>(v, v, 0L);
goto label;
label:
return;
}
void drainReadBuffer()
{
java.util.function.Consumer v;
com.github.benmanes.caffeine.cache.Buffer v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean skipReadBuffer()>();
if v != 0 goto label;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Buffer readBuffer>;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.function.Consumer accessPolicy>;
interfaceinvoke v.<com.github.benmanes.caffeine.cache.Buffer: void drainTo(java.util.function.Consumer)>(v);
label:
return;
}
void onAccess(com.github.benmanes.caffeine.cache.Node)
{
com.github.benmanes.caffeine.cache.AccessOrderDeque v, v, v;
com.github.benmanes.caffeine.cache.TimerWheel v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
int v, v;
com.github.benmanes.caffeine.cache.FrequencySketch v;
java.lang.Object v;
com.github.benmanes.caffeine.cache.Node v;
boolean v, v, v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evicts()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getKey()>();
if v != null goto label;
return;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.FrequencySketch frequencySketch()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.FrequencySketch: void increment(java.lang.Object)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean inWindow()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderWindowDeque()>();
staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache: void reorder(com.github.benmanes.caffeine.cache.LinkedDeque,com.github.benmanes.caffeine.cache.Node)>(v, v);
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean inMainProbation()>();
if v == 0 goto label;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void reorderProbation(com.github.benmanes.caffeine.cache.Node)>(v);
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProtectedDeque()>();
staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache: void reorder(com.github.benmanes.caffeine.cache.LinkedDeque,com.github.benmanes.caffeine.cache.Node)>(v, v);
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: int hitsInSample()>();
v = v + 1;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setHitsInSample(int)>(v);
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterAccess()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderWindowDeque()>();
staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache: void reorder(com.github.benmanes.caffeine.cache.LinkedDeque,com.github.benmanes.caffeine.cache.Node)>(v, v);
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresVariable()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.TimerWheel timerWheel()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.TimerWheel: void reschedule(com.github.benmanes.caffeine.cache.Node)>(v);
label:
return;
}
void reorderProbation(com.github.benmanes.caffeine.cache.Node)
{
com.github.benmanes.caffeine.cache.AccessOrderDeque v, v, v, v;
long v, v, v;
byte v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
int v, v;
com.github.benmanes.caffeine.cache.Node v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProbationDeque()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: boolean contains(com.github.benmanes.caffeine.cache.AccessOrderDeque$AccessOrder)>(v);
if v != 0 goto label;
return;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: int getPolicyWeight()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long mainProtectedMaximum()>();
v = v cmp v;
if v <= 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProbationDeque()>();
staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache: void reorder(com.github.benmanes.caffeine.cache.LinkedDeque,com.github.benmanes.caffeine.cache.Node)>(v, v);
return;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long mainProtectedWeightedSize()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: int getPolicyWeight()>();
v = v + v;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setMainProtectedWeightedSize(long)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProbationDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: boolean remove(com.github.benmanes.caffeine.cache.AccessOrderDeque$AccessOrder)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProtectedDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: boolean offerLast(java.lang.Object)>(v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: void makeMainProtected()>();
return;
}
static void reorder(com.github.benmanes.caffeine.cache.LinkedDeque, com.github.benmanes.caffeine.cache.Node)
{
com.github.benmanes.caffeine.cache.LinkedDeque v;
com.github.benmanes.caffeine.cache.Node v;
boolean v;
v := @parameter: com.github.benmanes.caffeine.cache.LinkedDeque;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.LinkedDeque: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
interfaceinvoke v.<com.github.benmanes.caffeine.cache.LinkedDeque: void moveToBack(java.lang.Object)>(v);
label:
return;
}
void drainWriteBuffer()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
com.github.benmanes.caffeine.cache.MpscGrowableArrayQueue v;
int v, v;
java.lang.Object v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = 0;
label:
v = <com.github.benmanes.caffeine.cache.BoundedLocalCache: int WRITE_BUFFER_MAX>;
if v > v goto label;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.MpscGrowableArrayQueue writeBuffer>;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.MpscGrowableArrayQueue: java.lang.Object poll()>();
if v != null goto label;
return;
label:
interfaceinvoke v.<java.lang.Runnable: void run()>();
v = v + 1;
goto label;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setDrainStatusOpaque(int)>(3);
return;
}
void makeDead(com.github.benmanes.caffeine.cache.Node)
{
java.lang.Throwable v;
long v, v, v, v, v, v;
int v, v, v;
com.github.benmanes.caffeine.cache.Node v;
boolean v, v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
entermonitor v;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean isDead()>();
if v == 0 goto label;
exitmonitor v;
label:
return;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evicts()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean inWindow()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long windowWeightedSize()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: int getWeight()>();
v = v - v;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setWindowWeightedSize(long)>(v);
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean inMainProtected()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long mainProtectedWeightedSize()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: int getWeight()>();
v = v - v;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setMainProtectedWeightedSize(long)>(v);
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long weightedSize()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: int getWeight()>();
v = v - v;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setWeightedSize(long)>(v);
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: void die()>();
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public boolean isEmpty()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.util.concurrent.ConcurrentHashMap v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: boolean isEmpty()>();
return v;
}
public int size()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
int v;
java.util.concurrent.ConcurrentHashMap v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: int size()>();
return v;
}
public long estimatedSize()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.util.concurrent.ConcurrentHashMap v;
long v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: long mappingCount()>();
return v;
}
public void clear()
{
java.lang.Throwable v;
com.github.benmanes.caffeine.cache.Pacer v;
com.github.benmanes.caffeine.cache.Ticker v;
com.github.benmanes.caffeine.cache.Buffer v;
long v;
int v, v, v;
boolean v, v, v, v;
java.util.Iterator v;
java.util.concurrent.locks.ReentrantLock v, v, v;
java.util.Collection v;
java.util.concurrent.ConcurrentHashMap v;
java.util.function.Consumer v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
com.github.benmanes.caffeine.cache.MpscGrowableArrayQueue v, v;
java.lang.Object v, v, v, v;
java.util.ArrayDeque v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Buffer readBuffer>;
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_clear_6__24: java.util.function.Consumer bootstrap$()>();
interfaceinvoke v.<com.github.benmanes.caffeine.cache.Buffer: void drainTo(java.util.function.Consumer)>(v);
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.MpscGrowableArrayQueue writeBuffer>;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.MpscGrowableArrayQueue: java.lang.Object poll()>();
if v == null goto label;
interfaceinvoke v.<java.lang.Runnable: void run()>();
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Pacer pacer()>();
if v == null goto label;
virtualinvoke v.<com.github.benmanes.caffeine.cache.Pacer: void cancel()>();
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Ticker: long read()>();
v = <com.github.benmanes.caffeine.cache.BoundedLocalCache: int WRITE_BUFFER_MAX>;
v = v / 2;
v = new java.util.ArrayDeque;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.util.Collection values()>();
specialinvoke v.<java.util.ArrayDeque: void <init>(java.util.Collection)>(v);
label:
v = interfaceinvoke v.<java.util.Deque: boolean isEmpty()>();
if v != 0 goto label;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.MpscGrowableArrayQueue writeBuffer>;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.MpscGrowableArrayQueue: int size()>();
if v >= v goto label;
v = interfaceinvoke v.<java.util.Deque: java.lang.Object poll()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void removeNode(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
goto label;
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
label:
v = 0;
v = interfaceinvoke v.<java.util.Deque: 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 = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getKey()>();
if v != null goto label;
v = 1;
goto label;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object remove(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean collectKeys()>();
if v == 0 goto label;
if v == 0 goto label;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void cleanUp()>();
label:
return;
catch java.lang.Throwable from label to label with label;
}
void removeNode(com.github.benmanes.caffeine.cache.Node, long)
{
java.lang.Throwable v;
java.lang.Object[] v;
java.util.function.BiFunction v;
long v;
com.github.benmanes.caffeine.cache.RemovalCause[] v;
com.github.benmanes.caffeine.cache.Node v;
boolean v, v, v, v, v, v, v;
com.github.benmanes.caffeine.cache.RemovalCause v, v;
com.github.benmanes.caffeine.cache.AccessOrderDeque v, v, v;
com.github.benmanes.caffeine.cache.TimerWheel v;
java.util.concurrent.ConcurrentHashMap v;
com.github.benmanes.caffeine.cache.WriteOrderDeque v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v := @parameter: long;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getKey()>();
v = newarray (java.lang.Object)[1];
v = newarray (com.github.benmanes.caffeine.cache.RemovalCause)[1];
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getKeyReference()>();
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_removeNode_7__25: java.util.function.BiFunction bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache,com.github.benmanes.caffeine.cache.Node,java.lang.Object[],java.lang.Object,com.github.benmanes.caffeine.cache.RemovalCause[],long)>(v, v, v, v, v, v);
virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object computeIfPresent(java.lang.Object,java.util.function.BiFunction)>(v, v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean inWindow()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evicts()>();
if v != 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterAccess()>();
if v == 0 goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderWindowDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: boolean remove(com.github.benmanes.caffeine.cache.AccessOrderDeque$AccessOrder)>(v);
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evicts()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean inMainProbation()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProbationDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: boolean remove(com.github.benmanes.caffeine.cache.AccessOrderDeque$AccessOrder)>(v);
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderProtectedDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.AccessOrderDeque: boolean remove(com.github.benmanes.caffeine.cache.AccessOrderDeque$AccessOrder)>(v);
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterWrite()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.WriteOrderDeque writeOrderDeque()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.WriteOrderDeque: boolean remove(com.github.benmanes.caffeine.cache.WriteOrderDeque$WriteOrder)>(v);
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresVariable()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.TimerWheel timerWheel()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.TimerWheel: void deschedule(com.github.benmanes.caffeine.cache.Node)>(v);
label:
entermonitor v;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void logIfAlive(com.github.benmanes.caffeine.cache.Node)>(v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void makeDead(com.github.benmanes.caffeine.cache.Node)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v[0];
if v == null goto label;
v = v[0];
v = v[0];
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void notifyRemoval(java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.RemovalCause)>(v, v, v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
public boolean containsKey(java.lang.Object)
{
com.github.benmanes.caffeine.cache.Ticker v;
java.util.concurrent.ConcurrentHashMap v;
long v;
com.github.benmanes.caffeine.cache.NodeFactory v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v;
boolean v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: java.lang.Object newLookupKey(java.lang.Object)>(v);
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getValue()>();
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Ticker: long read()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean hasExpired(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean containsValue(java.lang.Object)
{
com.github.benmanes.caffeine.cache.Ticker v;
java.util.Iterator v;
java.util.Collection v;
java.util.concurrent.ConcurrentHashMap v;
long v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v;
boolean v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Ticker: long read()>();
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: 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 = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean containsValue(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean hasExpired(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
if v != 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getKey()>();
if v == null goto label;
return 1;
label:
return 0;
}
public java.lang.Object get(java.lang.Object)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object getIfPresent(java.lang.Object,boolean)>(v, 0);
return v;
}
public java.lang.Object getIfPresent(java.lang.Object, boolean)
{
com.github.benmanes.caffeine.cache.Ticker v;
long v;
int v;
com.github.benmanes.caffeine.cache.Expiry v;
boolean v, v, v, v;
com.github.benmanes.caffeine.cache.stats.StatsCounter v, v;
java.util.concurrent.ConcurrentHashMap v;
com.github.benmanes.caffeine.cache.NodeFactory v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: boolean;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: java.lang.Object newLookupKey(java.lang.Object)>(v);
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.stats.StatsCounter statsCounter()>();
interfaceinvoke v.<com.github.benmanes.caffeine.cache.stats.StatsCounter: void recordMisses(int)>(1);
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: int drainStatusOpaque()>();
if v != 1 goto label;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void scheduleDrainBuffers()>();
label:
return null;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getValue()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Ticker: long read()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean hasExpired(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
if v != 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean collectValues()>();
if v == 0 goto label;
if v != null goto label;
label:
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.stats.StatsCounter statsCounter()>();
interfaceinvoke v.<com.github.benmanes.caffeine.cache.stats.StatsCounter: void recordMisses(int)>(1);
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void scheduleDrainBuffers()>();
return null;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean isComputingAsync(com.github.benmanes.caffeine.cache.Node)>(v);
if v != 0 goto label;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setAccessTime(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Expiry expiry()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void tryExpireAfterRead(com.github.benmanes.caffeine.cache.Node,java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.Expiry,long)>(v, v, v, v, v);
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object afterRead(com.github.benmanes.caffeine.cache.Node,long,boolean)>(v, v, v);
if v != null goto label;
v = v;
goto label;
label:
v = v;
label:
return v;
}
public java.lang.Object getIfPresentQuietly(java.lang.Object)
{
com.github.benmanes.caffeine.cache.Ticker v;
java.util.concurrent.ConcurrentHashMap v;
long v;
com.github.benmanes.caffeine.cache.NodeFactory v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: java.lang.Object newLookupKey(java.lang.Object)>(v);
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getValue()>();
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Ticker: long read()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean hasExpired(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
if v == 0 goto label;
label:
return null;
label:
return v;
}
public java.lang.Object getKey(java.lang.Object)
{
java.util.concurrent.ConcurrentHashMap v;
com.github.benmanes.caffeine.cache.NodeFactory v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
int v;
java.lang.Object v, v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: java.lang.Object newLookupKey(java.lang.Object)>(v);
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: int drainStatusOpaque()>();
if v != 1 goto label;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void scheduleDrainBuffers()>();
label:
return null;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object afterRead(com.github.benmanes.caffeine.cache.Node,long,boolean)>(v, 0L, 0);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getKey()>();
return v;
}
public java.util.Map getAllPresent(java.lang.Iterable)
{
com.github.benmanes.caffeine.cache.Ticker v;
java.util.Map v;
com.github.benmanes.caffeine.cache.Expiry v;
boolean v, v, v, v;
java.util.concurrent.ConcurrentHashMap v;
java.util.Set v;
com.github.benmanes.caffeine.cache.NodeFactory v;
long v;
java.lang.Iterable v;
java.util.LinkedHashMap v;
int v, v, v, v, v;
com.github.benmanes.caffeine.cache.stats.StatsCounter v, v;
java.util.Iterator v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v, v, v, v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Iterable;
v = new java.util.LinkedHashMap;
v = staticinvoke <com.github.benmanes.caffeine.cache.Caffeine: int calculateHashMapCapacity(java.lang.Iterable)>(v);
specialinvoke v.<java.util.LinkedHashMap: void <init>(int)>(v);
v = interfaceinvoke v.<java.lang.Iterable: 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()>();
virtualinvoke v.<java.util.LinkedHashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, null);
goto label;
label:
v = virtualinvoke v.<java.util.LinkedHashMap: int size()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Ticker: long read()>();
v = virtualinvoke v.<java.util.LinkedHashMap: 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 = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: java.lang.Object newLookupKey(java.lang.Object)>(v);
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getValue()>();
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean hasExpired(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
if v == 0 goto label;
label:
interfaceinvoke v.<java.util.Iterator: void remove()>();
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean isComputingAsync(com.github.benmanes.caffeine.cache.Node)>(v);
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Expiry expiry()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void tryExpireAfterRead(com.github.benmanes.caffeine.cache.Node,java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.Expiry,long)>(v, v, v, v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setAccessTime(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object afterRead(com.github.benmanes.caffeine.cache.Node,long,boolean)>(v, v, 0);
if v != null goto label;
v = v;
goto label;
label:
v = v;
label:
interfaceinvoke v.<java.util.Map$Entry: java.lang.Object setValue(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.stats.StatsCounter statsCounter()>();
v = virtualinvoke v.<java.util.LinkedHashMap: int size()>();
interfaceinvoke v.<com.github.benmanes.caffeine.cache.stats.StatsCounter: void recordHits(int)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.stats.StatsCounter statsCounter()>();
v = virtualinvoke v.<java.util.LinkedHashMap: int size()>();
v = v - v;
interfaceinvoke v.<com.github.benmanes.caffeine.cache.stats.StatsCounter: void recordMisses(int)>(v);
v = staticinvoke <java.util.Collections: java.util.Map unmodifiableMap(java.util.Map)>(v);
return v;
}
public void putAll(java.util.Map)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.util.function.BiConsumer v;
java.util.Map v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.util.Map;
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$put__26: java.util.function.BiConsumer bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache)>(v);
interfaceinvoke v.<java.util.Map: void forEach(java.util.function.BiConsumer)>(v);
return;
}
public java.lang.Object put(java.lang.Object, java.lang.Object)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v;
com.github.benmanes.caffeine.cache.Expiry v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Expiry expiry()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object put(java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.Expiry,boolean)>(v, v, v, 0);
return v;
}
public java.lang.Object putIfAbsent(java.lang.Object, java.lang.Object)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v;
com.github.benmanes.caffeine.cache.Expiry v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Expiry expiry()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object put(java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.Expiry,boolean)>(v, v, v, 1);
return v;
}
java.lang.Object put(java.lang.Object, java.lang.Object, com.github.benmanes.caffeine.cache.Expiry, boolean)
{
com.github.benmanes.caffeine.cache.Ticker v;
java.util.function.BiFunction v;
com.github.benmanes.caffeine.cache.Weigher v;
byte v, v;
com.github.benmanes.caffeine.cache.Expiry v, v;
com.github.benmanes.caffeine.cache.Node v;
boolean v, v, v, v, v, v, v, v, v, v, v, v;
com.github.benmanes.caffeine.cache.RemovalCause v, v, v, v;
java.util.concurrent.ConcurrentHashMap v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache$AddTask v;
com.github.benmanes.caffeine.cache.NodeFactory v, v;
java.lang.Throwable v;
long v, v, v, v, v, v, v, v, v, v;
java.lang.ref.ReferenceQueue v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache$UpdateTask v, v;
int v, v, v, v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v, v, v, v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: com.github.benmanes.caffeine.cache.Expiry;
v := @parameter: boolean;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Ticker: long read()>();
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Weigher weigher>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Weigher: int weigh(java.lang.Object,java.lang.Object)>(v, v);
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: java.lang.Object newLookupKey(java.lang.Object)>(v);
v = 1;
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.ref.ReferenceQueue keyReferenceQueue()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.ref.ReferenceQueue valueReferenceQueue()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: com.github.benmanes.caffeine.cache.Node newNode(java.lang.Object,java.lang.ref.ReferenceQueue,java.lang.Object,java.lang.ref.ReferenceQueue,int,long)>(v, v, v, v, v, v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long expireAfterCreate(java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.Expiry,long)>(v, v, v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setVariableTime(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getKeyReference()>();
virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
v = new com.github.benmanes.caffeine.cache.BoundedLocalCache$AddTask;
specialinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$AddTask: void <init>(com.github.benmanes.caffeine.cache.BoundedLocalCache,com.github.benmanes.caffeine.cache.Node,int)>(v, v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void afterWrite(java.lang.Runnable)>(v);
return null;
label:
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getValue()>();
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean hasExpired(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
if v != 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean isComputingAsync(com.github.benmanes.caffeine.cache.Node)>(v);
if v != 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Expiry expiry()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void tryExpireAfterRead(com.github.benmanes.caffeine.cache.Node,java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.Expiry,long)>(v, v, v, v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setAccessTime(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object afterRead(com.github.benmanes.caffeine.cache.Node,long,boolean)>(v, v, 0);
return v;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean isAlive()>();
if v != 0 goto label;
v = v & 1023;
if v == 0 goto label;
staticinvoke <java.lang.Thread: void onSpinWait()>();
goto label;
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_put_8__27: java.util.function.BiFunction bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache,java.lang.Object)>(v, v);
virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object computeIfPresent(java.lang.Object,java.util.function.BiFunction)>(v, v);
goto label;
label:
v = 0;
v = 1;
v = 0;
entermonitor v;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean isAlive()>();
if v != 0 goto label;
exitmonitor v;
label:
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getValue()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: int getWeight()>();
if v != null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long expireAfterCreate(java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.Expiry,long)>(v, v, v, v);
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause COLLECTED>;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void notifyEviction(java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.RemovalCause)>(v, null, v);
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean hasExpired(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
if v == 0 goto label;
v = 1;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long expireAfterCreate(java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.Expiry,long)>(v, v, v, v);
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause EXPIRED>;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void notifyEviction(java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.RemovalCause)>(v, v, v);
goto label;
label:
if v == 0 goto label;
v = 0;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long expireAfterRead(com.github.benmanes.caffeine.cache.Node,java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.Expiry,long)>(v, v, v, v, v);
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long expireAfterUpdate(com.github.benmanes.caffeine.cache.Node,java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.Expiry,long)>(v, v, v, v, v);
label:
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterWrite()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: long getWriteTime()>();
v = v - v;
v = <com.github.benmanes.caffeine.cache.BoundedLocalCache: long EXPIRE_WRITE_TOLERANCE>;
v = v cmp v;
if v > 0 goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresVariable()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: long getVariableTime()>();
v = v - v;
v = staticinvoke <java.lang.Math: long abs(long)>(v);
v = <com.github.benmanes.caffeine.cache.BoundedLocalCache: long EXPIRE_WRITE_TOLERANCE>;
v = v cmp v;
if v <= 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.ref.ReferenceQueue valueReferenceQueue()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: void setValue(java.lang.Object,java.lang.ref.ReferenceQueue)>(v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: void setWeight(int)>(v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setWriteTime(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getKeyReference()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void discardRefresh(java.lang.Object)>(v);
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setVariableTime(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setAccessTime(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v == 0 goto label;
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause EXPIRED>;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void notifyRemoval(java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.RemovalCause)>(v, v, v);
goto label;
label:
if v != null goto label;
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause COLLECTED>;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void notifyRemoval(java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.RemovalCause)>(v, null, v);
goto label;
label:
if v == 0 goto label;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void notifyOnReplace(java.lang.Object,java.lang.Object,java.lang.Object)>(v, v, v);
label:
if v == 0 goto label;
v = v - v;
goto label;
label:
v = 0;
label:
v = v;
if v == null goto label;
if v != 0 goto label;
if v == 0 goto label;
label:
v = new com.github.benmanes.caffeine.cache.BoundedLocalCache$UpdateTask;
specialinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$UpdateTask: void <init>(com.github.benmanes.caffeine.cache.BoundedLocalCache,com.github.benmanes.caffeine.cache.Node,int)>(v, v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void afterWrite(java.lang.Runnable)>(v);
goto label;
label:
if v != 0 goto label;
if v == 0 goto label;
v = new com.github.benmanes.caffeine.cache.BoundedLocalCache$UpdateTask;
specialinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$UpdateTask: void <init>(com.github.benmanes.caffeine.cache.BoundedLocalCache,com.github.benmanes.caffeine.cache.Node,int)>(v, v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void afterWrite(java.lang.Runnable)>(v);
goto label;
label:
if v == 0 goto label;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setWriteTime(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object afterRead(com.github.benmanes.caffeine.cache.Node,long,boolean)>(v, v, 0);
label:
if v == 0 goto label;
v = null;
goto label;
label:
v = v;
label:
return v;
label:
v = v + 1;
goto label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public java.lang.Object remove(java.lang.Object)
{
java.lang.Object[] v;
com.github.benmanes.caffeine.cache.BoundedLocalCache$RemovalTask v;
java.util.function.BiFunction v;
com.github.benmanes.caffeine.cache.RemovalCause[] v;
com.github.benmanes.caffeine.cache.Node v;
com.github.benmanes.caffeine.cache.RemovalCause v, v, v, v;
java.util.concurrent.ConcurrentHashMap v;
com.github.benmanes.caffeine.cache.Node[] v;
com.github.benmanes.caffeine.cache.NodeFactory v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v = newarray (com.github.benmanes.caffeine.cache.Node)[1];
v = newarray (java.lang.Object)[1];
v = newarray (com.github.benmanes.caffeine.cache.RemovalCause)[1];
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: java.lang.Object newLookupKey(java.lang.Object)>(v);
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_remove_9__28: java.util.function.BiFunction bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache,java.lang.Object,java.lang.Object[],com.github.benmanes.caffeine.cache.RemovalCause[],java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.Node[])>(v, v, v, v, v, v, v);
virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object computeIfPresent(java.lang.Object,java.util.function.BiFunction)>(v, v);
v = v[0];
if v == null goto label;
v = new com.github.benmanes.caffeine.cache.BoundedLocalCache$RemovalTask;
v = v[0];
specialinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$RemovalTask: void <init>(com.github.benmanes.caffeine.cache.BoundedLocalCache,com.github.benmanes.caffeine.cache.Node)>(v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void afterWrite(java.lang.Runnable)>(v);
v = v[0];
v = v[0];
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void notifyRemoval(java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.RemovalCause)>(v, v, v);
label:
v = v[0];
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause EXPLICIT>;
if v != v goto label;
v = v[0];
goto label;
label:
v = null;
label:
return v;
}
public boolean remove(java.lang.Object, java.lang.Object)
{
java.lang.Object[] v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache$RemovalTask v;
java.util.function.BiFunction v;
com.github.benmanes.caffeine.cache.RemovalCause[] v;
com.github.benmanes.caffeine.cache.Node v, v;
boolean v;
com.github.benmanes.caffeine.cache.RemovalCause v, v, v;
java.util.concurrent.ConcurrentHashMap v;
com.github.benmanes.caffeine.cache.Node[] v;
com.github.benmanes.caffeine.cache.NodeFactory v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
if v != null goto label;
return 0;
label:
v = newarray (com.github.benmanes.caffeine.cache.Node)[1];
v = newarray (java.lang.Object)[1];
v = newarray (java.lang.Object)[1];
v = newarray (com.github.benmanes.caffeine.cache.RemovalCause)[1];
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: java.lang.Object newLookupKey(java.lang.Object)>(v);
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_remove_10__29: java.util.function.BiFunction bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache,java.lang.Object,java.lang.Object[],java.lang.Object[],com.github.benmanes.caffeine.cache.RemovalCause[],java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.Node[])>(v, v, v, v, v, v, v, v);
virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object computeIfPresent(java.lang.Object,java.util.function.BiFunction)>(v, v);
v = v[0];
if v != null goto label;
return 0;
label:
v = new com.github.benmanes.caffeine.cache.BoundedLocalCache$RemovalTask;
v = v[0];
specialinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$RemovalTask: void <init>(com.github.benmanes.caffeine.cache.BoundedLocalCache,com.github.benmanes.caffeine.cache.Node)>(v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void afterWrite(java.lang.Runnable)>(v);
v = v[0];
v = v[0];
v = v[0];
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void notifyRemoval(java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.RemovalCause)>(v, v, v);
v = v[0];
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause EXPLICIT>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.lang.Object replace(java.lang.Object, java.lang.Object)
{
java.lang.Object[] v, v;
java.util.function.BiFunction v;
long v;
com.github.benmanes.caffeine.cache.BoundedLocalCache$UpdateTask v;
com.github.benmanes.caffeine.cache.Weigher v;
long[] v;
int[] v;
int v, v, v;
boolean v;
java.util.concurrent.ConcurrentHashMap v;
com.github.benmanes.caffeine.cache.NodeFactory v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v, v, v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = newarray (int)[1];
v = newarray (java.lang.Object)[1];
v = newarray (java.lang.Object)[1];
v = newarray (long)[1];
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Weigher weigher>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Weigher: int weigh(java.lang.Object,java.lang.Object)>(v, v);
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: java.lang.Object newLookupKey(java.lang.Object)>(v);
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_replace_11__30: java.util.function.BiFunction bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache,java.lang.Object,java.lang.Object[],java.lang.Object[],int[],long[],java.lang.Object,int)>(v, v, v, v, v, v, v, v);
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object computeIfPresent(java.lang.Object,java.util.function.BiFunction)>(v, v);
v = v[0];
if v != null goto label;
return null;
label:
v = v[0];
v = v - v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterWrite()>();
if v != 0 goto label;
if v == 0 goto label;
label:
v = new com.github.benmanes.caffeine.cache.BoundedLocalCache$UpdateTask;
specialinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$UpdateTask: void <init>(com.github.benmanes.caffeine.cache.BoundedLocalCache,com.github.benmanes.caffeine.cache.Node,int)>(v, v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void afterWrite(java.lang.Runnable)>(v);
goto label;
label:
v = v[0];
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object afterRead(com.github.benmanes.caffeine.cache.Node,long,boolean)>(v, v, 0);
label:
v = v[0];
v = v[0];
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void notifyOnReplace(java.lang.Object,java.lang.Object,java.lang.Object)>(v, v, v);
v = v[0];
return v;
}
public boolean replace(java.lang.Object, java.lang.Object, java.lang.Object)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean replace(java.lang.Object,java.lang.Object,java.lang.Object,boolean)>(v, v, v, 1);
return v;
}
public boolean replace(java.lang.Object, java.lang.Object, java.lang.Object, boolean)
{
java.lang.Object[] v, v;
java.util.function.BiFunction v;
long v;
com.github.benmanes.caffeine.cache.BoundedLocalCache$UpdateTask v;
com.github.benmanes.caffeine.cache.Weigher v;
long[] v;
int[] v;
int v, v, v;
boolean v, v, v;
boolean[] v;
java.util.concurrent.ConcurrentHashMap v;
com.github.benmanes.caffeine.cache.NodeFactory v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v, v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: boolean;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Weigher weigher>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Weigher: int weigh(java.lang.Object,java.lang.Object)>(v, v);
v = newarray (boolean)[1];
v = newarray (java.lang.Object)[1];
v = newarray (java.lang.Object)[1];
v = newarray (int)[1];
v = newarray (long)[1];
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: java.lang.Object newLookupKey(java.lang.Object)>(v);
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_replace_12__31: java.util.function.BiFunction bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache,java.lang.Object,java.lang.Object[],java.lang.Object[],int[],java.lang.Object,long[],java.lang.Object,int,boolean[],boolean)>(v, v, v, v, v, v, v, v, v, v, v);
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object computeIfPresent(java.lang.Object,java.util.function.BiFunction)>(v, v);
v = v[0];
if v != 0 goto label;
return 0;
label:
v = v[0];
v = v - v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterWrite()>();
if v != 0 goto label;
if v == 0 goto label;
label:
v = new com.github.benmanes.caffeine.cache.BoundedLocalCache$UpdateTask;
specialinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$UpdateTask: void <init>(com.github.benmanes.caffeine.cache.BoundedLocalCache,com.github.benmanes.caffeine.cache.Node,int)>(v, v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void afterWrite(java.lang.Runnable)>(v);
goto label;
label:
v = v[0];
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object afterRead(com.github.benmanes.caffeine.cache.Node,long,boolean)>(v, v, 0);
label:
v = v[0];
v = v[0];
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void notifyOnReplace(java.lang.Object,java.lang.Object,java.lang.Object)>(v, v, v);
return 1;
}
public void replaceAll(java.util.function.BiFunction)
{
com.github.benmanes.caffeine.cache.Ticker v;
java.util.Iterator v;
java.util.function.BiFunction v, v;
java.util.Set v;
long v;
long[] v;
com.github.benmanes.caffeine.cache.NodeFactory v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v;
com.github.benmanes.caffeine.cache.Expiry v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.util.function.BiFunction;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_replaceAll_13__32: java.util.function.BiFunction bootstrap$(java.util.function.BiFunction)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.Set keySet()>();
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 = newarray (long)[1];
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Ticker: long read()>();
v[0] = v;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: java.lang.Object newLookupKey(java.lang.Object)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Expiry expiry()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object remap(java.lang.Object,java.lang.Object,java.util.function.BiFunction,com.github.benmanes.caffeine.cache.Expiry,long[],boolean)>(v, v, v, v, v, 0);
goto label;
label:
return;
}
public java.lang.Object computeIfAbsent(java.lang.Object, java.util.function.Function, boolean, boolean)
{
com.github.benmanes.caffeine.cache.Ticker v;
long v;
java.util.function.Function v;
java.lang.ref.ReferenceQueue v;
long[] v;
com.github.benmanes.caffeine.cache.Expiry v;
boolean v, v, v, v;
java.util.concurrent.ConcurrentHashMap v;
com.github.benmanes.caffeine.cache.NodeFactory v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v, v, v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: java.util.function.Function;
v := @parameter: boolean;
v := @parameter: boolean;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Ticker: long read()>();
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: java.lang.Object newLookupKey(java.lang.Object)>(v);
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getValue()>();
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean hasExpired(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
if v != 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean isComputingAsync(com.github.benmanes.caffeine.cache.Node)>(v);
if v != 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Expiry expiry()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void tryExpireAfterRead(com.github.benmanes.caffeine.cache.Node,java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.Expiry,long)>(v, v, v, v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setAccessTime(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object afterRead(com.github.benmanes.caffeine.cache.Node,long,boolean)>(v, v, v);
if v != null goto label;
v = v;
goto label;
label:
v = v;
label:
return v;
label:
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.function.Function statsAware(java.util.function.Function,boolean)>(v, v);
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.ref.ReferenceQueue keyReferenceQueue()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: java.lang.Object newReferenceKey(java.lang.Object,java.lang.ref.ReferenceQueue)>(v, v);
v = newarray (long)[1];
v[0] = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object doComputeIfAbsent(java.lang.Object,java.lang.Object,java.util.function.Function,long[],boolean)>(v, v, v, v, v);
return v;
}
java.lang.Object doComputeIfAbsent(java.lang.Object, java.lang.Object, java.util.function.Function, long[], boolean)
{
java.util.function.BiFunction v;
com.github.benmanes.caffeine.cache.RemovalCause[] v;
int[] v;
com.github.benmanes.caffeine.cache.Expiry v;
com.github.benmanes.caffeine.cache.Node v, v;
boolean v, v, v;
com.github.benmanes.caffeine.cache.RemovalCause v, v, v, v, v;
java.util.concurrent.ConcurrentHashMap v;
com.github.benmanes.caffeine.cache.BoundedLocalCache$AddTask v;
java.lang.Object[] v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache$RemovalTask v;
long v, v, v;
java.util.function.Function v;
com.github.benmanes.caffeine.cache.BoundedLocalCache$UpdateTask v;
long[] v;
int v, v, v, v, v;
com.github.benmanes.caffeine.cache.stats.StatsCounter v;
com.github.benmanes.caffeine.cache.Node[] v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v, v, v, v, v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: java.util.function.Function;
v := @parameter: long[];
v := @parameter: boolean;
v = newarray (java.lang.Object)[1];
v = newarray (java.lang.Object)[1];
v = newarray (java.lang.Object)[1];
v = newarray (com.github.benmanes.caffeine.cache.Node)[1];
v = newarray (int)[2];
v = newarray (com.github.benmanes.caffeine.cache.RemovalCause)[1];
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_doComputeIfAbsent_14__33: java.util.function.BiFunction bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache,java.lang.Object[],java.util.function.Function,java.lang.Object,long[],int[],java.lang.Object[],java.lang.Object[],com.github.benmanes.caffeine.cache.RemovalCause[],com.github.benmanes.caffeine.cache.Node[])>(v, v, v, v, v, v, v, v, v, v);
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object compute(java.lang.Object,java.util.function.BiFunction)>(v, v);
v = v[0];
if v == null goto label;
v = v[0];
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.RemovalCause: boolean wasEvicted()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.stats.StatsCounter statsCounter()>();
v = v[0];
v = v[0];
interfaceinvoke v.<com.github.benmanes.caffeine.cache.stats.StatsCounter: void recordEviction(int,com.github.benmanes.caffeine.cache.RemovalCause)>(v, v);
label:
v = v[0];
v = v[0];
v = v[0];
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void notifyRemoval(java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.RemovalCause)>(v, v, v);
label:
if v != null goto label;
v = v[0];
if v == null goto label;
v = new com.github.benmanes.caffeine.cache.BoundedLocalCache$RemovalTask;
v = v[0];
specialinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$RemovalTask: void <init>(com.github.benmanes.caffeine.cache.BoundedLocalCache,com.github.benmanes.caffeine.cache.Node)>(v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void afterWrite(java.lang.Runnable)>(v);
label:
return null;
label:
v = v[0];
if v != null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean isComputingAsync(com.github.benmanes.caffeine.cache.Node)>(v);
if v != 0 goto label;
v = v[0];
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Expiry expiry()>();
v = v[0];
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void tryExpireAfterRead(com.github.benmanes.caffeine.cache.Node,java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.Expiry,long)>(v, v, v, v, v);
v = v[0];
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void setAccessTime(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
label:
v = v[0];
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object afterRead(com.github.benmanes.caffeine.cache.Node,long,boolean)>(v, v, v);
v = v[0];
return v;
label:
v = v[0];
if v != null goto label;
v = v[0];
if v != null goto label;
v = new com.github.benmanes.caffeine.cache.BoundedLocalCache$AddTask;
v = v[1];
specialinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$AddTask: void <init>(com.github.benmanes.caffeine.cache.BoundedLocalCache,com.github.benmanes.caffeine.cache.Node,int)>(v, v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void afterWrite(java.lang.Runnable)>(v);
goto label;
label:
v = v[1];
v = v[0];
v = v - v;
v = new com.github.benmanes.caffeine.cache.BoundedLocalCache$UpdateTask;
specialinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$UpdateTask: void <init>(com.github.benmanes.caffeine.cache.BoundedLocalCache,com.github.benmanes.caffeine.cache.Node,int)>(v, v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void afterWrite(java.lang.Runnable)>(v);
label:
v = v[0];
return v;
}
public java.lang.Object computeIfPresent(java.lang.Object, java.util.function.BiFunction)
{
com.github.benmanes.caffeine.cache.Ticker v;
java.util.function.BiFunction v, v;
java.util.concurrent.ConcurrentHashMap v;
long v;
long[] v;
com.github.benmanes.caffeine.cache.NodeFactory v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v, v;
com.github.benmanes.caffeine.cache.Expiry v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: java.util.function.BiFunction;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: java.lang.Object newLookupKey(java.lang.Object)>(v);
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
return null;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getValue()>();
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Ticker: long read()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean hasExpired(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
if v == 0 goto label;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void scheduleDrainBuffers()>();
return null;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.function.BiFunction statsAware(java.util.function.BiFunction,boolean,boolean)>(v, 1, 1);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Expiry expiry()>();
v = newarray (long)[1];
v[0] = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object remap(java.lang.Object,java.lang.Object,java.util.function.BiFunction,com.github.benmanes.caffeine.cache.Expiry,long[],boolean)>(v, v, v, v, v, 0);
return v;
}
public java.lang.Object compute(java.lang.Object, java.util.function.BiFunction, com.github.benmanes.caffeine.cache.Expiry, boolean, boolean)
{
com.github.benmanes.caffeine.cache.Ticker v;
java.util.function.BiFunction v, v;
long v;
java.lang.ref.ReferenceQueue v;
long[] v;
com.github.benmanes.caffeine.cache.NodeFactory v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v;
com.github.benmanes.caffeine.cache.Expiry v;
boolean v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: java.util.function.BiFunction;
v := @parameter: com.github.benmanes.caffeine.cache.Expiry;
v := @parameter: boolean;
v := @parameter: boolean;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = newarray (long)[1];
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Ticker: long read()>();
v[0] = v;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.ref.ReferenceQueue keyReferenceQueue()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: java.lang.Object newReferenceKey(java.lang.Object,java.lang.ref.ReferenceQueue)>(v, v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.function.BiFunction statsAware(java.util.function.BiFunction,boolean,boolean)>(v, v, v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object remap(java.lang.Object,java.lang.Object,java.util.function.BiFunction,com.github.benmanes.caffeine.cache.Expiry,long[],boolean)>(v, v, v, v, v, 1);
return v;
}
public java.lang.Object merge(java.lang.Object, java.lang.Object, java.util.function.BiFunction)
{
com.github.benmanes.caffeine.cache.Ticker v;
java.util.function.BiFunction v, v;
long v;
java.lang.ref.ReferenceQueue v;
long[] v;
com.github.benmanes.caffeine.cache.NodeFactory v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v;
com.github.benmanes.caffeine.cache.Expiry v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: java.util.function.BiFunction;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = newarray (long)[1];
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Ticker: long read()>();
v[0] = v;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.ref.ReferenceQueue keyReferenceQueue()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: java.lang.Object newReferenceKey(java.lang.Object,java.lang.ref.ReferenceQueue)>(v, v);
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_merge_15__34: java.util.function.BiFunction bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache,java.lang.Object,java.util.function.BiFunction)>(v, v, v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Expiry expiry()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object remap(java.lang.Object,java.lang.Object,java.util.function.BiFunction,com.github.benmanes.caffeine.cache.Expiry,long[],boolean)>(v, v, v, v, v, 1);
return v;
}
java.lang.Object remap(java.lang.Object, java.lang.Object, java.util.function.BiFunction, com.github.benmanes.caffeine.cache.Expiry, long[], boolean)
{
java.util.function.BiFunction v, v;
com.github.benmanes.caffeine.cache.RemovalCause[] v;
int[] v;
com.github.benmanes.caffeine.cache.Expiry v;
com.github.benmanes.caffeine.cache.Node v, v;
boolean v, v, v, v;
com.github.benmanes.caffeine.cache.RemovalCause v, v, v, v, v, v, v, v, v;
java.util.concurrent.ConcurrentHashMap v;
com.github.benmanes.caffeine.cache.BoundedLocalCache$AddTask v;
java.lang.Object[] v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache$RemovalTask v;
long v;
com.github.benmanes.caffeine.cache.BoundedLocalCache$UpdateTask v;
long[] v;
int v, v, v, v, v;
com.github.benmanes.caffeine.cache.stats.StatsCounter v;
com.github.benmanes.caffeine.cache.Node[] v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v, v, v, v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: java.util.function.BiFunction;
v := @parameter: com.github.benmanes.caffeine.cache.Expiry;
v := @parameter: long[];
v := @parameter: boolean;
v = newarray (java.lang.Object)[1];
v = newarray (java.lang.Object)[1];
v = newarray (java.lang.Object)[1];
v = newarray (com.github.benmanes.caffeine.cache.Node)[1];
v = newarray (int)[2];
v = newarray (com.github.benmanes.caffeine.cache.RemovalCause)[1];
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_remap_16__35: java.util.function.BiFunction bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache,boolean,java.lang.Object[],java.util.function.BiFunction,java.lang.Object,long[],int[],com.github.benmanes.caffeine.cache.Expiry,java.lang.Object,java.lang.Object[],java.lang.Object[],com.github.benmanes.caffeine.cache.RemovalCause[],com.github.benmanes.caffeine.cache.Node[])>(v, v, v, v, v, v, v, v, v, v, v, v, v);
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object compute(java.lang.Object,java.util.function.BiFunction)>(v, v);
v = v[0];
if v == null goto label;
v = v[0];
v = <com.github.benmanes.caffeine.cache.RemovalCause: com.github.benmanes.caffeine.cache.RemovalCause REPLACED>;
if v != v goto label;
v = v[0];
v = v[0];
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void notifyOnReplace(java.lang.Object,java.lang.Object,java.lang.Object)>(v, v, v);
goto label;
label:
v = v[0];
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.RemovalCause: boolean wasEvicted()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.stats.StatsCounter statsCounter()>();
v = v[0];
v = v[0];
interfaceinvoke v.<com.github.benmanes.caffeine.cache.stats.StatsCounter: void recordEviction(int,com.github.benmanes.caffeine.cache.RemovalCause)>(v, v);
label:
v = v[0];
v = v[0];
v = v[0];
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void notifyRemoval(java.lang.Object,java.lang.Object,com.github.benmanes.caffeine.cache.RemovalCause)>(v, v, v);
label:
v = v[0];
if v == null goto label;
v = new com.github.benmanes.caffeine.cache.BoundedLocalCache$RemovalTask;
v = v[0];
specialinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$RemovalTask: void <init>(com.github.benmanes.caffeine.cache.BoundedLocalCache,com.github.benmanes.caffeine.cache.Node)>(v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void afterWrite(java.lang.Runnable)>(v);
goto label;
label:
if v == null goto label;
v = v[0];
if v != null goto label;
v = v[0];
if v != null goto label;
v = new com.github.benmanes.caffeine.cache.BoundedLocalCache$AddTask;
v = v[1];
specialinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$AddTask: void <init>(com.github.benmanes.caffeine.cache.BoundedLocalCache,com.github.benmanes.caffeine.cache.Node,int)>(v, v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void afterWrite(java.lang.Runnable)>(v);
goto label;
label:
v = v[1];
v = v[0];
v = v - v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterWrite()>();
if v != 0 goto label;
if v == 0 goto label;
label:
v = new com.github.benmanes.caffeine.cache.BoundedLocalCache$UpdateTask;
specialinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$UpdateTask: void <init>(com.github.benmanes.caffeine.cache.BoundedLocalCache,com.github.benmanes.caffeine.cache.Node,int)>(v, v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void afterWrite(java.lang.Runnable)>(v);
goto label;
label:
v = v[0];
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object afterRead(com.github.benmanes.caffeine.cache.Node,long,boolean)>(v, v, 0);
v = v[0];
if v == null goto label;
v = v[0];
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.RemovalCause: boolean wasEvicted()>();
if v == 0 goto label;
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void scheduleDrainBuffers()>();
label:
v = v[0];
return v;
}
public void forEach(java.util.function.BiConsumer)
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.util.function.BiConsumer v;
java.lang.Object v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache$EntryIterator v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.util.function.BiConsumer;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = new com.github.benmanes.caffeine.cache.BoundedLocalCache$EntryIterator;
specialinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$EntryIterator: void <init>(com.github.benmanes.caffeine.cache.BoundedLocalCache)>(v);
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$EntryIterator: boolean hasNext()>();
if v == 0 goto label;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$EntryIterator: java.lang.Object key>;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$EntryIterator: java.lang.Object value>;
interfaceinvoke v.<java.util.function.BiConsumer: void accept(java.lang.Object,java.lang.Object)>(v, v);
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$EntryIterator: void advance()>();
goto label;
label:
return;
}
public java.util.Set keySet()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.util.Set v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache$KeySetView v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.Set keySet>;
if v != null goto label;
v = new com.github.benmanes.caffeine.cache.BoundedLocalCache$KeySetView;
v = v;
specialinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$KeySetView: void <init>(com.github.benmanes.caffeine.cache.BoundedLocalCache)>(v);
v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.Set keySet> = v;
goto label;
label:
v = v;
label:
return v;
}
public java.util.Collection values()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache$ValuesView v;
java.util.Collection v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.Collection values>;
if v != null goto label;
v = new com.github.benmanes.caffeine.cache.BoundedLocalCache$ValuesView;
v = v;
specialinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$ValuesView: void <init>(com.github.benmanes.caffeine.cache.BoundedLocalCache)>(v);
v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.Collection values> = v;
goto label;
label:
v = v;
label:
return v;
}
public java.util.Set entrySet()
{
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.util.Set v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache$EntrySetView v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.Set entrySet>;
if v != null goto label;
v = new com.github.benmanes.caffeine.cache.BoundedLocalCache$EntrySetView;
v = v;
specialinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache$EntrySetView: void <init>(com.github.benmanes.caffeine.cache.BoundedLocalCache)>(v);
v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.Set entrySet> = v;
goto label;
label:
v = v;
label:
return v;
}
public boolean equals(java.lang.Object)
{
com.github.benmanes.caffeine.cache.Ticker v;
long v;
int v, v;
boolean v, v, v, v, v;
java.util.Iterator v;
java.util.Collection v;
java.util.concurrent.ConcurrentHashMap v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Object;
if v != v goto label;
return 1;
label:
v = v instanceof java.util.Map;
if v != 0 goto label;
return 0;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: int size()>();
v = interfaceinvoke v.<java.util.Map: int size()>();
if v == v goto label;
return 0;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Ticker: long read()>();
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: 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 = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getKey()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getValue()>();
if v == null goto label;
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean isAlive()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean hasExpired(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
if v == 0 goto label;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void scheduleDrainBuffers()>();
return 0;
label:
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
if v == v goto label;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
label:
return 0;
label:
return 1;
}
public int hashCode()
{
com.github.benmanes.caffeine.cache.Ticker v;
long v;
int v, v, v, v;
boolean v, v, v;
java.util.Iterator v;
java.util.Collection v;
java.util.concurrent.ConcurrentHashMap v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = 0;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Ticker: long read()>();
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: 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 = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getKey()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getValue()>();
if v == null goto label;
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean isAlive()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean hasExpired(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
if v == 0 goto label;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void scheduleDrainBuffers()>();
goto label;
label:
v = virtualinvoke v.<java.lang.Object: int hashCode()>();
v = virtualinvoke v.<java.lang.Object: int hashCode()>();
v = v ^ v;
v = v + v;
goto label;
label:
return v;
}
public java.lang.String toString()
{
com.github.benmanes.caffeine.cache.Ticker v;
long v;
int v;
java.lang.String v;
boolean v, v, v;
java.util.Iterator v;
java.util.Collection v;
java.util.concurrent.ConcurrentHashMap v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v, v, v;
java.lang.StringBuilder v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Ticker: long read()>();
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.ConcurrentHashMap data>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: 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 = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getKey()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getValue()>();
if v == null goto label;
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean isAlive()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean hasExpired(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
if v == 0 goto label;
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void scheduleDrainBuffers()>();
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: int length()>();
if v == 1 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(32);
label:
if v != v goto label;
v = "(this Map)";
goto label;
label:
v = v;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.Object)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(61);
if v != v goto label;
v = "(this Map)";
goto label;
label:
v = v;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.Object)>(v);
goto label;
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("{,}");
return v;
}
java.lang.Object evictionOrder(boolean, java.util.function.Function, java.util.function.Function)
{
java.util.function.ToIntFunction v;
java.util.function.Function v, v;
java.lang.Iterable v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v;
java.util.Comparator v;
boolean v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: boolean;
v := @parameter: java.util.function.Function;
v := @parameter: java.util.function.Function;
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_evictionOrder_17__36: java.util.function.ToIntFunction bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache)>(v);
v = staticinvoke <java.util.Comparator: java.util.Comparator comparingInt(java.util.function.ToIntFunction)>(v);
if v == 0 goto label;
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_evictionOrder_18__38: java.lang.Iterable bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache,java.util.Comparator)>(v, v);
goto label;
label:
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_evictionOrder_19__37: java.lang.Iterable bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache,java.util.Comparator)>(v, v);
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object snapshot(java.lang.Iterable,java.util.function.Function,java.util.function.Function)>(v, v, v);
return v;
}
java.lang.Object expireAfterAccessOrder(boolean, java.util.function.Function, java.util.function.Function)
{
com.github.benmanes.caffeine.cache.AccessOrderDeque v;
java.util.function.Function v, v;
java.lang.Iterable v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v;
boolean v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: boolean;
v := @parameter: java.util.function.Function;
v := @parameter: java.util.function.Function;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evicts()>();
if v == 0 goto label;
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_expireAfterAccessOrder_20__40: java.lang.Iterable bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache,boolean)>(v, v);
goto label;
label:
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderWindowDeque()>();
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AccessOrderDeque accessOrderWindowDeque()>();
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$descendingIterator__39: java.lang.Iterable bootstrap$(com.github.benmanes.caffeine.cache.AccessOrderDeque)>(v);
label:
v = v;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.Object snapshot(java.lang.Iterable,java.util.function.Function,java.util.function.Function)>(v, v, v);
return v;
}
java.lang.Object snapshot(java.lang.Iterable, java.util.function.Function, java.util.function.Function)
{
java.lang.Throwable v, v;
java.util.function.Function v, v, v;
java.lang.Iterable v;
java.util.Iterator v;
java.util.concurrent.locks.ReentrantLock v, v, v;
java.util.function.Predicate v;
java.util.stream.Stream v, v, v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v;
java.util.Spliterator v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: java.lang.Iterable;
v := @parameter: java.util.function.Function;
v := @parameter: java.util.function.Function;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void maintenance(java.lang.Runnable)>(null);
v = interfaceinvoke v.<java.lang.Iterable: java.util.Iterator iterator()>();
v = staticinvoke <java.util.Spliterators: java.util.Spliterator spliteratorUnknownSize(java.util.Iterator,int)>(v, 1297);
v = staticinvoke <java.util.stream.StreamSupport: java.util.stream.Stream stream(java.util.Spliterator,boolean)>(v, 0);
label:
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$lambda_snapshot_21__41: java.util.function.Function bootstrap$(com.github.benmanes.caffeine.cache.BoundedLocalCache,java.util.function.Function)>(v, v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <com.github.benmanes.caffeine.cache.BoundedLocalCache$nonNull__42: java.util.function.Predicate bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = interfaceinvoke v.<java.util.function.Function: java.lang.Object apply(java.lang.Object)>(v);
label:
interfaceinvoke v.<java.util.stream.Stream: void close()>();
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void rescheduleCleanUpIfIncomplete()>();
return v;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.util.concurrent.locks.ReentrantLock evictionLock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: void rescheduleCleanUpIfIncomplete()>();
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
com.github.benmanes.caffeine.cache.Policy$CacheEntry nodeToCacheEntry(com.github.benmanes.caffeine.cache.Node, java.util.function.Function)
{
com.github.benmanes.caffeine.cache.Ticker v;
com.github.benmanes.caffeine.cache.Node v;
boolean v, v, v, v, v, v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.function.Function v;
com.github.benmanes.caffeine.cache.SnapshotEntry v;
int v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
java.lang.Object v, v, v;
v := @this: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v := @parameter: com.github.benmanes.caffeine.cache.Node;
v := @parameter: java.util.function.Function;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.function.Function: java.lang.Object apply(java.lang.Object)>(v);
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: java.lang.Object getKey()>();
if v == null goto label;
if v == null goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: boolean isAlive()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.Ticker: long read()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean hasExpired(com.github.benmanes.caffeine.cache.Node,long)>(v, v);
if v == 0 goto label;
label:
return null;
label:
v = 9223372036854775807L;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterAccess()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: long getAccessTime()>();
v = v - v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long expiresAfterAccessNanos()>();
v = v + v;
v = staticinvoke <java.lang.Math: long min(long,long)>(9223372036854775807L, v);
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterWrite()>();
if v == 0 goto label;
v = v & -2L;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: long getWriteTime()>();
v = v & -2L;
v = v - v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long expiresAfterWriteNanos()>();
v = v + v;
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresVariable()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: long getVariableTime()>();
v = v - v;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean refreshAfterWrite()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: long getWriteTime()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long refreshAfterWriteNanos()>();
v = v + v;
goto label;
label:
v = v + 9223372036854775807L;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.Node: int getPolicyWeight()>();
v = v + v;
v = staticinvoke <com.github.benmanes.caffeine.cache.SnapshotEntry: com.github.benmanes.caffeine.cache.SnapshotEntry forEntry(java.lang.Object,java.lang.Object,long,int,long,long)>(v, v, v, v, v, v);
return v;
}
static com.github.benmanes.caffeine.cache.SerializationProxy makeSerializationProxy(com.github.benmanes.caffeine.cache.BoundedLocalCache)
{
com.github.benmanes.caffeine.cache.Ticker v;
long v, v, v, v, v;
com.github.benmanes.caffeine.cache.Weigher v;
com.github.benmanes.caffeine.cache.AsyncCacheLoader v;
com.github.benmanes.caffeine.cache.Expiry v;
com.github.benmanes.caffeine.cache.RemovalListener v, v;
boolean v, v, v, v, v, v, v, v, v, v, v;
com.github.benmanes.caffeine.cache.NodeFactory v, v;
com.github.benmanes.caffeine.cache.SerializationProxy v;
com.github.benmanes.caffeine.cache.BoundedLocalCache v;
v := @parameter: com.github.benmanes.caffeine.cache.BoundedLocalCache;
v = new com.github.benmanes.caffeine.cache.SerializationProxy;
specialinvoke v.<com.github.benmanes.caffeine.cache.SerializationProxy: void <init>()>();
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean collectKeys()>();
v.<com.github.benmanes.caffeine.cache.SerializationProxy: boolean weakKeys> = v;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: boolean weakValues()>();
v.<com.github.benmanes.caffeine.cache.SerializationProxy: boolean weakValues> = v;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.NodeFactory nodeFactory>;
v = interfaceinvoke v.<com.github.benmanes.caffeine.cache.NodeFactory: boolean softValues()>();
v.<com.github.benmanes.caffeine.cache.SerializationProxy: boolean softValues> = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean isRecordingStats()>();
v.<com.github.benmanes.caffeine.cache.SerializationProxy: boolean isRecordingStats> = v;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.RemovalListener evictionListener>;
v.<com.github.benmanes.caffeine.cache.SerializationProxy: com.github.benmanes.caffeine.cache.RemovalListener evictionListener> = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.RemovalListener removalListener()>();
v.<com.github.benmanes.caffeine.cache.SerializationProxy: com.github.benmanes.caffeine.cache.RemovalListener removalListener> = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Ticker expirationTicker()>();
v.<com.github.benmanes.caffeine.cache.SerializationProxy: com.github.benmanes.caffeine.cache.Ticker ticker> = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterAccess()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long expiresAfterAccessNanos()>();
v.<com.github.benmanes.caffeine.cache.SerializationProxy: long expiresAfterAccessNanos> = v;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresAfterWrite()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long expiresAfterWriteNanos()>();
v.<com.github.benmanes.caffeine.cache.SerializationProxy: long expiresAfterWriteNanos> = v;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean expiresVariable()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Expiry expiry()>();
v.<com.github.benmanes.caffeine.cache.SerializationProxy: com.github.benmanes.caffeine.cache.Expiry expiry> = v;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean refreshAfterWrite()>();
if v == 0 goto label;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long refreshAfterWriteNanos()>();
v.<com.github.benmanes.caffeine.cache.SerializationProxy: long refreshAfterWriteNanos> = v;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evicts()>();
if v == 0 goto label;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean isWeighted>;
if v == 0 goto label;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.Weigher weigher>;
v.<com.github.benmanes.caffeine.cache.SerializationProxy: com.github.benmanes.caffeine.cache.Weigher weigher> = v;
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long maximum()>();
v.<com.github.benmanes.caffeine.cache.SerializationProxy: long maximumWeight> = v;
goto label;
label:
v = virtualinvoke v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: long maximum()>();
v.<com.github.benmanes.caffeine.cache.SerializationProxy: long maximumSize> = v;
label:
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: com.github.benmanes.caffeine.cache.AsyncCacheLoader cacheLoader>;
v.<com.github.benmanes.caffeine.cache.SerializationProxy: com.github.benmanes.caffeine.cache.AsyncCacheLoader cacheLoader> = v;
v = v.<com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean isAsync>;
v.<com.github.benmanes.caffeine.cache.SerializationProxy: boolean async> = v;
return v;
}
static void <clinit>()
{
long v, v;
java.lang.ReflectiveOperationException v;
int v, v, v, v;
java.lang.String v;
java.lang.System$Logger v;
java.lang.invoke.VarHandle v;
java.lang.invoke.MethodHandles$Lookup v;
java.lang.Runtime v;
java.util.concurrent.TimeUnit v, v;
java.lang.Class v;
java.lang.ExceptionInInitializerError v;
v = class "Lcom/github/benmanes/caffeine/cache/BoundedLocalCache;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = staticinvoke <java.lang.System: java.lang.System$Logger getLogger(java.lang.String)>(v);
<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.System$Logger logger> = v;
v = staticinvoke <java.lang.Runtime: java.lang.Runtime getRuntime()>();
v = virtualinvoke v.<java.lang.Runtime: int availableProcessors()>();
<com.github.benmanes.caffeine.cache.BoundedLocalCache: int NCPU> = v;
v = <com.github.benmanes.caffeine.cache.BoundedLocalCache: int NCPU>;
v = staticinvoke <com.github.benmanes.caffeine.cache.Caffeine: int ceilingPowerOfTwo(int)>(v);
v = 128 * v;
<com.github.benmanes.caffeine.cache.BoundedLocalCache: int WRITE_BUFFER_MAX> = v;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(1L);
<com.github.benmanes.caffeine.cache.BoundedLocalCache: long EXPIRE_WRITE_TOLERANCE> = v;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(30L);
<com.github.benmanes.caffeine.cache.BoundedLocalCache: long WARN_AFTER_LOCK_WAIT_NANOS> = v;
label:
v = staticinvoke <java.lang.invoke.MethodHandles: java.lang.invoke.MethodHandles$Lookup lookup()>();
v = virtualinvoke v.<java.lang.invoke.MethodHandles$Lookup: java.lang.invoke.VarHandle findVarHandle(java.lang.Class,java.lang.String,java.lang.Class)>(class "Lcom/github/benmanes/caffeine/cache/BoundedLocalCache;", "refreshes", class "Ljava/util/concurrent/ConcurrentMap;");
<com.github.benmanes.caffeine.cache.BoundedLocalCache: java.lang.invoke.VarHandle REFRESHES> = v;
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.ExceptionInInitializerError;
specialinvoke v.<java.lang.ExceptionInInitializerError: void <init>(java.lang.Throwable)>(v);
throw v;
label:
return;
catch java.lang.ReflectiveOperationException from label to label with label;
}
}