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 // org.hsqldb.persist.Cache this
        start local 1 // org.hsqldb.persist.DataFileCache dfc
         0: .line 76
            aload 0 /* this */
            aload 1 /* dfc */
            invokevirtual org.hsqldb.persist.DataFileCache.capacity:()I
            iconst_3
         1: .line 77
            iconst_0
            iconst_1
            invokespecial org.hsqldb.map.BaseHashMap.<init>:(IIIZ)V
         2: .line 70
            aload 0 /* this */
            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: .line 71
            aload 0 /* this */
            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: .line 72
            aload 0 /* this */
            iconst_0
            putfield org.hsqldb.persist.Cache.saveRowCount:I
         5: .line 79
            aload 0 /* this */
            aload 1 /* dfc */
            invokevirtual org.hsqldb.persist.DataFileCache.capacity:()I
            putfield org.hsqldb.persist.Cache.maxCapacity:I
         6: .line 80
            aload 0 /* this */
            aload 1 /* dfc */
            putfield org.hsqldb.persist.Cache.dataFileCache:Lorg/hsqldb/persist/DataFileCache;
         7: .line 81
            aload 0 /* this */
            aload 1 /* dfc */
            invokevirtual org.hsqldb.persist.DataFileCache.capacity:()I
            putfield org.hsqldb.persist.Cache.capacity:I
         8: .line 82
            aload 0 /* this */
            aload 1 /* dfc */
            invokevirtual org.hsqldb.persist.DataFileCache.bytesCapacity:()J
            putfield org.hsqldb.persist.Cache.bytesCapacity:J
         9: .line 83
            aload 0 /* this */
            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: .line 84
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.capacity:I
            anewarray org.hsqldb.persist.CachedObject
            putfield org.hsqldb.persist.Cache.rowTable:[Lorg/hsqldb/persist/CachedObject;
        11: .line 85
            aload 0 /* this */
            lconst_0
            putfield org.hsqldb.persist.Cache.cacheBytesLength:J
        12: .line 86
            aload 0 /* this */
            new org.hsqldb.map.BaseHashMap$BaseHashIterator
            dup
            aload 0 /* this */
            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: .line 87
            aload 0 /* this */
            iconst_1
            putfield org.hsqldb.persist.Cache.updateAccess:Z
        14: .line 88
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.rowComparator:Lorg/hsqldb/persist/Cache$CachedObjectComparator;
            putfield org.hsqldb.persist.Cache.comparator:Lorg/hsqldb/lib/ObjectComparator;
        15: .line 89
            aload 0 /* this */
            aload 1 /* dfc */
            instanceof org.hsqldb.persist.TextCache
            ifne 17
        16: .line 90
            aload 1 /* dfc */
            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: .line 91
      StackMap locals:
      StackMap stack: org.hsqldb.persist.Cache
            bipush 8
        19: .line 89
      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: .line 92
            return
        end local 1 // org.hsqldb.persist.DataFileCache dfc
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
         0: .line 95
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.cacheBytesLength:J
            lreturn
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
        start local 1 // long pos
         0: .line 103
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.accessCount:I
            ldc 2146435071
            if_icmple 2
         1: .line 104
            aload 0 /* this */
            invokevirtual org.hsqldb.persist.Cache.updateAndResetAccessCounts:()V
         2: .line 107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* pos */
            invokevirtual org.hsqldb.persist.Cache.getObjectLookup:(J)I
            istore 3 /* lookup */
        start local 3 // int lookup
         3: .line 109
            iload 3 /* lookup */
            iconst_m1
            if_icmpne 5
         4: .line 110
            aconst_null
            areturn
         5: .line 113
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.accessTable:[I
            iload 3 /* lookup */
            aload 0 /* this */
            dup
            getfield org.hsqldb.persist.Cache.accessCount:I
            iconst_1
            iadd
            dup_x1
            putfield org.hsqldb.persist.Cache.accessCount:I
            iastore
         6: .line 115
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectKeyTable:[Ljava/lang/Object;
            iload 3 /* lookup */
            aaload
            checkcast org.hsqldb.persist.CachedObject
            astore 4 /* object */
        start local 4 // org.hsqldb.persist.CachedObject object
         7: .line 117
            aload 4 /* object */
            areturn
        end local 4 // org.hsqldb.persist.CachedObject object
        end local 3 // int lookup
        end local 1 // long pos
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
         0: .line 122
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.accessCount:I
            ldc 2146435071
            if_icmple 4
         1: .line 123
            aload 0 /* this */
            invokevirtual org.hsqldb.persist.Cache.updateAccessCounts:()V
         2: .line 124
            aload 0 /* this */
            invokevirtual org.hsqldb.persist.Cache.resetAccessCount:()V
         3: .line 125
            aload 0 /* this */
            invokevirtual org.hsqldb.persist.Cache.updateObjectAccessCounts:()V
         4: .line 127
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
        start local 1 // org.hsqldb.persist.CachedObject row
         0: .line 134
            aload 1 /* row */
            invokeinterface org.hsqldb.persist.CachedObject.getStorageSize:()I
            istore 2 /* storageSize */
        start local 2 // int storageSize
         1: .line 136
            aload 0 /* this */
            iload 2 /* storageSize */
            invokevirtual org.hsqldb.persist.Cache.preparePut:(I)Z
            ifeq 4
         2: .line 137
            aload 0 /* this */
            aload 1 /* row */
            invokevirtual org.hsqldb.persist.Cache.putNoCheck:(Lorg/hsqldb/persist/CachedObject;)V
         3: .line 138
            goto 12
         4: .line 139
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hsqldb.persist.Cache.size:()I
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.reserveCount:I
            iadd
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.capacity:I
            if_icmplt 5
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.capacity:I
            i2l
            goto 8
         5: .line 140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.bytesCapacity:J
         6: .line 141
            ldc 1024
         7: .line 140
            ldiv
         8: .line 139
      StackMap locals:
      StackMap stack: long
            lstore 3 /* value */
        start local 3 // long value
         9: .line 143
            sipush 471
        10: .line 144
            lload 3 /* value */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
        11: .line 143
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/String;)Lorg/hsqldb/HsqlException;
            athrow
        end local 3 // long value
        12: .line 146
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int storageSize
        end local 1 // org.hsqldb.persist.CachedObject row
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
        start local 1 // org.hsqldb.persist.CachedObject row
         0: .line 153
            aload 1 /* row */
            invokeinterface org.hsqldb.persist.CachedObject.getStorageSize:()I
            istore 2 /* storageSize */
        start local 2 // int storageSize
         1: .line 155
            aload 0 /* this */
            iload 2 /* storageSize */
            invokevirtual org.hsqldb.persist.Cache.preparePut:(I)Z
            pop
         2: .line 157
            aload 0 /* this */
            invokevirtual org.hsqldb.persist.Cache.size:()I
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.capacity:I
            if_icmplt 6
         3: .line 158
            sipush 471
         4: .line 159
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.capacity:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
         5: .line 158
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/String;)Lorg/hsqldb/HsqlException;
            athrow
         6: .line 162
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* row */
            invokevirtual org.hsqldb.persist.Cache.putNoCheck:(Lorg/hsqldb/persist/CachedObject;)V
         7: .line 163
            return
        end local 2 // int storageSize
        end local 1 // org.hsqldb.persist.CachedObject row
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
        start local 1 // int storageSize
         0: .line 167
            aload 0 /* this */
            invokevirtual org.hsqldb.persist.Cache.size:()I
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.reserveCount:I
            iadd
            aload 0 /* this */
            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 /* exceedsCount */
        start local 2 // boolean exceedsCount
         3: .line 168
            iload 1 /* storageSize */
            i2l
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.cacheBytesLength:J
            ladd
            aload 0 /* this */
            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 /* exceedsSize */
        start local 3 // boolean exceedsSize
         6: .line 170
            iload 2 /* exceedsCount */
            ifne 7
            iload 3 /* exceedsSize */
            ifeq 44
         7: .line 171
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual org.hsqldb.persist.Cache.cleanUp:(Z)V
         8: .line 173
            aload 0 /* this */
            invokevirtual org.hsqldb.persist.Cache.size:()I
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.reserveCount:I
            iadd
            aload 0 /* this */
            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 /* exceedsCount */
        11: .line 174
            iload 1 /* storageSize */
            i2l
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.cacheBytesLength:J
            ladd
            aload 0 /* this */
            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 /* exceedsSize */
        14: .line 176
            iload 2 /* exceedsCount */
            ifne 15
            iload 3 /* exceedsSize */
            ifeq 17
        15: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hsqldb.persist.Cache.clearUnchanged:()V
        16: .line 178
            goto 18
        17: .line 179
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        18: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hsqldb.persist.Cache.size:()I
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.reserveCount:I
            iadd
            aload 0 /* this */
            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 /* exceedsCount */
        21: .line 183
            iload 1 /* storageSize */
            i2l
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.cacheBytesLength:J
            ladd
            aload 0 /* this */
            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 /* exceedsSize */
        24: .line 185
            iload 2 /* exceedsCount */
            ifne 25
            iload 3 /* exceedsSize */
            ifeq 27
        25: .line 186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual org.hsqldb.persist.Cache.cleanUp:(Z)V
        26: .line 187
            goto 28
        27: .line 188
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        28: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.hsqldb.persist.Cache.size:()I
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.reserveCount:I
            iadd
            aload 0 /* this */
            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 /* exceedsCount */
        31: .line 192
            iload 1 /* storageSize */
            i2l
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.cacheBytesLength:J
            ladd
            aload 0 /* this */
            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 /* exceedsSize */
        34: .line 194
            iload 2 /* exceedsCount */
            ifeq 38
        35: .line 195
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.dataFileCache:Lorg/hsqldb/persist/DataFileCache;
        36: .line 196
            ldc "dataFileCache CACHE ROWS limit reached"
        37: .line 195
            invokevirtual org.hsqldb.persist.DataFileCache.logInfoEvent:(Ljava/lang/String;)V
        38: .line 199
      StackMap locals:
      StackMap stack:
            iload 3 /* exceedsSize */
            ifeq 42
        39: .line 200
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.dataFileCache:Lorg/hsqldb/persist/DataFileCache;
        40: .line 201
            ldc "dataFileCache CACHE SIZE limit reached"
        41: .line 200
            invokevirtual org.hsqldb.persist.DataFileCache.logInfoEvent:(Ljava/lang/String;)V
        42: .line 204
      StackMap locals:
      StackMap stack:
            iload 2 /* exceedsCount */
            ifne 43
            iload 3 /* exceedsSize */
            ifeq 44
        43: .line 205
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        44: .line 209
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // boolean exceedsSize
        end local 2 // boolean exceedsCount
        end local 1 // int storageSize
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
        start local 1 // org.hsqldb.persist.CachedObject row
         0: .line 214
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.accessCount:I
            ldc 2146435071
            if_icmple 4
         1: .line 215
            aload 0 /* this */
            invokevirtual org.hsqldb.persist.Cache.updateAccessCounts:()V
         2: .line 216
            aload 0 /* this */
            invokevirtual org.hsqldb.persist.Cache.resetAccessCount:()V
         3: .line 217
            aload 0 /* this */
            invokevirtual org.hsqldb.persist.Cache.updateObjectAccessCounts:()V
         4: .line 220
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* row */
            aload 1 /* row */
            invokeinterface org.hsqldb.persist.CachedObject.getPos:()J
            iconst_0
            invokevirtual org.hsqldb.persist.Cache.addOrRemoveObject:(Ljava/lang/Object;JZ)Ljava/lang/Object;
            astore 2 /* existing */
        start local 2 // java.lang.Object existing
         5: .line 222
            aload 2 /* existing */
            ifnull 10
         6: .line 223
            aload 0 /* this */
            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: .line 224
            aload 1 /* row */
            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: .line 225
            aload 1 /* row */
            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: .line 223
            invokevirtual org.hsqldb.persist.DataFileCache.logSevereEvent:(Ljava/lang/String;Ljava/lang/Throwable;)V
        10: .line 228
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* row */
            iconst_1
            invokeinterface org.hsqldb.persist.CachedObject.setInMemory:(Z)V
        11: .line 230
            aload 0 /* this */
            dup
            getfield org.hsqldb.persist.Cache.cacheBytesLength:J
            aload 1 /* row */
            invokeinterface org.hsqldb.persist.CachedObject.getStorageSize:()I
            i2l
            ladd
            putfield org.hsqldb.persist.Cache.cacheBytesLength:J
        12: .line 231
            return
        end local 2 // java.lang.Object existing
        end local 1 // org.hsqldb.persist.CachedObject row
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
        start local 1 // long pos
         0: .line 238
            aload 0 /* this */
            aconst_null
            lload 1 /* pos */
            iconst_1
            invokevirtual org.hsqldb.persist.Cache.addOrRemoveObject:(Ljava/lang/Object;JZ)Ljava/lang/Object;
            checkcast org.hsqldb.persist.CachedObject
            astore 3 /* r */
        start local 3 // org.hsqldb.persist.CachedObject r
         1: .line 240
            aload 3 /* r */
            ifnonnull 3
         2: .line 241
            aconst_null
            areturn
         3: .line 244
      StackMap locals: org.hsqldb.persist.CachedObject
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.hsqldb.persist.Cache.cacheBytesLength:J
            aload 3 /* r */
            invokeinterface org.hsqldb.persist.CachedObject.getStorageSize:()I
            i2l
            lsub
            putfield org.hsqldb.persist.Cache.cacheBytesLength:J
         4: .line 246
            aload 3 /* r */
            iconst_0
            invokeinterface org.hsqldb.persist.CachedObject.setInMemory:(Z)V
         5: .line 248
            aload 3 /* r */
            areturn
        end local 3 // org.hsqldb.persist.CachedObject r
        end local 1 // long pos
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
        start local 1 // org.hsqldb.lib.IntIndex list
        start local 2 // int fileBlockItemCount
         0: .line 253
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
            invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.reset:()V
         1: .line 255
            goto 10
         2: .line 256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 /* o */
        start local 3 // org.hsqldb.persist.CachedObject o
         3: .line 257
            aload 3 /* o */
            invokeinterface org.hsqldb.persist.CachedObject.getPos:()J
            lstore 4 /* pos */
        start local 4 // long pos
         4: .line 258
            lload 4 /* pos */
            iload 2 /* fileBlockItemCount */
            i2l
            ldiv
            l2i
            istore 6 /* block */
        start local 6 // int block
         5: .line 259
            aload 1 /* list */
            iload 6 /* block */
            invokevirtual org.hsqldb.lib.IntIndex.findFirstEqualKeyIndex:(I)I
            istore 7 /* index */
        start local 7 // int index
         6: .line 261
            iload 7 /* index */
            iflt 10
         7: .line 262
            aload 3 /* o */
            iconst_0
            invokeinterface org.hsqldb.persist.CachedObject.setInMemory:(Z)V
         8: .line 263
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
            invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.remove:()V
         9: .line 265
            aload 0 /* this */
            dup
            getfield org.hsqldb.persist.Cache.cacheBytesLength:J
            aload 3 /* o */
            invokeinterface org.hsqldb.persist.CachedObject.getStorageSize:()I
            i2l
            lsub
            putfield org.hsqldb.persist.Cache.cacheBytesLength:J
        end local 7 // int index
        end local 6 // int block
        end local 4 // long pos
        end local 3 // org.hsqldb.persist.CachedObject o
        10: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
            invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.hasNext:()Z
            ifne 2
        11: .line 268
            return
        end local 2 // int fileBlockItemCount
        end local 1 // org.hsqldb.lib.IntIndex list
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
        start local 1 // long startPos
        start local 3 // long limitPos
         0: .line 272
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
            invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.reset:()V
         1: .line 274
            goto 8
         2: .line 275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 /* o */
        start local 5 // org.hsqldb.persist.CachedObject o
         3: .line 276
            aload 5 /* o */
            invokeinterface org.hsqldb.persist.CachedObject.getPos:()J
            lstore 6 /* pos */
        start local 6 // long pos
         4: .line 278
            lload 6 /* pos */
            lload 1 /* startPos */
            lcmp
            iflt 8
            lload 6 /* pos */
            lload 3 /* limitPos */
            lcmp
            ifge 8
         5: .line 279
            aload 5 /* o */
            iconst_0
            invokeinterface org.hsqldb.persist.CachedObject.setInMemory:(Z)V
         6: .line 280
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
            invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.remove:()V
         7: .line 282
            aload 0 /* this */
            dup
            getfield org.hsqldb.persist.Cache.cacheBytesLength:J
            aload 5 /* o */
            invokeinterface org.hsqldb.persist.CachedObject.getStorageSize:()I
            i2l
            lsub
            putfield org.hsqldb.persist.Cache.cacheBytesLength:J
        end local 6 // long pos
        end local 5 // org.hsqldb.persist.CachedObject o
         8: .line 274
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
            invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.hasNext:()Z
            ifne 2
         9: .line 285
            return
        end local 3 // long limitPos
        end local 1 // long startPos
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
         0: .line 292
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.updateAccess:Z
            ifeq 10
         1: .line 293
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 9
         3: .line 294
      StackMap locals: org.hsqldb.persist.Cache top top int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectKeyTable:[Ljava/lang/Object;
            iload 3 /* i */
            aaload
            checkcast org.hsqldb.persist.CachedObject
            astore 1 /* r */
        start local 1 // org.hsqldb.persist.CachedObject r
         4: .line 296
            aload 1 /* r */
            ifnull 8
         5: .line 297
            aload 1 /* r */
            invokeinterface org.hsqldb.persist.CachedObject.getAccessCount:()I
            istore 2 /* count */
        start local 2 // int count
         6: .line 299
            iload 2 /* count */
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.accessTable:[I
            iload 3 /* i */
            iaload
            if_icmple 8
         7: .line 300
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.accessTable:[I
            iload 3 /* i */
            iload 2 /* count */
            iastore
        end local 2 // int count
         8: .line 293
      StackMap locals: org.hsqldb.persist.Cache org.hsqldb.persist.CachedObject top int
      StackMap stack:
            iinc 3 /* i */ 1
        end local 1 // org.hsqldb.persist.CachedObject r
      StackMap locals: org.hsqldb.persist.Cache top top int
      StackMap stack:
         9: iload 3 /* i */
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectKeyTable:[Ljava/lang/Object;
            arraylength
            if_icmplt 3
        end local 3 // int i
        10: .line 305
      StackMap locals: org.hsqldb.persist.Cache
      StackMap stack:
            return
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
         0: .line 312
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.updateAccess:Z
            ifeq 9
         1: .line 313
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 8
         3: .line 314
      StackMap locals: org.hsqldb.persist.Cache top top int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectKeyTable:[Ljava/lang/Object;
            iload 3 /* i */
            aaload
            checkcast org.hsqldb.persist.CachedObject
            astore 1 /* r */
        start local 1 // org.hsqldb.persist.CachedObject r
         4: .line 316
            aload 1 /* r */
            ifnull 7
         5: .line 317
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.accessTable:[I
            iload 3 /* i */
            iaload
            istore 2 /* count */
        start local 2 // int count
         6: .line 319
            aload 1 /* r */
            iload 2 /* count */
            invokeinterface org.hsqldb.persist.CachedObject.updateAccessCount:(I)V
        end local 2 // int count
         7: .line 313
      StackMap locals: org.hsqldb.persist.Cache org.hsqldb.persist.CachedObject top int
      StackMap stack:
            iinc 3 /* i */ 1
        end local 1 // org.hsqldb.persist.CachedObject r
      StackMap locals: org.hsqldb.persist.Cache top top int
      StackMap stack:
         8: iload 3 /* i */
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectKeyTable:[Ljava/lang/Object;
            arraylength
            if_icmplt 3
        end local 3 // int i
         9: .line 323
      StackMap locals: org.hsqldb.persist.Cache
      StackMap stack:
            return
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
        start local 1 // boolean all
         0: .line 337
            aload 0 /* this */
            invokevirtual org.hsqldb.persist.Cache.updateAccessCounts:()V
         1: .line 339
            iconst_0
            istore 2 /* savecount */
        start local 2 // int savecount
         2: .line 340
            aload 0 /* this */
            invokevirtual org.hsqldb.persist.Cache.size:()I
            iconst_2
            idiv
            istore 3 /* removeCount */
        start local 3 // int removeCount
         3: .line 341
            iload 1 /* all */
            ifeq 4
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.accessCount:I
            iconst_1
            iadd
            goto 7
         4: .line 342
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* removeCount */
         5: .line 343
            iload 3 /* removeCount */
            bipush 8
            idiv
         6: .line 342
            invokevirtual org.hsqldb.persist.Cache.getAccessCountCeiling:(II)I
         7: .line 341
      StackMap locals:
      StackMap stack: int
            istore 4 /* accessTarget */
        start local 4 // int accessTarget
         8: .line 344
            iload 1 /* all */
            ifeq 9
            goto 10
         9: .line 345
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.accessMin:I
            iload 4 /* accessTarget */
            iadd
            iconst_2
            idiv
            pop
        10: .line 347
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
            invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.reset:()V
        11: .line 349
            goto 44
        12: .line 350
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 /* row */
        start local 5 // org.hsqldb.persist.CachedObject row
        13: .line 351
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
            invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.getAccessCount:()I
            istore 6 /* currentAccessCount */
        start local 6 // int currentAccessCount
        14: .line 352
            iload 6 /* currentAccessCount */
            iload 4 /* accessTarget */
            if_icmpge 17
        15: .line 353
            aload 5 /* row */
            invokeinterface org.hsqldb.persist.CachedObject.isKeepInMemory:()Z
            ifne 17
        16: .line 352
            iconst_1
            goto 18
      StackMap locals: org.hsqldb.persist.CachedObject int
      StackMap stack:
        17: iconst_0
      StackMap locals:
      StackMap stack: int
        18: istore 7 /* oldRow */
        start local 7 // boolean oldRow
        19: .line 354
            aload 5 /* row */
            invokeinterface org.hsqldb.persist.CachedObject.isNew:()Z
            ifeq 23
        20: .line 355
            aload 5 /* row */
            invokeinterface org.hsqldb.persist.CachedObject.getStorageSize:()I
        21: .line 356
            sipush 4096
        22: .line 354
            if_icmplt 23
            iconst_1
            goto 24
      StackMap locals: int
      StackMap stack:
        23: iconst_0
      StackMap locals:
      StackMap stack: int
        24: istore 8 /* newRow */
        start local 8 // boolean newRow
        25: .line 357
            aload 5 /* row */
            invokeinterface org.hsqldb.persist.CachedObject.hasChanged:()Z
            ifeq 27
            iload 7 /* oldRow */
            ifne 26
            iload 8 /* newRow */
            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 /* saveRow */
        start local 9 // boolean saveRow
        29: .line 359
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
            iload 4 /* accessTarget */
            invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.setAccessCount:(I)V
        30: .line 361
            aload 5 /* row */
            dup
            astore 10
            monitorenter
        31: .line 362
            iload 9 /* saveRow */
            ifeq 33
        32: .line 363
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.rowTable:[Lorg/hsqldb/persist/CachedObject;
            iload 2 /* savecount */
            iinc 2 /* savecount */ 1
            aload 5 /* row */
            aastore
        33: .line 366
      StackMap locals: int org.hsqldb.persist.CachedObject
      StackMap stack:
            iload 7 /* oldRow */
            ifeq 37
        34: .line 367
            aload 5 /* row */
            iconst_0
            invokeinterface org.hsqldb.persist.CachedObject.setInMemory:(Z)V
        35: .line 368
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
            invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.remove:()V
        36: .line 370
            aload 0 /* this */
            dup
            getfield org.hsqldb.persist.Cache.cacheBytesLength:J
            aload 5 /* row */
            invokeinterface org.hsqldb.persist.CachedObject.getStorageSize:()I
            i2l
            lsub
            putfield org.hsqldb.persist.Cache.cacheBytesLength:J
        37: .line 361
      StackMap locals:
      StackMap stack:
            aload 10
            monitorexit
        38: goto 41
      StackMap locals:
      StackMap stack: java.lang.Throwable
        39: aload 10
            monitorexit
        40: athrow
        41: .line 374
      StackMap locals:
      StackMap stack:
            iload 2 /* savecount */
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.rowTable:[Lorg/hsqldb/persist/CachedObject;
            arraylength
            if_icmpne 44
        42: .line 375
            aload 0 /* this */
            iload 2 /* savecount */
            invokevirtual org.hsqldb.persist.Cache.saveRows:(I)V
        43: .line 377
            iconst_0
            istore 2 /* savecount */
        end local 9 // boolean saveRow
        end local 8 // boolean newRow
        end local 7 // boolean oldRow
        end local 6 // int currentAccessCount
        end local 5 // org.hsqldb.persist.CachedObject row
        44: .line 349
      StackMap locals: org.hsqldb.persist.Cache int int int int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
            invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.hasNext:()Z
            ifne 12
        45: .line 381
            aload 0 /* this */
            iload 2 /* savecount */
            invokevirtual org.hsqldb.persist.Cache.saveRows:(I)V
        46: .line 382
            aload 0 /* this */
            iload 4 /* accessTarget */
            invokevirtual org.hsqldb.persist.Cache.setAccessCountFloor:(I)V
        47: .line 384
            aload 0 /* this */
            dup
            getfield org.hsqldb.persist.Cache.accessCount:I
            iconst_1
            iadd
            putfield org.hsqldb.persist.Cache.accessCount:I
        48: .line 385
            return
        end local 4 // int accessTarget
        end local 3 // int removeCount
        end local 2 // int savecount
        end local 1 // boolean all
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
         0: .line 389
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
            invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.reset:()V
         1: .line 391
            goto 12
         2: .line 392
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 /* row */
        start local 1 // org.hsqldb.persist.CachedObject row
         3: .line 394
            aload 1 /* row */
            dup
            astore 2
            monitorenter
         4: .line 395
            aload 1 /* row */
            invokeinterface org.hsqldb.persist.CachedObject.isKeepInMemory:()Z
            ifne 8
            aload 1 /* row */
            invokeinterface org.hsqldb.persist.CachedObject.hasChanged:()Z
            ifne 8
         5: .line 396
            aload 1 /* row */
            iconst_0
            invokeinterface org.hsqldb.persist.CachedObject.setInMemory:(Z)V
         6: .line 397
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
            invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.remove:()V
         7: .line 399
            aload 0 /* this */
            dup
            getfield org.hsqldb.persist.Cache.cacheBytesLength:J
            aload 1 /* row */
            invokeinterface org.hsqldb.persist.CachedObject.getStorageSize:()I
            i2l
            lsub
            putfield org.hsqldb.persist.Cache.cacheBytesLength:J
         8: .line 394
      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 // org.hsqldb.persist.CachedObject row
        12: .line 391
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
            invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.hasNext:()Z
            ifne 2
        13: .line 403
            return
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
        start local 1 // int count
         0: .line 407
            iload 1 /* count */
            ifne 2
         1: .line 408
            return
         2: .line 411
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.rowComparator:Lorg/hsqldb/persist/Cache$CachedObjectComparator;
            iconst_1
            invokevirtual org.hsqldb.persist.Cache$CachedObjectComparator.setType:(I)V
         3: .line 412
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.rowTable:[Lorg/hsqldb/persist/CachedObject;
            iload 1 /* count */
            aload 0 /* this */
            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: .line 413
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.dataFileCache:Lorg/hsqldb/persist/DataFileCache;
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.rowTable:[Lorg/hsqldb/persist/CachedObject;
            iconst_0
            iload 1 /* count */
            invokevirtual org.hsqldb.persist.DataFileCache.saveRows:([Lorg/hsqldb/persist/CachedObject;II)V
         5: .line 415
            aload 0 /* this */
            dup
            getfield org.hsqldb.persist.Cache.saveRowCount:I
            iload 1 /* count */
            iadd
            putfield org.hsqldb.persist.Cache.saveRowCount:I
         6: .line 416
            return
        end local 1 // int count
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
         0: .line 423
            iconst_0
            istore 1 /* savecount */
        start local 1 // int savecount
         1: .line 425
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
            invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.reset:()V
         2: .line 427
            goto 10
         3: .line 428
      StackMap locals: int
      StackMap stack:
            iload 1 /* savecount */
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.rowTable:[Lorg/hsqldb/persist/CachedObject;
            arraylength
            if_icmpne 6
         4: .line 429
            aload 0 /* this */
            iload 1 /* savecount */
            invokevirtual org.hsqldb.persist.Cache.saveRows:(I)V
         5: .line 431
            iconst_0
            istore 1 /* savecount */
         6: .line 434
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 /* r */
        start local 2 // org.hsqldb.persist.CachedObject r
         7: .line 436
            aload 2 /* r */
            invokeinterface org.hsqldb.persist.CachedObject.hasChanged:()Z
            ifeq 10
         8: .line 437
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.rowTable:[Lorg/hsqldb/persist/CachedObject;
            iload 1 /* savecount */
            aload 2 /* r */
            aastore
         9: .line 439
            iinc 1 /* savecount */ 1
        end local 2 // org.hsqldb.persist.CachedObject r
        10: .line 427
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
            invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.hasNext:()Z
            ifne 3
        11: .line 443
            aload 0 /* this */
            iload 1 /* savecount */
            invokevirtual org.hsqldb.persist.Cache.saveRows:(I)V
        12: .line 444
            return
        end local 1 // int savecount
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
        start local 1 // int saveCount
        start local 2 // long storageSize
        start local 4 // long startTime
         0: .line 448
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.saveAllTimer:Lorg/hsqldb/lib/StopWatch;
            invokevirtual org.hsqldb.lib.StopWatch.elapsedTime:()J
            lstore 6 /* time */
        start local 6 // long time
         1: .line 449
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 8 /* sb */
        start local 8 // java.lang.StringBuilder sb
         2: .line 451
            aload 8 /* sb */
            ldc "cache save rows total [count,time] "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 452
            aload 8 /* sb */
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.saveRowCount:I
            iload 1 /* saveCount */
            iadd
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
         4: .line 453
            aload 8 /* sb */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            lload 6 /* time */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         5: .line 454
            aload 8 /* sb */
            ldc "operation [count,time,size]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* saveCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 455
            aload 8 /* sb */
            lload 6 /* time */
            lload 4 /* startTime */
            lsub
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         7: .line 456
            aload 8 /* sb */
            lload 2 /* storageSize */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         8: .line 459
            aload 8 /* sb */
            ldc "tx-ts "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 460
            aload 8 /* sb */
            aload 0 /* this */
            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: .line 463
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.dataFileCache:Lorg/hsqldb/persist/DataFileCache;
            aload 8 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.hsqldb.persist.DataFileCache.logDetailEvent:(Ljava/lang/String;)V
        11: .line 464
            return
        end local 8 // java.lang.StringBuilder sb
        end local 6 // long time
        end local 4 // long startTime
        end local 2 // long storageSize
        end local 1 // int saveCount
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
         0: .line 471
            aload 0 /* this */
            invokespecial org.hsqldb.map.BaseHashMap.clear:()V
         1: .line 473
            aload 0 /* this */
            lconst_0
            putfield org.hsqldb.persist.Cache.cacheBytesLength:J
         2: .line 474
            return
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
         0: .line 478
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
            invokevirtual org.hsqldb.map.BaseHashMap$BaseHashIterator.reset:()V
         1: .line 480
            aload 0 /* this */
            getfield org.hsqldb.persist.Cache.objectIterator:Lorg/hsqldb/map/BaseHashMap$BaseHashIterator;
            areturn
        end local 0 // org.hsqldb.persist.Cache this
      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 // org.hsqldb.persist.Cache this
         0: .line 484
            aload 0 /* this */
            invokespecial org.hsqldb.map.BaseHashMap.incrementAccessCount:()I
            ireturn
        end local 0 // org.hsqldb.persist.Cache this
      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