final class org.hsqldb.persist.DataFileDefrag
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.hsqldb.persist.DataFileDefrag
  super_class: java.lang.Object
{
  org.hsqldb.persist.DataFileCache dataFileOut;
    descriptor: Lorg/hsqldb/persist/DataFileCache;
    flags: (0x0000) 

  org.hsqldb.lib.StopWatch stopw;
    descriptor: Lorg/hsqldb/lib/StopWatch;
    flags: (0x0000) 

  java.lang.String dataFileName;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  long[][] rootsList;
    descriptor: [[J
    flags: (0x0000) 

  org.hsqldb.Database database;
    descriptor: Lorg/hsqldb/Database;
    flags: (0x0000) 

  org.hsqldb.persist.DataFileCache dataCache;
    descriptor: Lorg/hsqldb/persist/DataFileCache;
    flags: (0x0000) 

  org.hsqldb.lib.LongLookup pointerLookup;
    descriptor: Lorg/hsqldb/lib/LongLookup;
    flags: (0x0000) 

  void <init>(org.hsqldb.Database, org.hsqldb.persist.DataFileCache);
    descriptor: (Lorg/hsqldb/Database;Lorg/hsqldb/persist/DataFileCache;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hsqldb.persist.DataFileDefrag this
        start local 1 // org.hsqldb.Database db
        start local 2 // org.hsqldb.persist.DataFileCache cache
         0: .line 71
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 64
            aload 0 /* this */
            new org.hsqldb.lib.StopWatch
            dup
            invokespecial org.hsqldb.lib.StopWatch.<init>:()V
            putfield org.hsqldb.persist.DataFileDefrag.stopw:Lorg/hsqldb/lib/StopWatch;
         2: .line 73
            aload 0 /* this */
            aload 1 /* db */
            putfield org.hsqldb.persist.DataFileDefrag.database:Lorg/hsqldb/Database;
         3: .line 74
            aload 0 /* this */
            aload 2 /* cache */
            putfield org.hsqldb.persist.DataFileDefrag.dataCache:Lorg/hsqldb/persist/DataFileCache;
         4: .line 75
            aload 0 /* this */
            aload 2 /* cache */
            invokevirtual org.hsqldb.persist.DataFileCache.getFileName:()Ljava/lang/String;
            putfield org.hsqldb.persist.DataFileDefrag.dataFileName:Ljava/lang/String;
         5: .line 76
            return
        end local 2 // org.hsqldb.persist.DataFileCache cache
        end local 1 // org.hsqldb.Database db
        end local 0 // org.hsqldb.persist.DataFileDefrag this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/hsqldb/persist/DataFileDefrag;
            0    6     1     db  Lorg/hsqldb/Database;
            0    6     2  cache  Lorg/hsqldb/persist/DataFileCache;
    MethodParameters:
       Name  Flags
      db     
      cache  

  void process(org.hsqldb.Session);
    descriptor: (Lorg/hsqldb/Session;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=12, args_size=2
        start local 0 // org.hsqldb.persist.DataFileDefrag this
        start local 1 // org.hsqldb.Session session
         0: .line 80
            aconst_null
            astore 2 /* error */
        start local 2 // java.lang.Throwable error
         1: .line 82
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.database:Lorg/hsqldb/Database;
            getfield org.hsqldb.Database.logger:Lorg/hsqldb/persist/Logger;
            ldc "Defrag process begins"
            invokevirtual org.hsqldb.persist.Logger.logDetailEvent:(Ljava/lang/String;)V
         2: .line 84
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.database:Lorg/hsqldb/Database;
            getfield org.hsqldb.Database.schemaManager:Lorg/hsqldb/SchemaManager;
            iconst_1
            invokevirtual org.hsqldb.SchemaManager.getAllTables:(Z)Lorg/hsqldb/lib/HsqlArrayList;
            astore 3 /* allTables */
        start local 3 // org.hsqldb.lib.HsqlArrayList allTables
         3: .line 86
            aload 0 /* this */
            aload 3 /* allTables */
            invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
            anewarray long[]
            putfield org.hsqldb.persist.DataFileDefrag.rootsList:[[J
         4: .line 88
            lconst_0
            lstore 4 /* maxSize */
        start local 4 // long maxSize
         5: .line 90
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         6: aload 3 /* allTables */
            invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
            istore 7 /* tSize */
        start local 7 // int tSize
         7: goto 16
         8: .line 91
      StackMap locals: org.hsqldb.persist.DataFileDefrag org.hsqldb.Session java.lang.Throwable org.hsqldb.lib.HsqlArrayList long int int
      StackMap stack:
            aload 3 /* allTables */
            iload 6 /* i */
            invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
            checkcast org.hsqldb.Table
            astore 8 /* table */
        start local 8 // org.hsqldb.Table table
         9: .line 93
            aload 8 /* table */
            invokevirtual org.hsqldb.Table.getTableType:()I
            iconst_5
            if_icmpne 15
        10: .line 95
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.database:Lorg/hsqldb/Database;
            getfield org.hsqldb.Database.persistentStoreCollection:Lorg/hsqldb/persist/PersistentStoreCollectionDatabase;
            aload 8 /* table */
            invokevirtual org.hsqldb.persist.PersistentStoreCollectionDatabase.getStore:(Lorg/hsqldb/TableBase;)Lorg/hsqldb/persist/PersistentStore;
        11: .line 94
            astore 9 /* store */
        start local 9 // org.hsqldb.persist.PersistentStore store
        12: .line 96
            aload 9 /* store */
            invokeinterface org.hsqldb.persist.PersistentStore.elementCount:()J
            lstore 10 /* size */
        start local 10 // long size
        13: .line 98
            lload 10 /* size */
            lload 4 /* maxSize */
            lcmp
            ifle 15
        14: .line 99
            lload 10 /* size */
            lstore 4 /* maxSize */
        end local 10 // long size
        end local 9 // org.hsqldb.persist.PersistentStore store
        end local 8 // org.hsqldb.Table table
        15: .line 90
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 6 /* i */
            iload 7 /* tSize */
            if_icmplt 8
        end local 7 // int tSize
        end local 6 // int i
        17: .line 104
            lload 4 /* maxSize */
            ldc 2147483647
            lcmp
            ifle 19
        18: .line 105
            sipush 3426
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
        19: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.database:Lorg/hsqldb/Database;
            invokevirtual org.hsqldb.Database.getCanonicalPath:()Ljava/lang/String;
            astore 6 /* baseFileName */
        start local 6 // java.lang.String baseFileName
        20: .line 111
            aload 0 /* this */
            new org.hsqldb.persist.DataFileCache
            dup
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.database:Lorg/hsqldb/Database;
            aload 6 /* baseFileName */
            iconst_1
            invokespecial org.hsqldb.persist.DataFileCache.<init>:(Lorg/hsqldb/Database;Ljava/lang/String;Z)V
            putfield org.hsqldb.persist.DataFileDefrag.dataFileOut:Lorg/hsqldb/persist/DataFileCache;
        21: .line 113
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.dataCache:Lorg/hsqldb/persist/DataFileCache;
            getfield org.hsqldb.persist.DataFileCache.fileFreePosition:J
        22: .line 114
            ldc 2147483647
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.dataCache:Lorg/hsqldb/persist/DataFileCache;
            getfield org.hsqldb.persist.DataFileCache.dataFileScale:I
            i2l
            lmul
            lcmp
            ifge 25
        23: .line 115
            aload 0 /* this */
            new org.hsqldb.lib.DoubleIntIndex
            dup
            lload 4 /* maxSize */
            l2i
            invokespecial org.hsqldb.lib.DoubleIntIndex.<init>:(I)V
            putfield org.hsqldb.persist.DataFileDefrag.pointerLookup:Lorg/hsqldb/lib/LongLookup;
        24: .line 116
            goto 26
        25: .line 117
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            new org.hsqldb.lib.DoubleLongIndex
            dup
            lload 4 /* maxSize */
            l2i
            invokespecial org.hsqldb.lib.DoubleLongIndex.<init>:(I)V
            putfield org.hsqldb.persist.DataFileDefrag.pointerLookup:Lorg/hsqldb/lib/LongLookup;
        26: .line 120
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        27: aload 3 /* allTables */
            invokevirtual org.hsqldb.lib.HsqlArrayList.size:()I
            istore 8 /* tSize */
        start local 8 // int tSize
        28: goto 39
        29: .line 121
      StackMap locals: int int
      StackMap stack:
            aload 3 /* allTables */
            iload 7 /* i */
            invokevirtual org.hsqldb.lib.HsqlArrayList.get:(I)Ljava/lang/Object;
            checkcast org.hsqldb.Table
            astore 9 /* t */
        start local 9 // org.hsqldb.Table t
        30: .line 123
            aload 9 /* t */
            invokevirtual org.hsqldb.Table.getTableType:()I
            iconst_5
            if_icmpne 34
        31: .line 124
            aload 0 /* this */
            aload 9 /* t */
            invokevirtual org.hsqldb.persist.DataFileDefrag.writeTableToDataFile:(Lorg/hsqldb/Table;)[J
            astore 10 /* rootsArray */
        start local 10 // long[] rootsArray
        32: .line 126
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.rootsList:[[J
            iload 7 /* i */
            aload 10 /* rootsArray */
            aastore
        end local 10 // long[] rootsArray
        33: .line 127
            goto 35
        34: .line 128
      StackMap locals: org.hsqldb.Table
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.rootsList:[[J
            iload 7 /* i */
            aconst_null
            aastore
        35: .line 131
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.database:Lorg/hsqldb/Database;
            getfield org.hsqldb.Database.logger:Lorg/hsqldb/persist/Logger;
            new java.lang.StringBuilder
            dup
            ldc "table complete "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        36: .line 132
            aload 9 /* t */
            invokevirtual org.hsqldb.Table.getName:()Lorg/hsqldb/HsqlNameManager$HsqlName;
            getfield org.hsqldb.HsqlNameManager$HsqlName.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        37: .line 131
            invokevirtual org.hsqldb.persist.Logger.logDetailEvent:(Ljava/lang/String;)V
        end local 9 // org.hsqldb.Table t
        38: .line 120
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        39: iload 7 /* i */
            iload 8 /* tSize */
            if_icmplt 29
        end local 8 // int tSize
        end local 7 // int i
        40: .line 135
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.dataFileOut:Lorg/hsqldb/persist/DataFileCache;
            invokevirtual org.hsqldb.persist.DataFileCache.close:()V
        41: .line 137
            aload 0 /* this */
            aconst_null
            putfield org.hsqldb.persist.DataFileDefrag.dataFileOut:Lorg/hsqldb/persist/DataFileCache;
        42: .line 139
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        43: aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.rootsList:[[J
            arraylength
            istore 8 /* size */
        start local 8 // int size
        44: goto 53
        45: .line 140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.rootsList:[[J
            iload 7 /* i */
            aaload
            astore 9 /* roots */
        start local 9 // long[] roots
        46: .line 142
            aload 9 /* roots */
            ifnull 52
        47: .line 143
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.database:Lorg/hsqldb/Database;
            getfield org.hsqldb.Database.logger:Lorg/hsqldb/persist/Logger;
            new java.lang.StringBuilder
            dup
            ldc "roots: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        48: .line 144
            aload 9 /* roots */
        49: .line 145
            ldc ","
            ldc ""
        50: .line 144
            invokestatic org.hsqldb.lib.StringUtil.getList:([JLjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        51: .line 143
            invokevirtual org.hsqldb.persist.Logger.logDetailEvent:(Ljava/lang/String;)V
        end local 9 // long[] roots
        52: .line 139
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        53: iload 7 /* i */
            iload 8 /* size */
            if_icmplt 45
        end local 8 // int size
        end local 7 // int i
        end local 6 // java.lang.String baseFileName
        54: .line 148
            goto 84
      StackMap locals: org.hsqldb.persist.DataFileDefrag org.hsqldb.Session java.lang.Throwable org.hsqldb.lib.HsqlArrayList long
      StackMap stack: java.lang.OutOfMemoryError
        55: astore 6 /* e */
        start local 6 // java.lang.OutOfMemoryError e
        56: .line 149
            aload 6 /* e */
            astore 2 /* error */
        57: .line 151
            sipush 460
            aload 6 /* e */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 6 // java.lang.OutOfMemoryError e
        58: .line 152
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6 /* t */
        start local 6 // java.lang.Throwable t
        59: .line 153
            aload 6 /* t */
            astore 2 /* error */
        60: .line 155
            sipush 458
            aload 6 /* t */
            invokestatic org.hsqldb.error.Error.error:(ILjava/lang/Throwable;)Lorg/hsqldb/HsqlException;
            athrow
        end local 6 // java.lang.Throwable t
        61: .line 156
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
        62: .line 158
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.dataFileOut:Lorg/hsqldb/persist/DataFileCache;
            ifnull 66
        63: .line 159
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.dataFileOut:Lorg/hsqldb/persist/DataFileCache;
            invokevirtual org.hsqldb.persist.DataFileCache.release:()V
        64: .line 161
            goto 66
      StackMap locals: org.hsqldb.persist.DataFileDefrag org.hsqldb.Session java.lang.Throwable org.hsqldb.lib.HsqlArrayList long top top top top top java.lang.Throwable
      StackMap stack: java.lang.Throwable
        65: pop
        66: .line 163
      StackMap locals:
      StackMap stack:
            aload 2 /* error */
            instanceof java.lang.OutOfMemoryError
            ifeq 72
        67: .line 164
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.database:Lorg/hsqldb/Database;
            getfield org.hsqldb.Database.logger:Lorg/hsqldb/persist/Logger;
        68: .line 165
            new java.lang.StringBuilder
            dup
            ldc "defrag failed - out of memory - required: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        69: .line 166
            lload 4 /* maxSize */
            ldc 8
            lmul
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        70: .line 165
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        71: .line 164
            invokevirtual org.hsqldb.persist.Logger.logInfoEvent:(Ljava/lang/String;)V
        72: .line 169
      StackMap locals:
      StackMap stack:
            aload 2 /* error */
            ifnonnull 77
        73: .line 170
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.database:Lorg/hsqldb/Database;
            getfield org.hsqldb.Database.logger:Lorg/hsqldb/persist/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Defrag transfer complete: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        74: .line 171
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.stopw:Lorg/hsqldb/lib/StopWatch;
            invokevirtual org.hsqldb.lib.StopWatch.elapsedTime:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        75: .line 170
            invokevirtual org.hsqldb.persist.Logger.logDetailEvent:(Ljava/lang/String;)V
        76: .line 172
            goto 83
        77: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.database:Lorg/hsqldb/Database;
            getfield org.hsqldb.Database.logger:Lorg/hsqldb/persist/Logger;
            ldc "defrag failed "
            aload 2 /* error */
            invokevirtual org.hsqldb.persist.Logger.logSevereEvent:(Ljava/lang/String;Ljava/lang/Throwable;)V
        78: .line 174
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.database:Lorg/hsqldb/Database;
        79: .line 175
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.dataFileName:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        80: .line 176
            ldc ".new"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        81: .line 175
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        82: .line 174
            invokestatic org.hsqldb.persist.DataFileCache.deleteFile:(Lorg/hsqldb/Database;Ljava/lang/String;)V
        83: .line 178
      StackMap locals:
      StackMap stack:
            aload 11
            athrow
        84: .line 158
      StackMap locals: org.hsqldb.persist.DataFileDefrag org.hsqldb.Session java.lang.Throwable org.hsqldb.lib.HsqlArrayList long
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.dataFileOut:Lorg/hsqldb/persist/DataFileCache;
            ifnull 88
        85: .line 159
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.dataFileOut:Lorg/hsqldb/persist/DataFileCache;
            invokevirtual org.hsqldb.persist.DataFileCache.release:()V
        86: .line 161
            goto 88
      StackMap locals:
      StackMap stack: java.lang.Throwable
        87: pop
        88: .line 163
      StackMap locals:
      StackMap stack:
            aload 2 /* error */
            instanceof java.lang.OutOfMemoryError
            ifeq 94
        89: .line 164
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.database:Lorg/hsqldb/Database;
            getfield org.hsqldb.Database.logger:Lorg/hsqldb/persist/Logger;
        90: .line 165
            new java.lang.StringBuilder
            dup
            ldc "defrag failed - out of memory - required: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        91: .line 166
            lload 4 /* maxSize */
            ldc 8
            lmul
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        92: .line 165
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        93: .line 164
            invokevirtual org.hsqldb.persist.Logger.logInfoEvent:(Ljava/lang/String;)V
        94: .line 169
      StackMap locals:
      StackMap stack:
            aload 2 /* error */
            ifnonnull 99
        95: .line 170
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.database:Lorg/hsqldb/Database;
            getfield org.hsqldb.Database.logger:Lorg/hsqldb/persist/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Defrag transfer complete: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        96: .line 171
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.stopw:Lorg/hsqldb/lib/StopWatch;
            invokevirtual org.hsqldb.lib.StopWatch.elapsedTime:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        97: .line 170
            invokevirtual org.hsqldb.persist.Logger.logDetailEvent:(Ljava/lang/String;)V
        98: .line 172
            goto 105
        99: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.database:Lorg/hsqldb/Database;
            getfield org.hsqldb.Database.logger:Lorg/hsqldb/persist/Logger;
            ldc "defrag failed "
            aload 2 /* error */
            invokevirtual org.hsqldb.persist.Logger.logSevereEvent:(Ljava/lang/String;Ljava/lang/Throwable;)V
       100: .line 174
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.database:Lorg/hsqldb/Database;
       101: .line 175
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.dataFileName:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       102: .line 176
            ldc ".new"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       103: .line 175
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       104: .line 174
            invokestatic org.hsqldb.persist.DataFileCache.deleteFile:(Lorg/hsqldb/Database;Ljava/lang/String;)V
       105: .line 179
      StackMap locals:
      StackMap stack:
            return
        end local 4 // long maxSize
        end local 3 // org.hsqldb.lib.HsqlArrayList allTables
        end local 2 // java.lang.Throwable error
        end local 1 // org.hsqldb.Session session
        end local 0 // org.hsqldb.persist.DataFileDefrag this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0  106     0          this  Lorg/hsqldb/persist/DataFileDefrag;
            0  106     1       session  Lorg/hsqldb/Session;
            1  106     2         error  Ljava/lang/Throwable;
            3  106     3     allTables  Lorg/hsqldb/lib/HsqlArrayList;
            5  106     4       maxSize  J
            6   17     6             i  I
            7   17     7         tSize  I
            9   15     8         table  Lorg/hsqldb/Table;
           12   15     9         store  Lorg/hsqldb/persist/PersistentStore;
           13   15    10          size  J
           20   54     6  baseFileName  Ljava/lang/String;
           27   40     7             i  I
           28   40     8         tSize  I
           30   38     9             t  Lorg/hsqldb/Table;
           32   33    10    rootsArray  [J
           43   54     7             i  I
           44   54     8          size  I
           46   52     9         roots  [J
           56   58     6             e  Ljava/lang/OutOfMemoryError;
           59   61     6             t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          19    54      55  Class java.lang.OutOfMemoryError
          19    54      58  Class java.lang.Throwable
          19    61      61  any
          62    64      65  Class java.lang.Throwable
          84    86      87  Class java.lang.Throwable
    MethodParameters:
         Name  Flags
      session  

  long[] writeTableToDataFile(org.hsqldb.Table);
    descriptor: (Lorg/hsqldb/Table;)[J
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // org.hsqldb.persist.DataFileDefrag this
        start local 1 // org.hsqldb.Table table
         0: .line 184
            aload 1 /* table */
            getfield org.hsqldb.Table.database:Lorg/hsqldb/Database;
            getfield org.hsqldb.Database.persistentStoreCollection:Lorg/hsqldb/persist/PersistentStoreCollectionDatabase;
         1: .line 185
            aload 1 /* table */
            invokevirtual org.hsqldb.persist.PersistentStoreCollectionDatabase.getStore:(Lorg/hsqldb/TableBase;)Lorg/hsqldb/persist/PersistentStore;
         2: .line 184
            checkcast org.hsqldb.persist.RowStoreAVLDisk
         3: .line 183
            astore 2 /* store */
        start local 2 // org.hsqldb.persist.RowStoreAVLDisk store
         4: .line 186
            aload 1 /* table */
            invokevirtual org.hsqldb.Table.getIndexRootsArray:()[J
            astore 3 /* rootsArray */
        start local 3 // long[] rootsArray
         5: .line 188
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.pointerLookup:Lorg/hsqldb/lib/LongLookup;
            invokeinterface org.hsqldb.lib.LongLookup.clear:()V
         6: .line 189
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.database:Lorg/hsqldb/Database;
            getfield org.hsqldb.Database.logger:Lorg/hsqldb/persist/Logger;
            new java.lang.StringBuilder
            dup
            ldc "lookup begins "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* table */
            invokevirtual org.hsqldb.Table.getName:()Lorg/hsqldb/HsqlNameManager$HsqlName;
            getfield org.hsqldb.HsqlNameManager$HsqlName.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 190
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.stopw:Lorg/hsqldb/lib/StopWatch;
            invokevirtual org.hsqldb.lib.StopWatch.elapsedTime:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 189
            invokevirtual org.hsqldb.persist.Logger.logDetailEvent:(Ljava/lang/String;)V
         9: .line 191
            aload 2 /* store */
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.dataFileOut:Lorg/hsqldb/persist/DataFileCache;
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.pointerLookup:Lorg/hsqldb/lib/LongLookup;
            invokevirtual org.hsqldb.persist.RowStoreAVLDisk.moveDataToSpace:(Lorg/hsqldb/persist/DataFileCache;Lorg/hsqldb/lib/LongLookup;)V
        10: .line 193
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        11: goto 19
        12: .line 194
      StackMap locals: org.hsqldb.persist.RowStoreAVLDisk long[] int
      StackMap stack:
            aload 3 /* rootsArray */
            iload 4 /* i */
            laload
            ldc -1
            lcmp
            ifne 14
        13: .line 195
            goto 18
        14: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.pointerLookup:Lorg/hsqldb/lib/LongLookup;
            aload 3 /* rootsArray */
            iload 4 /* i */
            laload
            ldc -1
            invokeinterface org.hsqldb.lib.LongLookup.lookup:(JJ)J
            lstore 5 /* pos */
        start local 5 // long pos
        15: .line 200
            lload 5 /* pos */
            ldc -1
            lcmp
            ifne 17
        16: .line 201
            sipush 466
            invokestatic org.hsqldb.error.Error.error:(I)Lorg/hsqldb/HsqlException;
            athrow
        17: .line 204
      StackMap locals: long
      StackMap stack:
            aload 3 /* rootsArray */
            iload 4 /* i */
            lload 5 /* pos */
            lastore
        end local 5 // long pos
        18: .line 193
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 4 /* i */
            aload 1 /* table */
            invokevirtual org.hsqldb.Table.getIndexCount:()I
            if_icmplt 12
        end local 4 // int i
        20: .line 208
            aload 2 /* store */
            invokevirtual org.hsqldb.persist.RowStoreAVLDisk.elementCount:()J
            lstore 4 /* count */
        start local 4 // long count
        21: .line 210
            lload 4 /* count */
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.pointerLookup:Lorg/hsqldb/lib/LongLookup;
            invokeinterface org.hsqldb.lib.LongLookup.size:()I
            i2l
            lcmp
            ifeq 27
        22: .line 211
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.database:Lorg/hsqldb/Database;
            getfield org.hsqldb.Database.logger:Lorg/hsqldb/persist/Logger;
            new java.lang.StringBuilder
            dup
            ldc "discrepency in row count "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        23: .line 212
            aload 1 /* table */
            invokevirtual org.hsqldb.Table.getName:()Lorg/hsqldb/HsqlNameManager$HsqlName;
            getfield org.hsqldb.HsqlNameManager$HsqlName.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        24: .line 213
            lload 4 /* count */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        25: .line 214
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.pointerLookup:Lorg/hsqldb/lib/LongLookup;
            invokeinterface org.hsqldb.lib.LongLookup.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aconst_null
        26: .line 211
            invokevirtual org.hsqldb.persist.Logger.logSevereEvent:(Ljava/lang/String;Ljava/lang/Throwable;)V
        27: .line 217
      StackMap locals: org.hsqldb.persist.DataFileDefrag org.hsqldb.Table org.hsqldb.persist.RowStoreAVLDisk long[] long
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.database:Lorg/hsqldb/Database;
            getfield org.hsqldb.Database.logger:Lorg/hsqldb/persist/Logger;
            new java.lang.StringBuilder
            dup
            ldc "table written "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        28: .line 218
            aload 1 /* table */
            invokevirtual org.hsqldb.Table.getName:()Lorg/hsqldb/HsqlNameManager$HsqlName;
            getfield org.hsqldb.HsqlNameManager$HsqlName.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        29: .line 217
            invokevirtual org.hsqldb.persist.Logger.logDetailEvent:(Ljava/lang/String;)V
        30: .line 220
            aload 3 /* rootsArray */
            areturn
        end local 4 // long count
        end local 3 // long[] rootsArray
        end local 2 // org.hsqldb.persist.RowStoreAVLDisk store
        end local 1 // org.hsqldb.Table table
        end local 0 // org.hsqldb.persist.DataFileDefrag this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   31     0        this  Lorg/hsqldb/persist/DataFileDefrag;
            0   31     1       table  Lorg/hsqldb/Table;
            4   31     2       store  Lorg/hsqldb/persist/RowStoreAVLDisk;
            5   31     3  rootsArray  [J
           11   20     4           i  I
           15   18     5         pos  J
           21   31     4       count  J
    MethodParameters:
       Name  Flags
      table  

  public long[][] getIndexRoots();
    descriptor: ()[[J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hsqldb.persist.DataFileDefrag this
         0: .line 224
            aload 0 /* this */
            getfield org.hsqldb.persist.DataFileDefrag.rootsList:[[J
            areturn
        end local 0 // org.hsqldb.persist.DataFileDefrag this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hsqldb/persist/DataFileDefrag;
}
SourceFile: "DataFileDefrag.java"
InnerClasses:
  public final HsqlName = org.hsqldb.HsqlNameManager$HsqlName of org.hsqldb.HsqlNameManager