public class org.hsqldb.persist.Cache extends org.hsqldb.map.BaseHashMap
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.hsqldb.persist.Cache
super_class: org.hsqldb.map.BaseHashMap
{
private int reserveCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
final org.hsqldb.persist.DataFileCache dataFileCache;
descriptor: Lorg/hsqldb/persist/DataFileCache;
flags: (0x0010) ACC_FINAL
private int capacity;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private long bytesCapacity;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final org.hsqldb.persist.Cache$CachedObjectComparator rowComparator;
descriptor: Lorg/hsqldb/persist/Cache$CachedObjectComparator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.hsqldb.map.BaseHashMap$BaseHashIterator objectIterator;
descriptor: Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean updateAccess;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private org.hsqldb.persist.CachedObject[] rowTable;
descriptor: [Lorg/hsqldb/persist/CachedObject;
flags: (0x0002) ACC_PRIVATE
private long cacheBytesLength;
descriptor: J
flags: (0x0002) ACC_PRIVATE
org.hsqldb.lib.StopWatch saveAllTimer;
descriptor: Lorg/hsqldb/lib/StopWatch;
flags: (0x0000)
org.hsqldb.lib.StopWatch shadowTimer;
descriptor: Lorg/hsqldb/lib/StopWatch;
flags: (0x0000)
int saveRowCount;
descriptor: I
flags: (0x0000)
void <init>(org.hsqldb.persist.DataFileCache);
descriptor: (Lorg/hsqldb/persist/DataFileCache;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.hsqldb.persist.DataFileCache.capacity:()I
iconst_3
1: iconst_0
iconst_1
invokespecial org.hsqldb.map.BaseHashMap.<init>:(IIIZ)V
2: aload 0
new org.hsqldb.lib.StopWatch
dup
iconst_0
invokespecial org.hsqldb.lib.StopWatch.<init>:(Z)V
putfield org.hsqldb.persist.Cache.saveAllTimer:Lorg/hsqldb/lib/StopWatch;
3: aload 0
new org.hsqldb.lib.StopWatch
dup
iconst_0
invokespecial org.hsqldb.lib.StopWatch.<init>:(Z)V
putfield org.hsqldb.persist.Cache.shadowTimer:Lorg/hsqldb/lib/StopWatch;
4: aload 0
iconst_0
putfield org.hsqldb.persist.Cache.saveRowCount:I
5: aload 0
aload 1
invokevirtual org.hsqldb.persist.DataFileCache.capacity:()I
putfield org.hsqldb.persist.Cache.maxCapacity:I
6: aload 0
aload 1
putfield org.hsqldb.persist.Cache.dataFileCache:Lorg/hsqldb/persist/DataFileCache;
7: aload 0
aload 1
invokevirtual org.hsqldb.persist.DataFileCache.capacity:()I
putfield org.hsqldb.persist.Cache.capacity:I
8: aload 0
aload 1
invokevirtual org.hsqldb.persist.DataFileCache.bytesCapacity:()J
putfield org.hsqldb.persist.Cache.bytesCapacity:J
9: aload 0
new org.hsqldb.persist.Cache$CachedObjectComparator
dup
invokespecial org.hsqldb.persist.Cache$CachedObjectComparator.<init>:()V
putfield org.hsqldb.persist.Cache.rowComparator:Lorg/hsqldb/persist/Cache$CachedObjectComparator;
10: aload 0
aload 0
getfield org.hsqldb.persist.Cache.capacity:I
anewarray org.hsqldb.persist.CachedObject
putfield org.hsqldb.persist.Cache.rowTable:[Lorg/hsqldb/persist/CachedObject;
11: aload 0
lconst_0
putfield org.hsqldb.persist.Cache.cacheBytesLength:J
12: aload 0
new org.hsqldb.map.BaseHashMap$BaseHashIterator
dup
aload 0
iconst_1
invokespecial org.hsqldb.map.BaseHashMap$BaseHashIterator.<init>:(Lorg/hsqldb/map/BaseHashMap;Z)V
putfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
13: aload 0
iconst_1
putfield org.hsqldb.persist.Cache.updateAccess:Z
14: aload 0
aload 0
getfield org.hsqldb.persist.Cache.rowComparator:Lorg/hsqldb/persist/Cache$CachedObjectComparator;
putfield org.hsqldb.persist.Cache.comparator:Lorg/hsqldb/lib/ObjectComparator;
15: aload 0
aload 1
instanceof org.hsqldb.persist.TextCache
ifne 17
16: aload 1
instanceof org.hsqldb.persist.DataFileCacheSession
ifeq 18
StackMap locals: org.hsqldb.persist.Cache org.hsqldb.persist.DataFileCache
StackMap stack: org.hsqldb.persist.Cache
17: iconst_0
goto 19
18: StackMap locals:
StackMap stack: org.hsqldb.persist.Cache
bipush 8
19: StackMap locals: org.hsqldb.persist.Cache org.hsqldb.persist.DataFileCache
StackMap stack: org.hsqldb.persist.Cache int
putfield org.hsqldb.persist.Cache.reserveCount:I
20: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/hsqldb/persist/Cache;
0 21 1 dfc Lorg/hsqldb/persist/DataFileCache;
MethodParameters:
Name Flags
dfc
long getTotalCachedBlockSize();
descriptor: ()J
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.hsqldb.persist.Cache.cacheBytesLength:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hsqldb/persist/Cache;
public org.hsqldb.persist.CachedObject get(long);
descriptor: (J)Lorg/hsqldb/persist/CachedObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.hsqldb.persist.Cache.accessCount:I
ldc 2146435071
if_icmple 2
1: aload 0
invokevirtual org.hsqldb.persist.Cache.updateAndResetAccessCounts:()V
2: StackMap locals:
StackMap stack:
aload 0
lload 1
invokevirtual org.hsqldb.persist.Cache.getObjectLookup:(J)I
istore 3
start local 3 3: iload 3
iconst_m1
if_icmpne 5
4: aconst_null
areturn
5: StackMap locals: int
StackMap stack:
aload 0
getfield org.hsqldb.persist.Cache.accessTable:[I
iload 3
aload 0
dup
getfield org.hsqldb.persist.Cache.accessCount:I
iconst_1
iadd
dup_x1
putfield org.hsqldb.persist.Cache.accessCount:I
iastore
6: aload 0
getfield org.hsqldb.persist.Cache.objectKeyTable:[Ljava/lang/Object;
iload 3
aaload
checkcast org.hsqldb.persist.CachedObject
astore 4
start local 4 7: aload 4
areturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/hsqldb/persist/Cache;
0 8 1 pos J
3 8 3 lookup I
7 8 4 object Lorg/hsqldb/persist/CachedObject;
MethodParameters:
Name Flags
pos
private synchronized void updateAndResetAccessCounts();
descriptor: ()V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.hsqldb.persist.Cache.accessCount:I
ldc 2146435071
if_icmple 4
1: aload 0
invokevirtual org.hsqldb.persist.Cache.updateAccessCounts:()V
2: aload 0
invokevirtual org.hsqldb.persist.Cache.resetAccessCount:()V
3: aload 0
invokevirtual org.hsqldb.persist.Cache.updateObjectAccessCounts:()V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/hsqldb/persist/Cache;
void put(org.hsqldb.persist.CachedObject);
descriptor: (Lorg/hsqldb/persist/CachedObject;)V
flags: (0x0000)
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface org.hsqldb.persist.CachedObject.getStorageSize:()I
istore 2
start local 2 1: aload 0
iload 2
invokevirtual org.hsqldb.persist.Cache.preparePut:(I)Z
ifeq 4
2: aload 0
aload 1
invokevirtual org.hsqldb.persist.Cache.putNoCheck:(Lorg/hsqldb/persist/CachedObject;)V
3: goto 12
4: StackMap locals: int
StackMap stack:
aload 0
invokevirtual org.hsqldb.persist.Cache.size:()I
aload 0
getfield org.hsqldb.persist.Cache.reserveCount:I
iadd
aload 0
getfield org.hsqldb.persist.Cache.capacity:I
if_icmplt 5
aload 0
getfield org.hsqldb.persist.Cache.capacity:I
i2l
goto 8
5: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.persist.Cache.bytesCapacity:J
6: ldc 1024
7: ldiv
8: StackMap locals:
StackMap stack: long
lstore 3
start local 3 9: sipush 471
10: lload 3
invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
11: invokestatic org.hsqldb.error.Error.error:(ILjava/lang/String;)Lorg/hsqldb/HsqlException;
athrow
end local 3 12: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/hsqldb/persist/Cache;
0 13 1 row Lorg/hsqldb/persist/CachedObject;
1 13 2 storageSize I
9 12 3 value J
MethodParameters:
Name Flags
row
void putUsingReserve(org.hsqldb.persist.CachedObject);
descriptor: (Lorg/hsqldb/persist/CachedObject;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface org.hsqldb.persist.CachedObject.getStorageSize:()I
istore 2
start local 2 1: aload 0
iload 2
invokevirtual org.hsqldb.persist.Cache.preparePut:(I)Z
pop
2: aload 0
invokevirtual org.hsqldb.persist.Cache.size:()I
aload 0
getfield org.hsqldb.persist.Cache.capacity:I
if_icmplt 6
3: sipush 471
4: aload 0
getfield org.hsqldb.persist.Cache.capacity:I
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
5: invokestatic org.hsqldb.error.Error.error:(ILjava/lang/String;)Lorg/hsqldb/HsqlException;
athrow
6: StackMap locals: int
StackMap stack:
aload 0
aload 1
invokevirtual org.hsqldb.persist.Cache.putNoCheck:(Lorg/hsqldb/persist/CachedObject;)V
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/hsqldb/persist/Cache;
0 8 1 row Lorg/hsqldb/persist/CachedObject;
1 8 2 storageSize I
MethodParameters:
Name Flags
row
boolean preparePut(int);
descriptor: (I)Z
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.hsqldb.persist.Cache.size:()I
aload 0
getfield org.hsqldb.persist.Cache.reserveCount:I
iadd
aload 0
getfield org.hsqldb.persist.Cache.capacity:I
if_icmplt 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: istore 2
start local 2 3: iload 1
i2l
aload 0
getfield org.hsqldb.persist.Cache.cacheBytesLength:J
ladd
aload 0
getfield org.hsqldb.persist.Cache.bytesCapacity:J
lcmp
ifle 4
iconst_1
goto 5
StackMap locals: int
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 3
start local 3 6: iload 2
ifne 7
iload 3
ifeq 44
7: StackMap locals: int
StackMap stack:
aload 0
iconst_0
invokevirtual org.hsqldb.persist.Cache.cleanUp:(Z)V
8: aload 0
invokevirtual org.hsqldb.persist.Cache.size:()I
aload 0
getfield org.hsqldb.persist.Cache.reserveCount:I
iadd
aload 0
getfield org.hsqldb.persist.Cache.capacity:I
if_icmplt 9
iconst_1
goto 10
StackMap locals:
StackMap stack:
9: iconst_0
StackMap locals:
StackMap stack: int
10: istore 2
11: iload 1
i2l
aload 0
getfield org.hsqldb.persist.Cache.cacheBytesLength:J
ladd
aload 0
getfield org.hsqldb.persist.Cache.bytesCapacity:J
lcmp
ifle 12
iconst_1
goto 13
StackMap locals:
StackMap stack:
12: iconst_0
StackMap locals:
StackMap stack: int
13: istore 3
14: iload 2
ifne 15
iload 3
ifeq 17
15: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.hsqldb.persist.Cache.clearUnchanged:()V
16: goto 18
17: StackMap locals:
StackMap stack:
iconst_1
ireturn
18: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.hsqldb.persist.Cache.size:()I
aload 0
getfield org.hsqldb.persist.Cache.reserveCount:I
iadd
aload 0
getfield org.hsqldb.persist.Cache.capacity:I
if_icmplt 19
iconst_1
goto 20
StackMap locals:
StackMap stack:
19: iconst_0
StackMap locals:
StackMap stack: int
20: istore 2
21: iload 1
i2l
aload 0
getfield org.hsqldb.persist.Cache.cacheBytesLength:J
ladd
aload 0
getfield org.hsqldb.persist.Cache.bytesCapacity:J
lcmp
ifle 22
iconst_1
goto 23
StackMap locals:
StackMap stack:
22: iconst_0
StackMap locals:
StackMap stack: int
23: istore 3
24: iload 2
ifne 25
iload 3
ifeq 27
25: StackMap locals:
StackMap stack:
aload 0
iconst_1
invokevirtual org.hsqldb.persist.Cache.cleanUp:(Z)V
26: goto 28
27: StackMap locals:
StackMap stack:
iconst_1
ireturn
28: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.hsqldb.persist.Cache.size:()I
aload 0
getfield org.hsqldb.persist.Cache.reserveCount:I
iadd
aload 0
getfield org.hsqldb.persist.Cache.capacity:I
if_icmplt 29
iconst_1
goto 30
StackMap locals:
StackMap stack:
29: iconst_0
StackMap locals:
StackMap stack: int
30: istore 2
31: iload 1
i2l
aload 0
getfield org.hsqldb.persist.Cache.cacheBytesLength:J
ladd
aload 0
getfield org.hsqldb.persist.Cache.bytesCapacity:J
lcmp
ifle 32
iconst_1
goto 33
StackMap locals:
StackMap stack:
32: iconst_0
StackMap locals:
StackMap stack: int
33: istore 3
34: iload 2
ifeq 38
35: aload 0
getfield org.hsqldb.persist.Cache.dataFileCache:Lorg/hsqldb/persist/DataFileCache;
36: ldc "dataFileCache CACHE ROWS limit reached"
37: invokevirtual org.hsqldb.persist.DataFileCache.logInfoEvent:(Ljava/lang/String;)V
38: StackMap locals:
StackMap stack:
iload 3
ifeq 42
39: aload 0
getfield org.hsqldb.persist.Cache.dataFileCache:Lorg/hsqldb/persist/DataFileCache;
40: ldc "dataFileCache CACHE SIZE limit reached"
41: invokevirtual org.hsqldb.persist.DataFileCache.logInfoEvent:(Ljava/lang/String;)V
42: StackMap locals:
StackMap stack:
iload 2
ifne 43
iload 3
ifeq 44
43: StackMap locals:
StackMap stack:
iconst_0
ireturn
44: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Lorg/hsqldb/persist/Cache;
0 45 1 storageSize I
3 45 2 exceedsCount Z
6 45 3 exceedsSize Z
MethodParameters:
Name Flags
storageSize
private void putNoCheck(org.hsqldb.persist.CachedObject);
descriptor: (Lorg/hsqldb/persist/CachedObject;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.hsqldb.persist.Cache.accessCount:I
ldc 2146435071
if_icmple 4
1: aload 0
invokevirtual org.hsqldb.persist.Cache.updateAccessCounts:()V
2: aload 0
invokevirtual org.hsqldb.persist.Cache.resetAccessCount:()V
3: aload 0
invokevirtual org.hsqldb.persist.Cache.updateObjectAccessCounts:()V
4: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 1
invokeinterface org.hsqldb.persist.CachedObject.getPos:()J
iconst_0
invokevirtual org.hsqldb.persist.Cache.addOrRemoveObject:(Ljava/lang/Object;JZ)Ljava/lang/Object;
astore 2
start local 2 5: aload 2
ifnull 10
6: aload 0
getfield org.hsqldb.persist.Cache.dataFileCache:Lorg/hsqldb/persist/DataFileCache;
new java.lang.StringBuilder
dup
ldc "existing object in Cache.put() "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
7: aload 1
invokeinterface org.hsqldb.persist.CachedObject.getPos:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
8: aload 1
invokeinterface org.hsqldb.persist.CachedObject.getStorageSize:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aconst_null
9: invokevirtual org.hsqldb.persist.DataFileCache.logSevereEvent:(Ljava/lang/String;Ljava/lang/Throwable;)V
10: StackMap locals: java.lang.Object
StackMap stack:
aload 1
iconst_1
invokeinterface org.hsqldb.persist.CachedObject.setInMemory:(Z)V
11: aload 0
dup
getfield org.hsqldb.persist.Cache.cacheBytesLength:J
aload 1
invokeinterface org.hsqldb.persist.CachedObject.getStorageSize:()I
i2l
ladd
putfield org.hsqldb.persist.Cache.cacheBytesLength:J
12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/hsqldb/persist/Cache;
0 13 1 row Lorg/hsqldb/persist/CachedObject;
5 13 2 existing Ljava/lang/Object;
MethodParameters:
Name Flags
row
org.hsqldb.persist.CachedObject release(long);
descriptor: (J)Lorg/hsqldb/persist/CachedObject;
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aconst_null
lload 1
iconst_1
invokevirtual org.hsqldb.persist.Cache.addOrRemoveObject:(Ljava/lang/Object;JZ)Ljava/lang/Object;
checkcast org.hsqldb.persist.CachedObject
astore 3
start local 3 1: aload 3
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: org.hsqldb.persist.CachedObject
StackMap stack:
aload 0
dup
getfield org.hsqldb.persist.Cache.cacheBytesLength:J
aload 3
invokeinterface org.hsqldb.persist.CachedObject.getStorageSize:()I
i2l
lsub
putfield org.hsqldb.persist.Cache.cacheBytesLength:J
4: aload 3
iconst_0
invokeinterface org.hsqldb.persist.CachedObject.setInMemory:(Z)V
5: aload 3
areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/hsqldb/persist/Cache;
0 6 1 pos J
1 6 3 r Lorg/hsqldb/persist/CachedObject;
MethodParameters:
Name Flags
pos
public void releaseRange(org.hsqldb.lib.IntIndex, int);
descriptor: (Lorg/hsqldb/lib/IntIndex;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.reset:()V
1: goto 10
2: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.next:()Ljava/lang/Object;
checkcast org.hsqldb.persist.CachedObject
astore 3
start local 3 3: aload 3
invokeinterface org.hsqldb.persist.CachedObject.getPos:()J
lstore 4
start local 4 4: lload 4
iload 2
i2l
ldiv
l2i
istore 6
start local 6 5: aload 1
iload 6
invokevirtual org.hsqldb.lib.IntIndex.findFirstEqualKeyIndex:(I)I
istore 7
start local 7 6: iload 7
iflt 10
7: aload 3
iconst_0
invokeinterface org.hsqldb.persist.CachedObject.setInMemory:(Z)V
8: aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.remove:()V
9: aload 0
dup
getfield org.hsqldb.persist.Cache.cacheBytesLength:J
aload 3
invokeinterface org.hsqldb.persist.CachedObject.getStorageSize:()I
i2l
lsub
putfield org.hsqldb.persist.Cache.cacheBytesLength:J
end local 7 end local 6 end local 4 end local 3 10: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.hasNext:()Z
ifne 2
11: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/hsqldb/persist/Cache;
0 12 1 list Lorg/hsqldb/lib/IntIndex;
0 12 2 fileBlockItemCount I
3 10 3 o Lorg/hsqldb/persist/CachedObject;
4 10 4 pos J
5 10 6 block I
6 10 7 index I
MethodParameters:
Name Flags
list
fileBlockItemCount
public void releaseRange(long, long);
descriptor: (JJ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.reset:()V
1: goto 8
2: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.next:()Ljava/lang/Object;
checkcast org.hsqldb.persist.CachedObject
astore 5
start local 5 3: aload 5
invokeinterface org.hsqldb.persist.CachedObject.getPos:()J
lstore 6
start local 6 4: lload 6
lload 1
lcmp
iflt 8
lload 6
lload 3
lcmp
ifge 8
5: aload 5
iconst_0
invokeinterface org.hsqldb.persist.CachedObject.setInMemory:(Z)V
6: aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.remove:()V
7: aload 0
dup
getfield org.hsqldb.persist.Cache.cacheBytesLength:J
aload 5
invokeinterface org.hsqldb.persist.CachedObject.getStorageSize:()I
i2l
lsub
putfield org.hsqldb.persist.Cache.cacheBytesLength:J
end local 6 end local 5 8: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.hasNext:()Z
ifne 2
9: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/hsqldb/persist/Cache;
0 10 1 startPos J
0 10 3 limitPos J
3 8 5 o Lorg/hsqldb/persist/CachedObject;
4 8 6 pos J
MethodParameters:
Name Flags
startPos
limitPos
private void updateAccessCounts();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
getfield org.hsqldb.persist.Cache.updateAccess:Z
ifeq 10
1: iconst_0
istore 3
start local 3 2: goto 9
3: StackMap locals: org.hsqldb.persist.Cache top top int
StackMap stack:
aload 0
getfield org.hsqldb.persist.Cache.objectKeyTable:[Ljava/lang/Object;
iload 3
aaload
checkcast org.hsqldb.persist.CachedObject
astore 1
start local 1 4: aload 1
ifnull 8
5: aload 1
invokeinterface org.hsqldb.persist.CachedObject.getAccessCount:()I
istore 2
start local 2 6: iload 2
aload 0
getfield org.hsqldb.persist.Cache.accessTable:[I
iload 3
iaload
if_icmple 8
7: aload 0
getfield org.hsqldb.persist.Cache.accessTable:[I
iload 3
iload 2
iastore
end local 2 8: StackMap locals: org.hsqldb.persist.Cache org.hsqldb.persist.CachedObject top int
StackMap stack:
iinc 3 1
end local 1 StackMap locals: org.hsqldb.persist.Cache top top int
StackMap stack:
9: iload 3
aload 0
getfield org.hsqldb.persist.Cache.objectKeyTable:[Ljava/lang/Object;
arraylength
if_icmplt 3
end local 3 10: StackMap locals: org.hsqldb.persist.Cache
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/hsqldb/persist/Cache;
4 9 1 r Lorg/hsqldb/persist/CachedObject;
6 8 2 count I
2 10 3 i I
private void updateObjectAccessCounts();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield org.hsqldb.persist.Cache.updateAccess:Z
ifeq 9
1: iconst_0
istore 3
start local 3 2: goto 8
3: StackMap locals: org.hsqldb.persist.Cache top top int
StackMap stack:
aload 0
getfield org.hsqldb.persist.Cache.objectKeyTable:[Ljava/lang/Object;
iload 3
aaload
checkcast org.hsqldb.persist.CachedObject
astore 1
start local 1 4: aload 1
ifnull 7
5: aload 0
getfield org.hsqldb.persist.Cache.accessTable:[I
iload 3
iaload
istore 2
start local 2 6: aload 1
iload 2
invokeinterface org.hsqldb.persist.CachedObject.updateAccessCount:(I)V
end local 2 7: StackMap locals: org.hsqldb.persist.Cache org.hsqldb.persist.CachedObject top int
StackMap stack:
iinc 3 1
end local 1 StackMap locals: org.hsqldb.persist.Cache top top int
StackMap stack:
8: iload 3
aload 0
getfield org.hsqldb.persist.Cache.objectKeyTable:[Ljava/lang/Object;
arraylength
if_icmplt 3
end local 3 9: StackMap locals: org.hsqldb.persist.Cache
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/hsqldb/persist/Cache;
4 8 1 r Lorg/hsqldb/persist/CachedObject;
6 7 2 count I
2 9 3 i I
private void cleanUp(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.hsqldb.persist.Cache.updateAccessCounts:()V
1: iconst_0
istore 2
start local 2 2: aload 0
invokevirtual org.hsqldb.persist.Cache.size:()I
iconst_2
idiv
istore 3
start local 3 3: iload 1
ifeq 4
aload 0
getfield org.hsqldb.persist.Cache.accessCount:I
iconst_1
iadd
goto 7
4: StackMap locals: int int
StackMap stack:
aload 0
iload 3
5: iload 3
bipush 8
idiv
6: invokevirtual org.hsqldb.persist.Cache.getAccessCountCeiling:(II)I
7: StackMap locals:
StackMap stack: int
istore 4
start local 4 8: iload 1
ifeq 9
goto 10
9: StackMap locals: int
StackMap stack:
aload 0
getfield org.hsqldb.persist.Cache.accessMin:I
iload 4
iadd
iconst_2
idiv
pop
10: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.reset:()V
11: goto 44
12: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.next:()Ljava/lang/Object;
checkcast org.hsqldb.persist.CachedObject
astore 5
start local 5 13: aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.getAccessCount:()I
istore 6
start local 6 14: iload 6
iload 4
if_icmpge 17
15: aload 5
invokeinterface org.hsqldb.persist.CachedObject.isKeepInMemory:()Z
ifne 17
16: iconst_1
goto 18
StackMap locals: org.hsqldb.persist.CachedObject int
StackMap stack:
17: iconst_0
StackMap locals:
StackMap stack: int
18: istore 7
start local 7 19: aload 5
invokeinterface org.hsqldb.persist.CachedObject.isNew:()Z
ifeq 23
20: aload 5
invokeinterface org.hsqldb.persist.CachedObject.getStorageSize:()I
21: sipush 4096
22: if_icmplt 23
iconst_1
goto 24
StackMap locals: int
StackMap stack:
23: iconst_0
StackMap locals:
StackMap stack: int
24: istore 8
start local 8 25: aload 5
invokeinterface org.hsqldb.persist.CachedObject.hasChanged:()Z
ifeq 27
iload 7
ifne 26
iload 8
ifeq 27
StackMap locals: int
StackMap stack:
26: iconst_1
goto 28
StackMap locals:
StackMap stack:
27: iconst_0
StackMap locals:
StackMap stack: int
28: istore 9
start local 9 29: aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
iload 4
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.setAccessCount:(I)V
30: aload 5
dup
astore 10
monitorenter
31: iload 9
ifeq 33
32: aload 0
getfield org.hsqldb.persist.Cache.rowTable:[Lorg/hsqldb/persist/CachedObject;
iload 2
iinc 2 1
aload 5
aastore
33: StackMap locals: int org.hsqldb.persist.CachedObject
StackMap stack:
iload 7
ifeq 37
34: aload 5
iconst_0
invokeinterface org.hsqldb.persist.CachedObject.setInMemory:(Z)V
35: aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.remove:()V
36: aload 0
dup
getfield org.hsqldb.persist.Cache.cacheBytesLength:J
aload 5
invokeinterface org.hsqldb.persist.CachedObject.getStorageSize:()I
i2l
lsub
putfield org.hsqldb.persist.Cache.cacheBytesLength:J
37: StackMap locals:
StackMap stack:
aload 10
monitorexit
38: goto 41
StackMap locals:
StackMap stack: java.lang.Throwable
39: aload 10
monitorexit
40: athrow
41: StackMap locals:
StackMap stack:
iload 2
aload 0
getfield org.hsqldb.persist.Cache.rowTable:[Lorg/hsqldb/persist/CachedObject;
arraylength
if_icmpne 44
42: aload 0
iload 2
invokevirtual org.hsqldb.persist.Cache.saveRows:(I)V
43: iconst_0
istore 2
end local 9 end local 8 end local 7 end local 6 end local 5 44: StackMap locals: org.hsqldb.persist.Cache int int int int
StackMap stack:
aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.hasNext:()Z
ifne 12
45: aload 0
iload 2
invokevirtual org.hsqldb.persist.Cache.saveRows:(I)V
46: aload 0
iload 4
invokevirtual org.hsqldb.persist.Cache.setAccessCountFloor:(I)V
47: aload 0
dup
getfield org.hsqldb.persist.Cache.accessCount:I
iconst_1
iadd
putfield org.hsqldb.persist.Cache.accessCount:I
48: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 49 0 this Lorg/hsqldb/persist/Cache;
0 49 1 all Z
2 49 2 savecount I
3 49 3 removeCount I
8 49 4 accessTarget I
13 44 5 row Lorg/hsqldb/persist/CachedObject;
14 44 6 currentAccessCount I
19 44 7 oldRow Z
25 44 8 newRow Z
29 44 9 saveRow Z
Exception table:
from to target type
31 38 39 any
39 40 39 any
MethodParameters:
Name Flags
all
void clearUnchanged();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.reset:()V
1: goto 12
2: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.next:()Ljava/lang/Object;
checkcast org.hsqldb.persist.CachedObject
astore 1
start local 1 3: aload 1
dup
astore 2
monitorenter
4: aload 1
invokeinterface org.hsqldb.persist.CachedObject.isKeepInMemory:()Z
ifne 8
aload 1
invokeinterface org.hsqldb.persist.CachedObject.hasChanged:()Z
ifne 8
5: aload 1
iconst_0
invokeinterface org.hsqldb.persist.CachedObject.setInMemory:(Z)V
6: aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.remove:()V
7: aload 0
dup
getfield org.hsqldb.persist.Cache.cacheBytesLength:J
aload 1
invokeinterface org.hsqldb.persist.CachedObject.getStorageSize:()I
i2l
lsub
putfield org.hsqldb.persist.Cache.cacheBytesLength:J
8: StackMap locals: org.hsqldb.persist.CachedObject org.hsqldb.persist.CachedObject
StackMap stack:
aload 2
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 2
monitorexit
11: athrow
end local 1 12: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.hasNext:()Z
ifne 2
13: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/hsqldb/persist/Cache;
3 12 1 row Lorg/hsqldb/persist/CachedObject;
Exception table:
from to target type
4 9 10 any
10 11 10 any
private void saveRows(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.persist.Cache.rowComparator:Lorg/hsqldb/persist/Cache$CachedObjectComparator;
iconst_1
invokevirtual org.hsqldb.persist.Cache$CachedObjectComparator.setType:(I)V
3: aload 0
getfield org.hsqldb.persist.Cache.rowTable:[Lorg/hsqldb/persist/CachedObject;
iload 1
aload 0
getfield org.hsqldb.persist.Cache.rowComparator:Lorg/hsqldb/persist/Cache$CachedObjectComparator;
invokestatic org.hsqldb.lib.ArraySort.sort:([Ljava/lang/Object;ILjava/util/Comparator;)V
4: aload 0
getfield org.hsqldb.persist.Cache.dataFileCache:Lorg/hsqldb/persist/DataFileCache;
aload 0
getfield org.hsqldb.persist.Cache.rowTable:[Lorg/hsqldb/persist/CachedObject;
iconst_0
iload 1
invokevirtual org.hsqldb.persist.DataFileCache.saveRows:([Lorg/hsqldb/persist/CachedObject;II)V
5: aload 0
dup
getfield org.hsqldb.persist.Cache.saveRowCount:I
iload 1
iadd
putfield org.hsqldb.persist.Cache.saveRowCount:I
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/hsqldb/persist/Cache;
0 7 1 count I
MethodParameters:
Name Flags
count
void saveAll();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.reset:()V
2: goto 10
3: StackMap locals: int
StackMap stack:
iload 1
aload 0
getfield org.hsqldb.persist.Cache.rowTable:[Lorg/hsqldb/persist/CachedObject;
arraylength
if_icmpne 6
4: aload 0
iload 1
invokevirtual org.hsqldb.persist.Cache.saveRows:(I)V
5: iconst_0
istore 1
6: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.next:()Ljava/lang/Object;
checkcast org.hsqldb.persist.CachedObject
astore 2
start local 2 7: aload 2
invokeinterface org.hsqldb.persist.CachedObject.hasChanged:()Z
ifeq 10
8: aload 0
getfield org.hsqldb.persist.Cache.rowTable:[Lorg/hsqldb/persist/CachedObject;
iload 1
aload 2
aastore
9: iinc 1 1
end local 2 10: StackMap locals:
StackMap stack:
aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.hasNext:()Z
ifne 3
11: aload 0
iload 1
invokevirtual org.hsqldb.persist.Cache.saveRows:(I)V
12: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/hsqldb/persist/Cache;
1 13 1 savecount I
7 10 2 r Lorg/hsqldb/persist/CachedObject;
void logSaveRowsEvent(int, long, long);
descriptor: (IJJ)V
flags: (0x0000)
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
getfield org.hsqldb.persist.Cache.saveAllTimer:Lorg/hsqldb/lib/StopWatch;
invokevirtual org.hsqldb.lib.StopWatch.elapsedTime:()J
lstore 6
start local 6 1: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 8
start local 8 2: aload 8
ldc "cache save rows total [count,time] "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 8
aload 0
getfield org.hsqldb.persist.Cache.saveRowCount:I
iload 1
iadd
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
4: aload 8
bipush 44
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
lload 6
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
bipush 32
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
5: aload 8
ldc "operation [count,time,size]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
bipush 44
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
6: aload 8
lload 6
lload 4
lsub
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
bipush 44
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
7: aload 8
lload 2
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
bipush 32
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
8: aload 8
ldc "tx-ts "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 8
aload 0
getfield org.hsqldb.persist.Cache.dataFileCache:Lorg/hsqldb/persist/DataFileCache;
getfield org.hsqldb.persist.DataFileCache.database:Lorg/hsqldb/Database;
getfield org.hsqldb.Database.txManager:Lorg/hsqldb/TransactionManager;
invokeinterface org.hsqldb.TransactionManager.getGlobalChangeTimestamp:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
pop
10: aload 0
getfield org.hsqldb.persist.Cache.dataFileCache:Lorg/hsqldb/persist/DataFileCache;
aload 8
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.hsqldb.persist.DataFileCache.logDetailEvent:(Ljava/lang/String;)V
11: return
end local 8 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/hsqldb/persist/Cache;
0 12 1 saveCount I
0 12 2 storageSize J
0 12 4 startTime J
1 12 6 time J
2 12 8 sb Ljava/lang/StringBuilder;
MethodParameters:
Name Flags
saveCount
storageSize
startTime
public void clear();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.hsqldb.map.BaseHashMap.clear:()V
1: aload 0
lconst_0
putfield org.hsqldb.persist.Cache.cacheBytesLength:J
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hsqldb/persist/Cache;
public org.hsqldb.lib.Iterator getIterator();
descriptor: ()Lorg/hsqldb/lib/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.reset:()V
1: aload 0
getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hsqldb/persist/Cache;
protected int incrementAccessCount();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.hsqldb.map.BaseHashMap.incrementAccessCount:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hsqldb/persist/Cache;
}
SourceFile: "Cache.java"
NestMembers:
org.hsqldb.persist.Cache$CachedObjectComparator
InnerClasses:
protected BaseHashIterator = org.hsqldb.map.BaseHashMap$BaseHashIterator of org.hsqldb.map.BaseHashMap
final CachedObjectComparator = org.hsqldb.persist.Cache$CachedObjectComparator of org.hsqldb.persist.Cache