public class io.ebeaninternal.server.cache.DefaultServerCache implements io.ebean.cache.ServerCache
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.ebeaninternal.server.cache.DefaultServerCache
super_class: java.lang.Object
{
protected static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
public static final io.ebeaninternal.server.cache.DefaultServerCache$CompareByLastAccess BY_LAST_ACCESS;
descriptor: Lio/ebeaninternal/server/cache/DefaultServerCache$CompareByLastAccess;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
protected final java.util.Map<java.lang.Object, io.ebeaninternal.server.cache.DefaultServerCache$CacheEntry> map;
descriptor: Ljava/util/Map;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Object;Lio/ebeaninternal/server/cache/DefaultServerCache$CacheEntry;>;
protected final io.ebean.metric.CountMetric hitCount;
descriptor: Lio/ebean/metric/CountMetric;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final io.ebean.metric.CountMetric missCount;
descriptor: Lio/ebean/metric/CountMetric;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final io.ebean.metric.CountMetric putCount;
descriptor: Lio/ebean/metric/CountMetric;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final io.ebean.metric.CountMetric removeCount;
descriptor: Lio/ebean/metric/CountMetric;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final io.ebean.metric.CountMetric clearCount;
descriptor: Lio/ebean/metric/CountMetric;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final io.ebean.metric.CountMetric evictCount;
descriptor: Lio/ebean/metric/CountMetric;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final java.lang.String shortName;
descriptor: Ljava/lang/String;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private int maxSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final int trimFrequency;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int maxIdleSecs;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int maxSecsToLive;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private io.ebean.cache.TenantAwareKey tenantAwareKey;
descriptor: Lio/ebean/cache/TenantAwareKey;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lio/ebeaninternal/server/cache/DefaultServerCache;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic io.ebeaninternal.server.cache.DefaultServerCache.logger:Lorg/slf4j/Logger;
1: new io.ebeaninternal.server.cache.DefaultServerCache$CompareByLastAccess
dup
invokespecial io.ebeaninternal.server.cache.DefaultServerCache$CompareByLastAccess.<init>:()V
putstatic io.ebeaninternal.server.cache.DefaultServerCache.BY_LAST_ACCESS:Lio/ebeaninternal/server/cache/DefaultServerCache$CompareByLastAccess;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(io.ebeaninternal.server.cache.DefaultServerCacheConfig);
descriptor: (Lio/ebeaninternal/server/cache/DefaultServerCacheConfig;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
invokevirtual io.ebeaninternal.server.cache.DefaultServerCacheConfig.getName:()Ljava/lang/String;
putfield io.ebeaninternal.server.cache.DefaultServerCache.name:Ljava/lang/String;
2: aload 0
aload 1
invokevirtual io.ebeaninternal.server.cache.DefaultServerCacheConfig.getShortName:()Ljava/lang/String;
putfield io.ebeaninternal.server.cache.DefaultServerCache.shortName:Ljava/lang/String;
3: aload 0
aload 1
invokevirtual io.ebeaninternal.server.cache.DefaultServerCacheConfig.getMap:()Ljava/util/Map;
putfield io.ebeaninternal.server.cache.DefaultServerCache.map:Ljava/util/Map;
4: aload 0
aload 1
invokevirtual io.ebeaninternal.server.cache.DefaultServerCacheConfig.getMaxSize:()I
putfield io.ebeaninternal.server.cache.DefaultServerCache.maxSize:I
5: aload 0
new io.ebean.cache.TenantAwareKey
dup
aload 1
invokevirtual io.ebeaninternal.server.cache.DefaultServerCacheConfig.getTenantProvider:()Lio/ebean/config/CurrentTenantProvider;
invokespecial io.ebean.cache.TenantAwareKey.<init>:(Lio/ebean/config/CurrentTenantProvider;)V
putfield io.ebeaninternal.server.cache.DefaultServerCache.tenantAwareKey:Lio/ebean/cache/TenantAwareKey;
6: aload 0
aload 1
invokevirtual io.ebeaninternal.server.cache.DefaultServerCacheConfig.getMaxIdleSecs:()I
putfield io.ebeaninternal.server.cache.DefaultServerCache.maxIdleSecs:I
7: aload 0
aload 1
invokevirtual io.ebeaninternal.server.cache.DefaultServerCacheConfig.getMaxSecsToLive:()I
putfield io.ebeaninternal.server.cache.DefaultServerCache.maxSecsToLive:I
8: aload 0
aload 1
invokevirtual io.ebeaninternal.server.cache.DefaultServerCacheConfig.determineTrimFrequency:()I
putfield io.ebeaninternal.server.cache.DefaultServerCache.trimFrequency:I
9: invokestatic io.ebean.metric.MetricFactory.get:()Lio/ebean/metric/MetricFactory;
astore 2
start local 2 10: ldc "l2n."
astore 3
start local 3 11: aload 0
aload 2
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.shortName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".hit"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface io.ebean.metric.MetricFactory.createCountMetric:(Ljava/lang/String;)Lio/ebean/metric/CountMetric;
putfield io.ebeaninternal.server.cache.DefaultServerCache.hitCount:Lio/ebean/metric/CountMetric;
12: aload 0
aload 2
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.shortName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".miss"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface io.ebean.metric.MetricFactory.createCountMetric:(Ljava/lang/String;)Lio/ebean/metric/CountMetric;
putfield io.ebeaninternal.server.cache.DefaultServerCache.missCount:Lio/ebean/metric/CountMetric;
13: aload 0
aload 2
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.shortName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".put"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface io.ebean.metric.MetricFactory.createCountMetric:(Ljava/lang/String;)Lio/ebean/metric/CountMetric;
putfield io.ebeaninternal.server.cache.DefaultServerCache.putCount:Lio/ebean/metric/CountMetric;
14: aload 0
aload 2
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.shortName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".remove"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface io.ebean.metric.MetricFactory.createCountMetric:(Ljava/lang/String;)Lio/ebean/metric/CountMetric;
putfield io.ebeaninternal.server.cache.DefaultServerCache.removeCount:Lio/ebean/metric/CountMetric;
15: aload 0
aload 2
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.shortName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".clear"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface io.ebean.metric.MetricFactory.createCountMetric:(Ljava/lang/String;)Lio/ebean/metric/CountMetric;
putfield io.ebeaninternal.server.cache.DefaultServerCache.clearCount:Lio/ebean/metric/CountMetric;
16: aload 0
aload 2
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.shortName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".evict"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface io.ebean.metric.MetricFactory.createCountMetric:(Ljava/lang/String;)Lio/ebean/metric/CountMetric;
putfield io.ebeaninternal.server.cache.DefaultServerCache.evictCount:Lio/ebean/metric/CountMetric;
17: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
0 18 1 config Lio/ebeaninternal/server/cache/DefaultServerCacheConfig;
10 18 2 factory Lio/ebean/metric/MetricFactory;
11 18 3 prefix Ljava/lang/String;
MethodParameters:
Name Flags
config
public void periodicTrim(io.ebean.BackgroundExecutor);
descriptor: (Lio/ebean/BackgroundExecutor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=2
start local 0 start local 1 0: new io.ebeaninternal.server.cache.DefaultServerCache$EvictionRunnable
dup
aload 0
invokespecial io.ebeaninternal.server.cache.DefaultServerCache$EvictionRunnable.<init>:(Lio/ebeaninternal/server/cache/DefaultServerCache;)V
astore 2
start local 2 1: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.trimFrequency:I
ifne 2
bipush 60
goto 3
StackMap locals: io.ebeaninternal.server.cache.DefaultServerCache$EvictionRunnable
StackMap stack:
2: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.trimFrequency:I
StackMap locals:
StackMap stack: int
3: i2l
lstore 3
start local 3 4: aload 1
aload 2
lload 3
lload 3
getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
invokeinterface io.ebean.BackgroundExecutor.scheduleWithFixedDelay:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
pop
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
0 6 1 executor Lio/ebean/BackgroundExecutor;
1 6 2 trim Lio/ebeaninternal/server/cache/DefaultServerCache$EvictionRunnable;
4 6 3 trimFreqSecs J
MethodParameters:
Name Flags
executor
public void visit(io.ebean.meta.MetricVisitor);
descriptor: (Lio/ebean/meta/MetricVisitor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.hitCount:Lio/ebean/metric/CountMetric;
aload 1
invokeinterface io.ebean.metric.CountMetric.visit:(Lio/ebean/meta/MetricVisitor;)V
1: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.missCount:Lio/ebean/metric/CountMetric;
aload 1
invokeinterface io.ebean.metric.CountMetric.visit:(Lio/ebean/meta/MetricVisitor;)V
2: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.putCount:Lio/ebean/metric/CountMetric;
aload 1
invokeinterface io.ebean.metric.CountMetric.visit:(Lio/ebean/meta/MetricVisitor;)V
3: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.removeCount:Lio/ebean/metric/CountMetric;
aload 1
invokeinterface io.ebean.metric.CountMetric.visit:(Lio/ebean/meta/MetricVisitor;)V
4: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.clearCount:Lio/ebean/metric/CountMetric;
aload 1
invokeinterface io.ebean.metric.CountMetric.visit:(Lio/ebean/meta/MetricVisitor;)V
5: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.evictCount:Lio/ebean/metric/CountMetric;
aload 1
invokeinterface io.ebean.metric.CountMetric.visit:(Lio/ebean/meta/MetricVisitor;)V
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
0 7 1 visitor Lio/ebean/meta/MetricVisitor;
MethodParameters:
Name Flags
visitor
public io.ebean.cache.ServerCacheStatistics getStatistics(boolean);
descriptor: (Z)Lio/ebean/cache/ServerCacheStatistics;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: new io.ebean.cache.ServerCacheStatistics
dup
invokespecial io.ebean.cache.ServerCacheStatistics.<init>:()V
astore 2
start local 2 1: aload 2
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.name:Ljava/lang/String;
invokevirtual io.ebean.cache.ServerCacheStatistics.setCacheName:(Ljava/lang/String;)V
2: aload 2
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.maxSize:I
invokevirtual io.ebean.cache.ServerCacheStatistics.setMaxSize:(I)V
3: aload 2
aload 0
invokevirtual io.ebeaninternal.server.cache.DefaultServerCache.size:()I
invokevirtual io.ebean.cache.ServerCacheStatistics.setSize:(I)V
4: aload 2
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.hitCount:Lio/ebean/metric/CountMetric;
iload 1
invokeinterface io.ebean.metric.CountMetric.get:(Z)J
invokevirtual io.ebean.cache.ServerCacheStatistics.setHitCount:(J)V
5: aload 2
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.missCount:Lio/ebean/metric/CountMetric;
iload 1
invokeinterface io.ebean.metric.CountMetric.get:(Z)J
invokevirtual io.ebean.cache.ServerCacheStatistics.setMissCount:(J)V
6: aload 2
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.putCount:Lio/ebean/metric/CountMetric;
iload 1
invokeinterface io.ebean.metric.CountMetric.get:(Z)J
invokevirtual io.ebean.cache.ServerCacheStatistics.setPutCount:(J)V
7: aload 2
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.removeCount:Lio/ebean/metric/CountMetric;
iload 1
invokeinterface io.ebean.metric.CountMetric.get:(Z)J
invokevirtual io.ebean.cache.ServerCacheStatistics.setRemoveCount:(J)V
8: aload 2
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.clearCount:Lio/ebean/metric/CountMetric;
iload 1
invokeinterface io.ebean.metric.CountMetric.get:(Z)J
invokevirtual io.ebean.cache.ServerCacheStatistics.setClearCount:(J)V
9: aload 2
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.evictCount:Lio/ebean/metric/CountMetric;
iload 1
invokeinterface io.ebean.metric.CountMetric.get:(Z)J
invokevirtual io.ebean.cache.ServerCacheStatistics.setEvictCount:(J)V
10: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
0 11 1 reset Z
1 11 2 cacheStats Lio/ebean/cache/ServerCacheStatistics;
MethodParameters:
Name Flags
reset
public long getHitCount();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.hitCount:Lio/ebean/metric/CountMetric;
iconst_0
invokeinterface io.ebean.metric.CountMetric.get:(Z)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
public long getMissCount();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.missCount:Lio/ebean/metric/CountMetric;
iconst_0
invokeinterface io.ebean.metric.CountMetric.get:(Z)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
public int getHitRatio();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.missCount:Lio/ebean/metric/CountMetric;
iconst_0
invokeinterface io.ebean.metric.CountMetric.get:(Z)J
lstore 1
start local 1 1: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.hitCount:Lio/ebean/metric/CountMetric;
iconst_0
invokeinterface io.ebean.metric.CountMetric.get:(Z)J
lstore 3
start local 3 2: lload 3
lload 1
ladd
lstore 5
start local 5 3: lload 5
lconst_0
lcmp
ifne 5
4: iconst_0
ireturn
5: StackMap locals: long long long
StackMap stack:
lload 3
ldc 100
lmul
lload 5
ldiv
l2i
ireturn
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
1 6 1 mc J
2 6 3 hc J
3 6 5 totalCount J
public java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.name:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
public java.lang.String getShortName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.shortName:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
public void clear();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.clearCount:Lio/ebean/metric/CountMetric;
invokeinterface io.ebean.metric.CountMetric.increment:()V
1: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.map:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
protected java.lang.Object key(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.tenantAwareKey:Lio/ebean/cache/TenantAwareKey;
aload 1
invokevirtual io.ebean.cache.TenantAwareKey.key:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
0 1 1 id Ljava/lang/Object;
MethodParameters:
Name Flags
id
public java.lang.Object get(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual io.ebeaninternal.server.cache.DefaultServerCache.getCacheEntry:(Ljava/lang/Object;)Lio/ebeaninternal/server/cache/DefaultServerCache$CacheEntry;
astore 2
start local 2 1: aload 2
ifnonnull 4
2: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.missCount:Lio/ebean/metric/CountMetric;
invokeinterface io.ebean.metric.CountMetric.increment:()V
3: aconst_null
areturn
4: StackMap locals: io.ebeaninternal.server.cache.DefaultServerCache$CacheEntry
StackMap stack:
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.hitCount:Lio/ebean/metric/CountMetric;
invokeinterface io.ebean.metric.CountMetric.increment:()V
5: aload 0
aload 2
invokevirtual io.ebeaninternal.server.cache.DefaultServerCache.unwrapEntry:(Lio/ebeaninternal/server/cache/DefaultServerCache$CacheEntry;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
0 6 1 id Ljava/lang/Object;
1 6 2 entry Lio/ebeaninternal/server/cache/DefaultServerCache$CacheEntry;
MethodParameters:
Name Flags
id
protected java.lang.Object unwrapEntry(io.ebeaninternal.server.cache.DefaultServerCache$CacheEntry);
descriptor: (Lio/ebeaninternal/server/cache/DefaultServerCache$CacheEntry;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual io.ebeaninternal.server.cache.DefaultServerCache$CacheEntry.getValue:()Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
0 1 1 entry Lio/ebeaninternal/server/cache/DefaultServerCache$CacheEntry;
MethodParameters:
Name Flags
entry
protected io.ebeaninternal.server.cache.DefaultServerCache$CacheEntry getCacheEntry(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lio/ebeaninternal/server/cache/DefaultServerCache$CacheEntry;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.map:Ljava/util/Map;
aload 0
aload 1
invokevirtual io.ebeaninternal.server.cache.DefaultServerCache.key:(Ljava/lang/Object;)Ljava/lang/Object;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.ebeaninternal.server.cache.DefaultServerCache$CacheEntry
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
0 1 1 id Ljava/lang/Object;
MethodParameters:
Name Flags
id
public void putAll(java.util.Map<java.lang.Object, java.lang.Object>);
descriptor: (Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokedynamic accept(Lio/ebeaninternal/server/cache/DefaultServerCache;)Ljava/util/function/BiConsumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)V
io/ebeaninternal/server/cache/DefaultServerCache.put(Ljava/lang/Object;Ljava/lang/Object;)V (5)
(Ljava/lang/Object;Ljava/lang/Object;)V
invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
0 2 1 keyValues Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
Signature: (Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;)V
MethodParameters:
Name Flags
keyValues
public void put(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual io.ebeaninternal.server.cache.DefaultServerCache.key:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 1: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.map:Ljava/util/Map;
aload 3
new io.ebeaninternal.server.cache.DefaultServerCache$CacheEntry
dup
aload 3
aload 2
invokespecial io.ebeaninternal.server.cache.DefaultServerCache$CacheEntry.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.putCount:Lio/ebean/metric/CountMetric;
invokeinterface io.ebean.metric.CountMetric.increment:()V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
0 4 1 id Ljava/lang/Object;
0 4 2 value Ljava/lang/Object;
1 4 3 key Ljava/lang/Object;
MethodParameters:
Name Flags
id
value
public void remove(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.map:Ljava/util/Map;
aload 0
aload 1
invokevirtual io.ebeaninternal.server.cache.DefaultServerCache.key:(Ljava/lang/Object;)Ljava/lang/Object;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.ebeaninternal.server.cache.DefaultServerCache$CacheEntry
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.removeCount:Lio/ebean/metric/CountMetric;
invokeinterface io.ebean.metric.CountMetric.increment:()V
3: StackMap locals: io.ebeaninternal.server.cache.DefaultServerCache$CacheEntry
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
0 4 1 id Ljava/lang/Object;
1 4 2 entry Lio/ebeaninternal/server/cache/DefaultServerCache$CacheEntry;
MethodParameters:
Name Flags
id
public int size();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.map:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
protected int getTrimSize();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.maxSize:I
bipush 90
imul
bipush 100
idiv
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
public void runEviction();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=19, args_size=1
start local 0 0: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.maxSize:I
ifne 3
1: lconst_0
lstore 1
start local 1 2: goto 4
end local 1 3: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.ebeaninternal.server.cache.DefaultServerCache.size:()I
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.maxSize:I
isub
i2l
lstore 1
start local 1 4: StackMap locals: long
StackMap stack:
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.maxIdleSecs:I
ifne 6
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.maxSecsToLive:I
ifne 6
lload 1
lconst_0
lcmp
ifge 6
5: return
6: StackMap locals:
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lstore 3
start local 3 7: lconst_0
lstore 5
start local 5 8: lconst_0
lstore 7
start local 7 9: lconst_0
lstore 9
start local 9 10: new java.util.ArrayList
dup
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.map:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 11
start local 11 11: lload 3
getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.maxIdleSecs:I
i2l
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
lsub
lstore 12
start local 12 12: lload 3
getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.maxSecsToLive:I
i2l
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
lsub
lstore 14
start local 14 13: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.map:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 16
start local 16 14: goto 26
15: StackMap locals: io.ebeaninternal.server.cache.DefaultServerCache long long long long long java.util.List long long java.util.Iterator
StackMap stack:
aload 16
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.ebeaninternal.server.cache.DefaultServerCache$CacheEntry
astore 17
start local 17 16: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.maxIdleSecs:I
ifle 20
lload 12
aload 17
invokevirtual io.ebeaninternal.server.cache.DefaultServerCache$CacheEntry.getLastAccessTime:()J
lcmp
ifle 20
17: aload 16
invokeinterface java.util.Iterator.remove:()V
18: lload 5
lconst_1
ladd
lstore 5
19: goto 26
StackMap locals: io.ebeaninternal.server.cache.DefaultServerCache$CacheEntry
StackMap stack:
20: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.maxSecsToLive:I
ifle 24
lload 14
aload 17
invokevirtual io.ebeaninternal.server.cache.DefaultServerCache$CacheEntry.getCreateTime:()J
lcmp
ifle 24
21: aload 16
invokeinterface java.util.Iterator.remove:()V
22: lload 7
lconst_1
ladd
lstore 7
23: goto 26
StackMap locals:
StackMap stack:
24: lload 1
lconst_0
lcmp
ifle 26
25: aload 11
aload 17
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 17 26: StackMap locals:
StackMap stack:
aload 16
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
27: lload 1
lconst_0
lcmp
ifle 37
28: aload 11
invokeinterface java.util.List.size:()I
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.maxSize:I
isub
i2l
lstore 9
29: lload 9
lconst_0
lcmp
ifle 37
30: aload 11
getstatic io.ebeaninternal.server.cache.DefaultServerCache.BY_LAST_ACCESS:Lio/ebeaninternal/server/cache/DefaultServerCache$CompareByLastAccess;
invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
31: aload 0
invokevirtual io.ebeaninternal.server.cache.DefaultServerCache.getTrimSize:()I
istore 17
start local 17 32: iload 17
istore 18
start local 18 33: goto 36
34: StackMap locals: int int
StackMap stack:
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.map:Ljava/util/Map;
aload 11
iload 18
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast io.ebeaninternal.server.cache.DefaultServerCache$CacheEntry
invokevirtual io.ebeaninternal.server.cache.DefaultServerCache$CacheEntry.getKey:()Ljava/lang/Object;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
35: iinc 18 1
StackMap locals:
StackMap stack:
36: iload 18
aload 11
invokeinterface java.util.List.size:()I
if_icmplt 34
end local 18 end local 17 37: StackMap locals:
StackMap stack:
aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.evictCount:Lio/ebean/metric/CountMetric;
lload 5
invokeinterface io.ebean.metric.CountMetric.add:(J)V
38: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.evictCount:Lio/ebean/metric/CountMetric;
lload 7
invokeinterface io.ebean.metric.CountMetric.add:(J)V
39: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.evictCount:Lio/ebean/metric/CountMetric;
lload 9
invokeinterface io.ebean.metric.CountMetric.add:(J)V
40: getstatic io.ebeaninternal.server.cache.DefaultServerCache.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 45
41: getstatic java.util.concurrent.TimeUnit.MICROSECONDS:Ljava/util/concurrent/TimeUnit;
invokestatic java.lang.System.nanoTime:()J
lload 3
lsub
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
lstore 17
start local 17 42: getstatic io.ebeaninternal.server.cache.DefaultServerCache.logger:Lorg/slf4j/Logger;
ldc "Executed trim of cache {} in [{}]millis idle[{}] timeToLive[{}] accessTime[{}]"
iconst_5
anewarray java.lang.Object
dup
iconst_0
43: aload 0
getfield io.ebeaninternal.server.cache.DefaultServerCache.name:Ljava/lang/String;
aastore
dup
iconst_1
lload 17
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
lload 5
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_3
lload 7
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_4
lload 9
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
44: invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 17 45: StackMap locals:
StackMap stack:
return
end local 16 end local 14 end local 12 end local 11 end local 9 end local 7 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lio/ebeaninternal/server/cache/DefaultServerCache;
2 3 1 trimForMaxSize J
4 46 1 trimForMaxSize J
7 46 3 startNanos J
8 46 5 trimmedByIdle J
9 46 7 trimmedByTTL J
10 46 9 trimmedByLRU J
11 46 11 activeList Ljava/util/List<Lio/ebeaninternal/server/cache/DefaultServerCache$CacheEntry;>;
12 46 12 idleExpireNano J
13 46 14 ttlExpireNano J
14 46 16 it Ljava/util/Iterator<Lio/ebeaninternal/server/cache/DefaultServerCache$CacheEntry;>;
16 26 17 cacheEntry Lio/ebeaninternal/server/cache/DefaultServerCache$CacheEntry;
32 37 17 trimSize I
33 37 18 i I
42 45 17 exeMicros J
}
SourceFile: "DefaultServerCache.java"
NestMembers:
io.ebeaninternal.server.cache.DefaultServerCache$CacheEntry io.ebeaninternal.server.cache.DefaultServerCache$CompareByLastAccess io.ebeaninternal.server.cache.DefaultServerCache$EvictionRunnable
InnerClasses:
public CacheEntry = io.ebeaninternal.server.cache.DefaultServerCache$CacheEntry of io.ebeaninternal.server.cache.DefaultServerCache
public CompareByLastAccess = io.ebeaninternal.server.cache.DefaultServerCache$CompareByLastAccess of io.ebeaninternal.server.cache.DefaultServerCache
public EvictionRunnable = io.ebeaninternal.server.cache.DefaultServerCache$EvictionRunnable of io.ebeaninternal.server.cache.DefaultServerCache
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles