public class org.apache.catalina.webresources.Cache
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.catalina.webresources.Cache
super_class: java.lang.Object
{
private static final org.apache.juli.logging.Log log;
descriptor: Lorg/apache/juli/logging/Log;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
protected static final org.apache.tomcat.util.res.StringManager sm;
descriptor: Lorg/apache/tomcat/util/res/StringManager;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
private static final long TARGET_FREE_PERCENT_GET;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private static final long TARGET_FREE_PERCENT_BACKGROUND;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 10
private static final int OBJECT_MAX_SIZE_FACTOR;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 20
private final org.apache.catalina.webresources.StandardRoot root;
descriptor: Lorg/apache/catalina/webresources/StandardRoot;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.atomic.AtomicLong size;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long ttl;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long maxSize;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private int objectMaxSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.util.concurrent.atomic.AtomicLong lookupCount;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x0002) ACC_PRIVATE
private java.util.concurrent.atomic.AtomicLong hitCount;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x0002) ACC_PRIVATE
private final java.util.concurrent.ConcurrentMap<java.lang.String, org.apache.catalina.webresources.CachedResource> resourceCache;
descriptor: Ljava/util/concurrent/ConcurrentMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/lang/String;Lorg/apache/catalina/webresources/CachedResource;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/apache/catalina/webresources/Cache;
invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
putstatic org.apache.catalina.webresources.Cache.log:Lorg/apache/juli/logging/Log;
1: ldc Lorg/apache/catalina/webresources/Cache;
invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager;
putstatic org.apache.catalina.webresources.Cache.sm:Lorg/apache/tomcat/util/res/StringManager;
2: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.apache.catalina.webresources.StandardRoot);
descriptor: (Lorg/apache/catalina/webresources/StandardRoot;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.atomic.AtomicLong
dup
lconst_0
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
putfield org.apache.catalina.webresources.Cache.size:Ljava/util/concurrent/atomic/AtomicLong;
2: aload 0
ldc 5000
putfield org.apache.catalina.webresources.Cache.ttl:J
3: aload 0
ldc 10485760
putfield org.apache.catalina.webresources.Cache.maxSize:J
4: aload 0
aload 0
getfield org.apache.catalina.webresources.Cache.maxSize:J
l2i
bipush 20
idiv
putfield org.apache.catalina.webresources.Cache.objectMaxSize:I
5: aload 0
new java.util.concurrent.atomic.AtomicLong
dup
lconst_0
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
putfield org.apache.catalina.webresources.Cache.lookupCount:Ljava/util/concurrent/atomic/AtomicLong;
6: aload 0
new java.util.concurrent.atomic.AtomicLong
dup
lconst_0
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
putfield org.apache.catalina.webresources.Cache.hitCount:Ljava/util/concurrent/atomic/AtomicLong;
7: aload 0
8: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.apache.catalina.webresources.Cache.resourceCache:Ljava/util/concurrent/ConcurrentMap;
9: aload 0
aload 1
putfield org.apache.catalina.webresources.Cache.root:Lorg/apache/catalina/webresources/StandardRoot;
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/catalina/webresources/Cache;
0 11 1 root Lorg/apache/catalina/webresources/StandardRoot;
MethodParameters:
Name Flags
root
protected org.apache.catalina.WebResource getResource(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Lorg/apache/catalina/WebResource;
flags: (0x0004) ACC_PROTECTED
Code:
stack=9, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.apache.catalina.webresources.Cache.noCache:(Ljava/lang/String;)Z
ifeq 2
1: aload 0
getfield org.apache.catalina.webresources.Cache.root:Lorg/apache/catalina/webresources/StandardRoot;
aload 1
iload 2
invokevirtual org.apache.catalina.webresources.StandardRoot.getResourceInternal:(Ljava/lang/String;Z)Lorg/apache/catalina/WebResource;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.webresources.Cache.lookupCount:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
pop2
3: aload 0
getfield org.apache.catalina.webresources.Cache.resourceCache:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.catalina.webresources.CachedResource
astore 3
start local 3 4: aload 3
ifnull 7
aload 3
iload 2
invokevirtual org.apache.catalina.webresources.CachedResource.validateResource:(Z)Z
ifne 7
5: aload 0
aload 1
invokevirtual org.apache.catalina.webresources.Cache.removeCacheEntry:(Ljava/lang/String;)V
6: aconst_null
astore 3
7: StackMap locals: org.apache.catalina.webresources.CachedResource
StackMap stack:
aload 3
ifnonnull 27
8: aload 0
invokevirtual org.apache.catalina.webresources.Cache.getObjectMaxSizeBytes:()I
istore 4
start local 4 9: new org.apache.catalina.webresources.CachedResource
dup
aload 0
aload 0
getfield org.apache.catalina.webresources.Cache.root:Lorg/apache/catalina/webresources/StandardRoot;
aload 1
aload 0
invokevirtual org.apache.catalina.webresources.Cache.getTtl:()J
10: iload 4
iload 2
11: invokespecial org.apache.catalina.webresources.CachedResource.<init>:(Lorg/apache/catalina/webresources/Cache;Lorg/apache/catalina/webresources/StandardRoot;Ljava/lang/String;JIZ)V
astore 5
start local 5 12: aload 0
getfield org.apache.catalina.webresources.Cache.resourceCache:Ljava/util/concurrent/ConcurrentMap;
aload 1
aload 5
invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.catalina.webresources.CachedResource
astore 3
13: aload 3
ifnonnull 25
14: aload 5
astore 3
15: aload 3
iload 2
invokevirtual org.apache.catalina.webresources.CachedResource.validateResource:(Z)Z
pop
16: aload 3
invokevirtual org.apache.catalina.webresources.CachedResource.getSize:()J
lstore 6
start local 6 17: aload 0
getfield org.apache.catalina.webresources.Cache.size:Ljava/util/concurrent/atomic/AtomicLong;
lload 6
invokevirtual java.util.concurrent.atomic.AtomicLong.addAndGet:(J)J
pop2
18: aload 0
getfield org.apache.catalina.webresources.Cache.size:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
aload 0
getfield org.apache.catalina.webresources.Cache.maxSize:J
lcmp
ifle 28
19: aload 0
getfield org.apache.catalina.webresources.Cache.maxSize:J
ldc 95
lmul
ldc 100
ldiv
lstore 8
start local 8 20: aload 0
lload 8
aload 0
getfield org.apache.catalina.webresources.Cache.resourceCache:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
invokevirtual org.apache.catalina.webresources.Cache.evict:(JLjava/util/Iterator;)J
lstore 10
start local 10 21: lload 10
aload 0
getfield org.apache.catalina.webresources.Cache.maxSize:J
lcmp
ifle 28
22: aload 0
aload 1
invokevirtual org.apache.catalina.webresources.Cache.removeCacheEntry:(Ljava/lang/String;)V
23: getstatic org.apache.catalina.webresources.Cache.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.webresources.Cache.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cache.addFail"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 0
getfield org.apache.catalina.webresources.Cache.root:Lorg/apache/catalina/webresources/StandardRoot;
invokevirtual org.apache.catalina.webresources.StandardRoot.getContext:()Lorg/apache/catalina/Context;
invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
end local 10 end local 8 end local 6 24: goto 28
25: StackMap locals: int org.apache.catalina.webresources.CachedResource
StackMap stack:
aload 3
iload 2
invokevirtual org.apache.catalina.webresources.CachedResource.validateResource:(Z)Z
pop
end local 5 end local 4 26: goto 28
27: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.webresources.Cache.hitCount:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
pop2
28: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/apache/catalina/webresources/Cache;
0 29 1 path Ljava/lang/String;
0 29 2 useClassLoaderResources Z
4 29 3 cacheEntry Lorg/apache/catalina/webresources/CachedResource;
9 26 4 objectMaxSizeBytes I
12 26 5 newCacheEntry Lorg/apache/catalina/webresources/CachedResource;
17 24 6 delta J
20 24 8 targetSize J
21 24 10 newSize J
MethodParameters:
Name Flags
path
useClassLoaderResources
protected org.apache.catalina.WebResource[] getResources(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)[Lorg/apache/catalina/WebResource;
flags: (0x0004) ACC_PROTECTED
Code:
stack=9, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.apache.catalina.webresources.Cache.lookupCount:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
pop2
1: aload 0
getfield org.apache.catalina.webresources.Cache.resourceCache:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.catalina.webresources.CachedResource
astore 3
start local 3 2: aload 3
ifnull 5
aload 3
iload 2
invokevirtual org.apache.catalina.webresources.CachedResource.validateResources:(Z)Z
ifne 5
3: aload 0
aload 1
invokevirtual org.apache.catalina.webresources.Cache.removeCacheEntry:(Ljava/lang/String;)V
4: aconst_null
astore 3
5: StackMap locals: org.apache.catalina.webresources.CachedResource
StackMap stack:
aload 3
ifnonnull 25
6: aload 0
invokevirtual org.apache.catalina.webresources.Cache.getObjectMaxSizeBytes:()I
istore 4
start local 4 7: new org.apache.catalina.webresources.CachedResource
dup
aload 0
aload 0
getfield org.apache.catalina.webresources.Cache.root:Lorg/apache/catalina/webresources/StandardRoot;
aload 1
aload 0
invokevirtual org.apache.catalina.webresources.Cache.getTtl:()J
8: iload 4
iload 2
9: invokespecial org.apache.catalina.webresources.CachedResource.<init>:(Lorg/apache/catalina/webresources/Cache;Lorg/apache/catalina/webresources/StandardRoot;Ljava/lang/String;JIZ)V
astore 5
start local 5 10: aload 0
getfield org.apache.catalina.webresources.Cache.resourceCache:Ljava/util/concurrent/ConcurrentMap;
aload 1
aload 5
invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.catalina.webresources.CachedResource
astore 3
11: aload 3
ifnonnull 23
12: aload 5
astore 3
13: aload 3
iload 2
invokevirtual org.apache.catalina.webresources.CachedResource.validateResources:(Z)Z
pop
14: aload 3
invokevirtual org.apache.catalina.webresources.CachedResource.getSize:()J
lstore 6
start local 6 15: aload 0
getfield org.apache.catalina.webresources.Cache.size:Ljava/util/concurrent/atomic/AtomicLong;
lload 6
invokevirtual java.util.concurrent.atomic.AtomicLong.addAndGet:(J)J
pop2
16: aload 0
getfield org.apache.catalina.webresources.Cache.size:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
aload 0
getfield org.apache.catalina.webresources.Cache.maxSize:J
lcmp
ifle 26
17: aload 0
getfield org.apache.catalina.webresources.Cache.maxSize:J
ldc 95
lmul
ldc 100
ldiv
lstore 8
start local 8 18: aload 0
lload 8
aload 0
getfield org.apache.catalina.webresources.Cache.resourceCache:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
invokevirtual org.apache.catalina.webresources.Cache.evict:(JLjava/util/Iterator;)J
lstore 10
start local 10 19: lload 10
aload 0
getfield org.apache.catalina.webresources.Cache.maxSize:J
lcmp
ifle 26
20: aload 0
aload 1
invokevirtual org.apache.catalina.webresources.Cache.removeCacheEntry:(Ljava/lang/String;)V
21: getstatic org.apache.catalina.webresources.Cache.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.webresources.Cache.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cache.addFail"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
end local 10 end local 8 end local 6 22: goto 26
23: StackMap locals: int org.apache.catalina.webresources.CachedResource
StackMap stack:
aload 3
iload 2
invokevirtual org.apache.catalina.webresources.CachedResource.validateResources:(Z)Z
pop
end local 5 end local 4 24: goto 26
25: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.webresources.Cache.hitCount:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
pop2
26: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.apache.catalina.webresources.CachedResource.getWebResources:()[Lorg/apache/catalina/WebResource;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/apache/catalina/webresources/Cache;
0 27 1 path Ljava/lang/String;
0 27 2 useClassLoaderResources Z
2 27 3 cacheEntry Lorg/apache/catalina/webresources/CachedResource;
7 24 4 objectMaxSizeBytes I
10 24 5 newCacheEntry Lorg/apache/catalina/webresources/CachedResource;
15 22 6 delta J
18 22 8 targetSize J
19 22 10 newSize J
MethodParameters:
Name Flags
path
useClassLoaderResources
protected void backgroundProcess();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=10, locals=7, args_size=1
start local 0 0: new java.util.TreeSet
dup
new org.apache.catalina.webresources.Cache$EvictionOrder
dup
invokespecial org.apache.catalina.webresources.Cache$EvictionOrder.<init>:()V
invokespecial java.util.TreeSet.<init>:(Ljava/util/Comparator;)V
1: astore 1
start local 1 2: aload 1
aload 0
getfield org.apache.catalina.webresources.Cache.resourceCache:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.values:()Ljava/util/Collection;
invokevirtual java.util.TreeSet.addAll:(Ljava/util/Collection;)Z
pop
3: aload 1
invokevirtual java.util.TreeSet.iterator:()Ljava/util/Iterator;
astore 2
start local 2 4: aload 0
getfield org.apache.catalina.webresources.Cache.maxSize:J
ldc 90
lmul
ldc 100
ldiv
5: lstore 3
start local 3 6: aload 0
lload 3
aload 2
invokevirtual org.apache.catalina.webresources.Cache.evict:(JLjava/util/Iterator;)J
lstore 5
start local 5 7: lload 5
lload 3
lcmp
ifle 13
8: getstatic org.apache.catalina.webresources.Cache.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.webresources.Cache.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cache.backgroundEvictFail"
iconst_3
anewarray java.lang.Object
dup
iconst_0
9: ldc 10
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_1
10: aload 0
getfield org.apache.catalina.webresources.Cache.root:Lorg/apache/catalina/webresources/StandardRoot;
invokevirtual org.apache.catalina.webresources.StandardRoot.getContext:()Lorg/apache/catalina/Context;
invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
aastore
dup
iconst_2
11: lload 5
ldc 1024
ldiv
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
12: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
13: StackMap locals: org.apache.catalina.webresources.Cache java.util.TreeSet java.util.Iterator long long
StackMap stack:
return
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/catalina/webresources/Cache;
2 14 1 orderedResources Ljava/util/TreeSet<Lorg/apache/catalina/webresources/CachedResource;>;
4 14 2 iter Ljava/util/Iterator<Lorg/apache/catalina/webresources/CachedResource;>;
6 14 3 targetSize J
7 14 5 newSize J
private boolean noCache(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc ".class"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 2
1: aload 1
ldc "/WEB-INF/classes/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 3
aload 1
ldc "/WEB-INF/lib/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 3
2: StackMap locals:
StackMap stack:
aload 1
ldc "/WEB-INF/lib/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 4
aload 1
ldc ".jar"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 4
3: StackMap locals:
StackMap stack:
iconst_1
ireturn
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/catalina/webresources/Cache;
0 5 1 path Ljava/lang/String;
MethodParameters:
Name Flags
path
private long evict(long, java.util.Iterator<org.apache.catalina.webresources.CachedResource>);
descriptor: (JLjava/util/Iterator;)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 3 0: invokestatic java.lang.System.currentTimeMillis:()J
lstore 4
start local 4 1: aload 0
getfield org.apache.catalina.webresources.Cache.size:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lstore 6
start local 6 2: goto 8
3: StackMap locals: long long
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.catalina.webresources.CachedResource
astore 8
start local 8 4: aload 8
invokevirtual org.apache.catalina.webresources.CachedResource.getNextCheck:()J
lload 4
lcmp
ifle 6
5: goto 8
6: StackMap locals: org.apache.catalina.webresources.CachedResource
StackMap stack:
aload 0
aload 8
invokevirtual org.apache.catalina.webresources.CachedResource.getWebappPath:()Ljava/lang/String;
invokevirtual org.apache.catalina.webresources.Cache.removeCacheEntry:(Ljava/lang/String;)V
7: aload 0
getfield org.apache.catalina.webresources.Cache.size:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lstore 6
end local 8 8: StackMap locals:
StackMap stack:
lload 6
lload 1
lcmp
ifle 9
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
9: StackMap locals:
StackMap stack:
lload 6
lreturn
end local 6 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/catalina/webresources/Cache;
0 10 1 targetSize J
0 10 3 iter Ljava/util/Iterator<Lorg/apache/catalina/webresources/CachedResource;>;
1 10 4 now J
2 10 6 newSize J
4 8 8 resource Lorg/apache/catalina/webresources/CachedResource;
Signature: (JLjava/util/Iterator<Lorg/apache/catalina/webresources/CachedResource;>;)J
MethodParameters:
Name Flags
targetSize
iter
void removeCacheEntry(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.webresources.Cache.resourceCache:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.catalina.webresources.CachedResource
astore 2
start local 2 1: aload 2
ifnull 4
2: aload 2
invokevirtual org.apache.catalina.webresources.CachedResource.getSize:()J
lstore 3
start local 3 3: aload 0
getfield org.apache.catalina.webresources.Cache.size:Ljava/util/concurrent/atomic/AtomicLong;
lload 3
lneg
invokevirtual java.util.concurrent.atomic.AtomicLong.addAndGet:(J)J
pop2
end local 3 4: StackMap locals: org.apache.catalina.webresources.CachedResource
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/catalina/webresources/Cache;
0 5 1 path Ljava/lang/String;
1 5 2 cachedResource Lorg/apache/catalina/webresources/CachedResource;
3 4 3 delta J
MethodParameters:
Name Flags
path
public long getTtl();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.webresources.Cache.ttl:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/webresources/Cache;
public void setTtl(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
putfield org.apache.catalina.webresources.Cache.ttl:J
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/webresources/Cache;
0 2 1 ttl J
MethodParameters:
Name Flags
ttl
public long getMaxSize();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.webresources.Cache.maxSize:J
ldc 1024
ldiv
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/webresources/Cache;
public void setMaxSize(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
ldc 1024
lmul
putfield org.apache.catalina.webresources.Cache.maxSize:J
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/webresources/Cache;
0 2 1 maxSize J
MethodParameters:
Name Flags
maxSize
public long getLookupCount();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.webresources.Cache.lookupCount:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/webresources/Cache;
public long getHitCount();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.webresources.Cache.hitCount:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/webresources/Cache;
public void setObjectMaxSize(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: iload 1
i2l
ldc 1024
lmul
ldc 2147483647
lcmp
ifle 3
1: getstatic org.apache.catalina.webresources.Cache.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.webresources.Cache.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cache.objectMaxSizeTooBigBytes"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
2: aload 0
ldc 2147483647
putfield org.apache.catalina.webresources.Cache.objectMaxSize:I
3: StackMap locals:
StackMap stack:
aload 0
iload 1
sipush 1024
imul
putfield org.apache.catalina.webresources.Cache.objectMaxSize:I
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/catalina/webresources/Cache;
0 5 1 objectMaxSize I
MethodParameters:
Name Flags
objectMaxSize
public int getObjectMaxSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.webresources.Cache.objectMaxSize:I
sipush 1024
idiv
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/webresources/Cache;
public int getObjectMaxSizeBytes();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.webresources.Cache.objectMaxSize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/webresources/Cache;
void enforceObjectMaxSizeLimit();
descriptor: ()V
flags: (0x0000)
Code:
stack=8, locals=3, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.webresources.Cache.maxSize:J
ldc 20
ldiv
lstore 1
start local 1 1: lload 1
ldc 2147483647
lcmp
ifle 3
2: return
3: StackMap locals: long
StackMap stack:
aload 0
getfield org.apache.catalina.webresources.Cache.objectMaxSize:I
i2l
lload 1
lcmp
ifle 8
4: getstatic org.apache.catalina.webresources.Cache.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.webresources.Cache.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cache.objectMaxSizeTooBig"
iconst_2
anewarray java.lang.Object
dup
iconst_0
5: aload 0
getfield org.apache.catalina.webresources.Cache.objectMaxSize:I
sipush 1024
idiv
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
lload 1
l2i
sipush 1024
idiv
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
6: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
7: aload 0
lload 1
l2i
putfield org.apache.catalina.webresources.Cache.objectMaxSize:I
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/catalina/webresources/Cache;
1 9 1 limit J
public void clear();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.webresources.Cache.resourceCache:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.clear:()V
1: aload 0
getfield org.apache.catalina.webresources.Cache.size:Ljava/util/concurrent/atomic/AtomicLong;
lconst_0
invokevirtual java.util.concurrent.atomic.AtomicLong.set:(J)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/catalina/webresources/Cache;
public long getSize();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.webresources.Cache.size:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
ldc 1024
ldiv
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/webresources/Cache;
}
SourceFile: "Cache.java"
NestMembers:
org.apache.catalina.webresources.Cache$EvictionOrder
InnerClasses:
private EvictionOrder = org.apache.catalina.webresources.Cache$EvictionOrder of org.apache.catalina.webresources.Cache