public class org.h2.store.PageLog
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.store.PageLog
  super_class: java.lang.Object
{
  public static final int NOOP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int UNDO;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int COMMIT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int PREPARE_COMMIT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final int ROLLBACK;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int ADD;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  public static final int REMOVE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  public static final int TRUNCATE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  public static final int CHECKPOINT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  public static final int FREE_LOG;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  static final int RECOVERY_STAGE_UNDO;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int RECOVERY_STAGE_ALLOCATE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int RECOVERY_STAGE_REDO;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final boolean COMPRESS_UNDO;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private final org.h2.store.PageStore store;
    descriptor: Lorg/h2/store/PageStore;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.h2.message.Trace trace;
    descriptor: Lorg/h2/message/Trace;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.h2.store.Data writeBuffer;
    descriptor: Lorg/h2/store/Data;
    flags: (0x0002) ACC_PRIVATE

  private org.h2.store.PageOutputStream pageOut;
    descriptor: Lorg/h2/store/PageOutputStream;
    flags: (0x0002) ACC_PRIVATE

  private int firstTrunkPage;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int firstDataPage;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private final org.h2.store.Data dataBuffer;
    descriptor: Lorg/h2/store/Data;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private int logKey;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int logSectionId;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int logPos;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int firstSectionId;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private final org.h2.compress.CompressLZF compress;
    descriptor: Lorg/h2/compress/CompressLZF;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final byte[] compressBuffer;
    descriptor: [B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.util.BitSet undo;
    descriptor: Ljava/util/BitSet;
    flags: (0x0002) ACC_PRIVATE

  private final java.util.BitSet undoAll;
    descriptor: Ljava/util/BitSet;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.h2.util.IntIntHashMap logSectionPageMap;
    descriptor: Lorg/h2/util/IntIntHashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.util.HashMap<java.lang.Integer, org.h2.store.SessionState> sessionStates;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/Integer;Lorg/h2/store/SessionState;>;

  private java.util.BitSet usedLogPages;
    descriptor: Ljava/util/BitSet;
    flags: (0x0002) ACC_PRIVATE

  private boolean freeing;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  void <init>(org.h2.store.PageStore);
    descriptor: (Lorg/h2/store/PageStore;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.store.PageLog this
        start local 1 // org.h2.store.PageStore store
         0: .line 166
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 135
            aload 0 /* this */
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            putfield org.h2.store.PageLog.undo:Ljava/util/BitSet;
         2: .line 141
            aload 0 /* this */
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            putfield org.h2.store.PageLog.undoAll:Ljava/util/BitSet;
         3: .line 147
            aload 0 /* this */
            new org.h2.util.IntIntHashMap
            dup
            invokespecial org.h2.util.IntIntHashMap.<init>:()V
            putfield org.h2.store.PageLog.logSectionPageMap:Lorg/h2/util/IntIntHashMap;
         4: .line 153
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.h2.store.PageLog.sessionStates:Ljava/util/HashMap;
         5: .line 167
            aload 0 /* this */
            aload 1 /* store */
            putfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
         6: .line 168
            aload 0 /* this */
            aload 1 /* store */
            invokevirtual org.h2.store.PageStore.createData:()Lorg/h2/store/Data;
            putfield org.h2.store.PageLog.dataBuffer:Lorg/h2/store/Data;
         7: .line 169
            aload 0 /* this */
            aload 1 /* store */
            invokevirtual org.h2.store.PageStore.getTrace:()Lorg/h2/message/Trace;
            putfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
         8: .line 170
            aload 0 /* this */
            new org.h2.compress.CompressLZF
            dup
            invokespecial org.h2.compress.CompressLZF.<init>:()V
            putfield org.h2.store.PageLog.compress:Lorg/h2/compress/CompressLZF;
         9: .line 171
            aload 0 /* this */
            aload 1 /* store */
            invokevirtual org.h2.store.PageStore.getPageSize:()I
            iconst_2
            imul
            newarray 8
            putfield org.h2.store.PageLog.compressBuffer:[B
        10: .line 172
            return
        end local 1 // org.h2.store.PageStore store
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lorg/h2/store/PageLog;
            0   11     1  store  Lorg/h2/store/PageStore;
    MethodParameters:
       Name  Flags
      store  

  void openForWriting(int, boolean);
    descriptor: (IZ)V
    flags: (0x0000) 
    Code:
      stack=8, locals=3, args_size=3
        start local 0 // org.h2.store.PageLog this
        start local 1 // int newFirstTrunkPage
        start local 2 // boolean atEnd
         0: .line 182
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            new java.lang.StringBuilder
            dup
            ldc "log openForWriting firstPage: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* newFirstTrunkPage */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
         1: .line 183
            aload 0 /* this */
            iload 1 /* newFirstTrunkPage */
            putfield org.h2.store.PageLog.firstTrunkPage:I
         2: .line 184
            aload 0 /* this */
            dup
            getfield org.h2.store.PageLog.logKey:I
            iconst_1
            iadd
            putfield org.h2.store.PageLog.logKey:I
         3: .line 185
            aload 0 /* this */
            new org.h2.store.PageOutputStream
            dup
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
         4: .line 186
            iload 1 /* newFirstTrunkPage */
            aload 0 /* this */
            getfield org.h2.store.PageLog.undoAll:Ljava/util/BitSet;
            aload 0 /* this */
            getfield org.h2.store.PageLog.logKey:I
            iload 2 /* atEnd */
            invokespecial org.h2.store.PageOutputStream.<init>:(Lorg/h2/store/PageStore;ILjava/util/BitSet;IZ)V
         5: .line 185
            putfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
         6: .line 187
            aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            iconst_1
            invokevirtual org.h2.store.PageOutputStream.reserve:(I)V
         7: .line 189
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            aload 0 /* this */
            getfield org.h2.store.PageLog.logKey:I
            iload 1 /* newFirstTrunkPage */
         8: .line 190
            aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            invokevirtual org.h2.store.PageOutputStream.getCurrentDataPageId:()I
         9: .line 189
            invokevirtual org.h2.store.PageStore.setLogFirstPage:(III)V
        10: .line 191
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.createData:()Lorg/h2/store/Data;
            putfield org.h2.store.PageLog.writeBuffer:Lorg/h2/store/Data;
        11: .line 192
            return
        end local 2 // boolean atEnd
        end local 1 // int newFirstTrunkPage
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   12     0               this  Lorg/h2/store/PageLog;
            0   12     1  newFirstTrunkPage  I
            0   12     2              atEnd  Z
    MethodParameters:
                   Name  Flags
      newFirstTrunkPage  
      atEnd              

  void free();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // org.h2.store.PageLog this
         0: .line 198
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 2
         1: .line 199
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            ldc "log free"
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
         2: .line 201
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* currentDataPage */
        start local 1 // int currentDataPage
         3: .line 202
            aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            ifnull 6
         4: .line 203
            aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            invokevirtual org.h2.store.PageOutputStream.getCurrentDataPageId:()I
            istore 1 /* currentDataPage */
         5: .line 204
            aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            invokevirtual org.h2.store.PageOutputStream.freeReserved:()V
         6: .line 207
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.h2.store.PageLog.freeing:Z
         7: .line 208
            iconst_0
            istore 2 /* first */
        start local 2 // int first
         8: .line 209
            sipush 1024
            istore 3 /* loopDetect */
        start local 3 // int loopDetect
         9: iconst_0
            istore 4 /* loopCount */
        start local 4 // int loopCount
        10: .line 210
            new org.h2.store.PageStreamTrunk$Iterator
            dup
        11: .line 211
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            aload 0 /* this */
            getfield org.h2.store.PageLog.firstTrunkPage:I
        12: .line 210
            invokespecial org.h2.store.PageStreamTrunk$Iterator.<init>:(Lorg/h2/store/PageStore;I)V
            astore 5 /* it */
        start local 5 // org.h2.store.PageStreamTrunk$Iterator it
        13: .line 212
            goto 29
        14: .line 213
      StackMap locals: org.h2.store.PageLog int int int int org.h2.store.PageStreamTrunk$Iterator
      StackMap stack:
            aload 5 /* it */
            invokevirtual org.h2.store.PageStreamTrunk$Iterator.next:()Lorg/h2/store/PageStreamTrunk;
            astore 6 /* t */
        start local 6 // org.h2.store.PageStreamTrunk t
        15: .line 214
            aload 6 /* t */
            ifnonnull 19
        16: .line 215
            aload 5 /* it */
            invokevirtual org.h2.store.PageStreamTrunk$Iterator.canDelete:()Z
            ifeq 34
        17: .line 216
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            aload 0 /* this */
            getfield org.h2.store.PageLog.firstTrunkPage:I
            iconst_0
            invokevirtual org.h2.store.PageStore.free:(IZ)V
        18: .line 218
            goto 34
        19: .line 220
      StackMap locals: org.h2.store.PageStreamTrunk
      StackMap stack:
            iload 4 /* loopCount */
            iinc 4 /* loopCount */ 1
            iload 3 /* loopDetect */
            if_icmplt 24
        20: .line 221
            aload 6 /* t */
            invokevirtual org.h2.store.PageStreamTrunk.getPos:()I
            istore 2 /* first */
        21: .line 222
            iconst_0
            istore 4 /* loopCount */
        22: .line 223
            iload 3 /* loopDetect */
            iconst_2
            imul
            istore 3 /* loopDetect */
        23: .line 224
            goto 27
      StackMap locals:
      StackMap stack:
        24: iload 2 /* first */
            ifeq 27
            iload 2 /* first */
            aload 6 /* t */
            invokevirtual org.h2.store.PageStreamTrunk.getPos:()I
            if_icmpne 27
        25: .line 226
            new java.lang.StringBuilder
            dup
            ldc "endless loop at "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* t */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        26: .line 225
            invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        27: .line 228
      StackMap locals:
      StackMap stack:
            aload 6 /* t */
            iload 1 /* currentDataPage */
            invokevirtual org.h2.store.PageStreamTrunk.free:(I)I
            pop
        28: .line 229
            aload 0 /* this */
            aload 6 /* t */
            invokevirtual org.h2.store.PageStreamTrunk.getNextTrunk:()I
            putfield org.h2.store.PageLog.firstTrunkPage:I
        end local 6 // org.h2.store.PageStreamTrunk t
        29: .line 212
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.firstTrunkPage:I
            ifeq 34
            aload 0 /* this */
            getfield org.h2.store.PageLog.firstTrunkPage:I
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.getPageCount:()I
            if_icmplt 14
        end local 5 // org.h2.store.PageStreamTrunk$Iterator it
        end local 4 // int loopCount
        end local 3 // int loopDetect
        end local 2 // int first
        30: .line 231
            goto 34
      StackMap locals: org.h2.store.PageLog int
      StackMap stack: java.lang.Throwable
        31: astore 7
        32: .line 232
            aload 0 /* this */
            iconst_0
            putfield org.h2.store.PageLog.freeing:Z
        33: .line 233
            aload 7
            athrow
        34: .line 232
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.h2.store.PageLog.freeing:Z
        35: .line 234
            return
        end local 1 // int currentDataPage
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   36     0             this  Lorg/h2/store/PageLog;
            3   36     1  currentDataPage  I
            8   30     2            first  I
            9   30     3       loopDetect  I
           10   30     4        loopCount  I
           13   30     5               it  Lorg/h2/store/PageStreamTrunk$Iterator;
           15   29     6                t  Lorg/h2/store/PageStreamTrunk;
      Exception table:
        from    to  target  type
           6    31      31  any

  void openForReading(int, int, int);
    descriptor: (III)V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.h2.store.PageLog this
        start local 1 // int newLogKey
        start local 2 // int newFirstTrunkPage
        start local 3 // int newFirstDataPage
         0: .line 245
            aload 0 /* this */
            iload 1 /* newLogKey */
            putfield org.h2.store.PageLog.logKey:I
         1: .line 246
            aload 0 /* this */
            iload 2 /* newFirstTrunkPage */
            putfield org.h2.store.PageLog.firstTrunkPage:I
         2: .line 247
            aload 0 /* this */
            iload 3 /* newFirstDataPage */
            putfield org.h2.store.PageLog.firstDataPage:I
         3: .line 248
            return
        end local 3 // int newFirstDataPage
        end local 2 // int newFirstTrunkPage
        end local 1 // int newLogKey
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lorg/h2/store/PageLog;
            0    4     1          newLogKey  I
            0    4     2  newFirstTrunkPage  I
            0    4     3   newFirstDataPage  I
    MethodParameters:
                   Name  Flags
      newLogKey          
      newFirstTrunkPage  
      newFirstDataPage   

  boolean recover(int);
    descriptor: (I)Z
    flags: (0x0000) 
    Code:
      stack=7, locals=13, args_size=2
        start local 0 // org.h2.store.PageLog this
        start local 1 // int stage
         0: .line 260
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 2
         1: .line 261
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            new java.lang.StringBuilder
            dup
            ldc "log recover stage: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* stage */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
         2: .line 263
      StackMap locals:
      StackMap stack:
            iload 1 /* stage */
            iconst_1
            if_icmpne 9
         3: .line 264
            new org.h2.store.PageInputStream
            dup
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
         4: .line 265
            aload 0 /* this */
            getfield org.h2.store.PageLog.logKey:I
            aload 0 /* this */
            getfield org.h2.store.PageLog.firstTrunkPage:I
            aload 0 /* this */
            getfield org.h2.store.PageLog.firstDataPage:I
         5: .line 264
            invokespecial org.h2.store.PageInputStream.<init>:(Lorg/h2/store/PageStore;III)V
            astore 2 /* in */
        start local 2 // org.h2.store.PageInputStream in
         6: .line 266
            aload 0 /* this */
            aload 2 /* in */
            invokevirtual org.h2.store.PageInputStream.allocateAllPages:()Ljava/util/BitSet;
            putfield org.h2.store.PageLog.usedLogPages:Ljava/util/BitSet;
         7: .line 267
            aload 2 /* in */
            invokevirtual org.h2.store.PageInputStream.close:()V
         8: .line 268
            iconst_1
            ireturn
        end local 2 // org.h2.store.PageInputStream in
         9: .line 270
      StackMap locals:
      StackMap stack:
            new org.h2.store.PageInputStream
            dup
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
        10: .line 271
            aload 0 /* this */
            getfield org.h2.store.PageLog.logKey:I
            aload 0 /* this */
            getfield org.h2.store.PageLog.firstTrunkPage:I
            aload 0 /* this */
            getfield org.h2.store.PageLog.firstDataPage:I
        11: .line 270
            invokespecial org.h2.store.PageInputStream.<init>:(Lorg/h2/store/PageStore;III)V
            astore 2 /* pageIn */
        start local 2 // org.h2.store.PageInputStream pageIn
        12: .line 272
            new org.h2.store.DataReader
            dup
            aload 2 /* pageIn */
            invokespecial org.h2.store.DataReader.<init>:(Ljava/io/InputStream;)V
            astore 3 /* in */
        start local 3 // org.h2.store.DataReader in
        13: .line 273
            iconst_0
            istore 4 /* logId */
        start local 4 // int logId
        14: .line 274
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.createData:()Lorg/h2/store/Data;
            astore 5 /* data */
        start local 5 // org.h2.store.Data data
        15: .line 275
            iconst_1
            istore 6 /* isEmpty */
        start local 6 // boolean isEmpty
        16: .line 277
            iconst_0
            istore 7 /* pos */
        start local 7 // int pos
        17: .line 279
      StackMap locals: org.h2.store.PageLog int org.h2.store.PageInputStream org.h2.store.DataReader int org.h2.store.Data int int
      StackMap stack:
            aload 3 /* in */
            invokevirtual org.h2.store.DataReader.readByte:()B
            istore 8 /* x */
        start local 8 // int x
        18: .line 280
            iload 8 /* x */
            ifge 20
        19: .line 281
            goto 148
        20: .line 283
      StackMap locals: int
      StackMap stack:
            iinc 7 /* pos */ 1
        21: .line 284
            iconst_0
            istore 6 /* isEmpty */
        22: .line 285
            iload 8 /* x */
            iconst_1
            if_icmpne 49
        23: .line 286
            aload 3 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 9 /* pageId */
        start local 9 // int pageId
        24: .line 287
            aload 3 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 10 /* size */
        start local 10 // int size
        25: .line 288
            iload 10 /* size */
            ifne 28
        26: .line 289
            aload 3 /* in */
            aload 5 /* data */
            invokevirtual org.h2.store.Data.getBytes:()[B
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.getPageSize:()I
            invokevirtual org.h2.store.DataReader.readFully:([BI)V
        27: .line 290
            goto 38
      StackMap locals: int int
      StackMap stack:
        28: iload 10 /* size */
            iconst_1
            if_icmpne 31
        29: .line 292
            aload 5 /* data */
            invokevirtual org.h2.store.Data.getBytes:()[B
            iconst_0
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.getPageSize:()I
            iconst_0
            invokestatic java.util.Arrays.fill:([BIIB)V
        30: .line 293
            goto 38
        31: .line 294
      StackMap locals:
      StackMap stack:
            aload 3 /* in */
            aload 0 /* this */
            getfield org.h2.store.PageLog.compressBuffer:[B
            iload 10 /* size */
            invokevirtual org.h2.store.DataReader.readFully:([BI)V
        32: .line 296
            aload 0 /* this */
            getfield org.h2.store.PageLog.compress:Lorg/h2/compress/CompressLZF;
            aload 0 /* this */
            getfield org.h2.store.PageLog.compressBuffer:[B
            iconst_0
            iload 10 /* size */
        33: .line 297
            aload 5 /* data */
            invokevirtual org.h2.store.Data.getBytes:()[B
            iconst_0
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.getPageSize:()I
        34: .line 296
            invokevirtual org.h2.compress.CompressLZF.expand:([BII[BII)V
        35: .line 298
            goto 38
      StackMap locals:
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
        36: astore 11 /* e */
        start local 11 // java.lang.ArrayIndexOutOfBoundsException e
        37: .line 299
            aload 11 /* e */
            invokestatic org.h2.message.DbException.convertToIOException:(Ljava/lang/Throwable;)Ljava/io/IOException;
            pop
        end local 11 // java.lang.ArrayIndexOutOfBoundsException e
        38: .line 302
      StackMap locals:
      StackMap stack:
            iload 1 /* stage */
            ifne 17
        39: .line 303
            aload 0 /* this */
            getfield org.h2.store.PageLog.undo:Ljava/util/BitSet;
            iload 9 /* pageId */
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 46
        40: .line 304
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 42
        41: .line 305
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            ldc "log undo {0}"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 9 /* pageId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
        42: .line 307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            iload 9 /* pageId */
            aload 5 /* data */
            invokevirtual org.h2.store.PageStore.writePage:(ILorg/h2/store/Data;)V
        43: .line 308
            aload 0 /* this */
            getfield org.h2.store.PageLog.undo:Ljava/util/BitSet;
            iload 9 /* pageId */
            invokevirtual java.util.BitSet.set:(I)V
        44: .line 309
            aload 0 /* this */
            getfield org.h2.store.PageLog.undoAll:Ljava/util/BitSet;
            iload 9 /* pageId */
            invokevirtual java.util.BitSet.set:(I)V
        45: .line 310
            goto 17
        46: .line 311
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 17
        47: .line 312
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            ldc "log undo skip {0}"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 9 /* pageId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 10 // int size
        end local 9 // int pageId
        48: .line 316
            goto 17
      StackMap locals:
      StackMap stack:
        49: iload 8 /* x */
            iconst_5
            if_icmpne 69
        50: .line 317
            aload 3 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 9 /* sessionId */
        start local 9 // int sessionId
        51: .line 318
            aload 3 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 10 /* tableId */
        start local 10 // int tableId
        52: .line 319
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.getDatabase:()Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getRowFactory:()Lorg/h2/result/RowFactory;
            aload 3 /* in */
            aload 5 /* data */
            invokestatic org.h2.store.PageLog.readRow:(Lorg/h2/result/RowFactory;Lorg/h2/store/DataReader;Lorg/h2/store/Data;)Lorg/h2/result/Row;
            astore 11 /* row */
        start local 11 // org.h2.result.Row row
        53: .line 320
            iload 1 /* stage */
            ifne 56
        54: .line 321
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            iload 7 /* pos */
            iload 10 /* tableId */
            aload 11 /* row */
            invokevirtual org.h2.store.PageStore.allocateIfIndexRoot:(IILorg/h2/result/Row;)V
        55: .line 322
            goto 17
      StackMap locals: int int org.h2.result.Row
      StackMap stack:
        56: iload 1 /* stage */
            iconst_2
            if_icmpne 17
        57: .line 323
            aload 0 /* this */
            iload 9 /* sessionId */
            iload 4 /* logId */
            iload 7 /* pos */
            invokevirtual org.h2.store.PageLog.isSessionCommitted:(III)Z
            ifeq 64
        58: .line 324
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 62
        59: .line 325
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            new java.lang.StringBuilder
            dup
            ldc "log redo + table: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 10 /* tableId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        60: .line 326
            ldc " s: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 9 /* sessionId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 11 /* row */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        61: .line 325
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
        62: .line 328
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            iload 10 /* tableId */
            aload 11 /* row */
            iconst_1
            invokevirtual org.h2.store.PageStore.redo:(ILorg/h2/result/Row;Z)V
        63: .line 329
            goto 17
        64: .line 330
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 17
        65: .line 331
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            new java.lang.StringBuilder
            dup
            ldc "log ignore s: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* sessionId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        66: .line 332
            ldc " + table: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 10 /* tableId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 11 /* row */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        67: .line 331
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
        end local 11 // org.h2.result.Row row
        end local 10 // int tableId
        end local 9 // int sessionId
        68: .line 336
            goto 17
      StackMap locals:
      StackMap stack:
        69: iload 8 /* x */
            bipush 6
            if_icmpne 86
        70: .line 337
            aload 3 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 9 /* sessionId */
        start local 9 // int sessionId
        71: .line 338
            aload 3 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 10 /* tableId */
        start local 10 // int tableId
        72: .line 339
            aload 3 /* in */
            invokevirtual org.h2.store.DataReader.readVarLong:()J
            lstore 11 /* key */
        start local 11 // long key
        73: .line 340
            iload 1 /* stage */
            iconst_2
            if_icmpne 17
        74: .line 341
            aload 0 /* this */
            iload 9 /* sessionId */
            iload 4 /* logId */
            iload 7 /* pos */
            invokevirtual org.h2.store.PageLog.isSessionCommitted:(III)Z
            ifeq 81
        75: .line 342
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 79
        76: .line 343
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            new java.lang.StringBuilder
            dup
            ldc "log redo - table: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 10 /* tableId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        77: .line 344
            ldc " s:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 9 /* sessionId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " key: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 11 /* key */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        78: .line 343
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
        79: .line 346
      StackMap locals: int int long
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            iload 10 /* tableId */
            lload 11 /* key */
            invokevirtual org.h2.store.PageStore.redoDelete:(IJ)V
        80: .line 347
            goto 17
        81: .line 348
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 17
        82: .line 349
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            new java.lang.StringBuilder
            dup
            ldc "log ignore s: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* sessionId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        83: .line 350
            ldc " - table: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 10 /* tableId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 11 /* key */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        84: .line 349
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
        end local 11 // long key
        end local 10 // int tableId
        end local 9 // int sessionId
        85: .line 354
            goto 17
      StackMap locals:
      StackMap stack:
        86: iload 8 /* x */
            bipush 7
            if_icmpne 100
        87: .line 355
            aload 3 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 9 /* sessionId */
        start local 9 // int sessionId
        88: .line 356
            aload 3 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 10 /* tableId */
        start local 10 // int tableId
        89: .line 357
            iload 1 /* stage */
            iconst_2
            if_icmpne 17
        90: .line 358
            aload 0 /* this */
            iload 9 /* sessionId */
            iload 4 /* logId */
            iload 7 /* pos */
            invokevirtual org.h2.store.PageLog.isSessionCommitted:(III)Z
            ifeq 95
        91: .line 359
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 93
        92: .line 360
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            new java.lang.StringBuilder
            dup
            ldc "log redo truncate table: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 10 /* tableId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
        93: .line 362
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            iload 10 /* tableId */
            invokevirtual org.h2.store.PageStore.redoTruncate:(I)V
        94: .line 363
            goto 17
        95: .line 364
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 17
        96: .line 365
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            new java.lang.StringBuilder
            dup
            ldc "log ignore s: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* sessionId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        97: .line 366
            ldc " truncate table: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 10 /* tableId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        98: .line 365
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
        end local 10 // int tableId
        end local 9 // int sessionId
        99: .line 370
            goto 17
      StackMap locals:
      StackMap stack:
       100: iload 8 /* x */
            iconst_3
            if_icmpne 111
       101: .line 371
            aload 3 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 9 /* sessionId */
        start local 9 // int sessionId
       102: .line 372
            aload 3 /* in */
            invokevirtual org.h2.store.DataReader.readString:()Ljava/lang/String;
            astore 10 /* transaction */
        start local 10 // java.lang.String transaction
       103: .line 373
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 107
       104: .line 374
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            new java.lang.StringBuilder
            dup
            ldc "log prepare commit "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* sessionId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       105: .line 375
            aload 10 /* transaction */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " pos: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* pos */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       106: .line 374
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
       107: .line 377
      StackMap locals: int java.lang.String
      StackMap stack:
            iload 1 /* stage */
            ifne 17
       108: .line 378
            aload 2 /* pageIn */
            invokevirtual org.h2.store.PageInputStream.getDataPage:()I
            istore 11 /* page */
        start local 11 // int page
       109: .line 379
            aload 0 /* this */
            iload 9 /* sessionId */
            iload 11 /* page */
            aload 10 /* transaction */
            invokevirtual org.h2.store.PageLog.setPrepareCommit:(IILjava/lang/String;)V
        end local 11 // int page
        end local 10 // java.lang.String transaction
        end local 9 // int sessionId
       110: .line 381
            goto 17
      StackMap locals:
      StackMap stack:
       111: iload 8 /* x */
            iconst_4
            if_icmpne 116
       112: .line 382
            aload 3 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 9 /* sessionId */
        start local 9 // int sessionId
       113: .line 383
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 17
       114: .line 384
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            new java.lang.StringBuilder
            dup
            ldc "log rollback "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* sessionId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " pos: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* pos */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
        end local 9 // int sessionId
       115: .line 387
            goto 17
      StackMap locals:
      StackMap stack:
       116: iload 8 /* x */
            iconst_2
            if_icmpne 123
       117: .line 388
            aload 3 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 9 /* sessionId */
        start local 9 // int sessionId
       118: .line 389
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 120
       119: .line 390
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            new java.lang.StringBuilder
            dup
            ldc "log commit "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* sessionId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " pos: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* pos */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
       120: .line 392
      StackMap locals: int
      StackMap stack:
            iload 1 /* stage */
            ifne 17
       121: .line 393
            aload 0 /* this */
            iload 9 /* sessionId */
            iload 4 /* logId */
            iload 7 /* pos */
            invokevirtual org.h2.store.PageLog.setLastCommitForSession:(III)V
        end local 9 // int sessionId
       122: .line 395
            goto 17
      StackMap locals:
      StackMap stack:
       123: iload 8 /* x */
            ifeq 17
       124: .line 397
            iload 8 /* x */
            bipush 8
            if_icmpne 127
       125: .line 398
            iinc 4 /* logId */ 1
       126: .line 399
            goto 17
      StackMap locals:
      StackMap stack:
       127: iload 8 /* x */
            bipush 9
            if_icmpne 138
       128: .line 400
            aload 3 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 9 /* count */
        start local 9 // int count
       129: .line 401
            iconst_0
            istore 10 /* i */
        start local 10 // int i
       130: goto 136
       131: .line 402
      StackMap locals: int int
      StackMap stack:
            aload 3 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 11 /* pageId */
        start local 11 // int pageId
       132: .line 403
            iload 1 /* stage */
            iconst_2
            if_icmpne 135
       133: .line 404
            aload 0 /* this */
            getfield org.h2.store.PageLog.usedLogPages:Ljava/util/BitSet;
            iload 11 /* pageId */
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 135
       134: .line 405
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            iload 11 /* pageId */
            iconst_0
            invokevirtual org.h2.store.PageStore.free:(IZ)V
        end local 11 // int pageId
       135: .line 401
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
       136: iload 10 /* i */
            iload 9 /* count */
            if_icmplt 131
        end local 10 // int i
        end local 9 // int count
       137: .line 409
            goto 17
       138: .line 410
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 17
       139: .line 411
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            ldc "log end"
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
        end local 8 // int x
        end local 7 // int pos
       140: .line 416
            goto 148
      StackMap locals: org.h2.store.PageLog int org.h2.store.PageInputStream org.h2.store.DataReader int org.h2.store.Data int
      StackMap stack: org.h2.message.DbException
       141: astore 7 /* e */
        start local 7 // org.h2.message.DbException e
       142: .line 417
            aload 7 /* e */
            invokevirtual org.h2.message.DbException.getErrorCode:()I
            ldc 90030
            if_icmpne 145
       143: .line 418
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            ldc "log recovery stopped"
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
       144: .line 419
            goto 148
       145: .line 420
      StackMap locals: org.h2.message.DbException
      StackMap stack:
            aload 7 /* e */
            athrow
        end local 7 // org.h2.message.DbException e
       146: .line 422
      StackMap locals: org.h2.store.PageLog int org.h2.store.PageInputStream org.h2.store.DataReader int org.h2.store.Data int
      StackMap stack: java.io.IOException
            pop
       147: .line 423
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            ldc "log recovery completed"
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
       148: .line 425
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            putfield org.h2.store.PageLog.undo:Ljava/util/BitSet;
       149: .line 426
            iload 1 /* stage */
            iconst_2
            if_icmpne 151
       150: .line 427
            aload 0 /* this */
            aconst_null
            putfield org.h2.store.PageLog.usedLogPages:Ljava/util/BitSet;
       151: .line 429
      StackMap locals:
      StackMap stack:
            iload 6 /* isEmpty */
            ireturn
        end local 6 // boolean isEmpty
        end local 5 // org.h2.store.Data data
        end local 4 // int logId
        end local 3 // org.h2.store.DataReader in
        end local 2 // org.h2.store.PageInputStream pageIn
        end local 1 // int stage
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0  152     0         this  Lorg/h2/store/PageLog;
            0  152     1        stage  I
            6    9     2           in  Lorg/h2/store/PageInputStream;
           12  152     2       pageIn  Lorg/h2/store/PageInputStream;
           13  152     3           in  Lorg/h2/store/DataReader;
           14  152     4        logId  I
           15  152     5         data  Lorg/h2/store/Data;
           16  152     6      isEmpty  Z
           17  140     7          pos  I
           18  140     8            x  I
           24   48     9       pageId  I
           25   48    10         size  I
           37   38    11            e  Ljava/lang/ArrayIndexOutOfBoundsException;
           51   68     9    sessionId  I
           52   68    10      tableId  I
           53   68    11          row  Lorg/h2/result/Row;
           71   85     9    sessionId  I
           72   85    10      tableId  I
           73   85    11          key  J
           88   99     9    sessionId  I
           89   99    10      tableId  I
          102  110     9    sessionId  I
          103  110    10  transaction  Ljava/lang/String;
          109  110    11         page  I
          113  115     9    sessionId  I
          118  122     9    sessionId  I
          129  137     9        count  I
          130  137    10            i  I
          132  135    11       pageId  I
          142  146     7            e  Lorg/h2/message/DbException;
      Exception table:
        from    to  target  type
          32    35      36  Class java.lang.ArrayIndexOutOfBoundsException
          16   140     141  Class org.h2.message.DbException
          16   140     146  Class java.io.IOException
    MethodParameters:
       Name  Flags
      stage  

  private void setPrepareCommit(int, int, java.lang.String);
    descriptor: (IILjava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // org.h2.store.PageLog this
        start local 1 // int sessionId
        start local 2 // int pageId
        start local 3 // java.lang.String transaction
         0: .line 441
            aload 0 /* this */
            iload 1 /* sessionId */
            invokevirtual org.h2.store.PageLog.getOrAddSessionState:(I)Lorg/h2/store/SessionState;
            astore 4 /* state */
        start local 4 // org.h2.store.SessionState state
         1: .line 443
            aload 3 /* transaction */
            ifnonnull 4
         2: .line 444
            aconst_null
            astore 5 /* doubt */
        start local 5 // org.h2.store.PageStoreInDoubtTransaction doubt
         3: .line 445
            goto 7
        end local 5 // org.h2.store.PageStoreInDoubtTransaction doubt
         4: .line 446
      StackMap locals: org.h2.store.SessionState
      StackMap stack:
            new org.h2.store.PageStoreInDoubtTransaction
            dup
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            iload 1 /* sessionId */
            iload 2 /* pageId */
         5: .line 447
            aload 3 /* transaction */
         6: .line 446
            invokespecial org.h2.store.PageStoreInDoubtTransaction.<init>:(Lorg/h2/store/PageStore;IILjava/lang/String;)V
            astore 5 /* doubt */
        start local 5 // org.h2.store.PageStoreInDoubtTransaction doubt
         7: .line 449
      StackMap locals: org.h2.store.PageStoreInDoubtTransaction
      StackMap stack:
            aload 4 /* state */
            aload 5 /* doubt */
            putfield org.h2.store.SessionState.inDoubtTransaction:Lorg/h2/store/PageStoreInDoubtTransaction;
         8: .line 450
            return
        end local 5 // org.h2.store.PageStoreInDoubtTransaction doubt
        end local 4 // org.h2.store.SessionState state
        end local 3 // java.lang.String transaction
        end local 2 // int pageId
        end local 1 // int sessionId
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lorg/h2/store/PageLog;
            0    9     1    sessionId  I
            0    9     2       pageId  I
            0    9     3  transaction  Ljava/lang/String;
            1    9     4        state  Lorg/h2/store/SessionState;
            3    4     5        doubt  Lorg/h2/store/PageStoreInDoubtTransaction;
            7    9     5        doubt  Lorg/h2/store/PageStoreInDoubtTransaction;
    MethodParameters:
             Name  Flags
      sessionId    
      pageId       
      transaction  

  public static org.h2.result.Row readRow(org.h2.result.RowFactory, org.h2.store.DataReader, org.h2.store.Data);
    descriptor: (Lorg/h2/result/RowFactory;Lorg/h2/store/DataReader;Lorg/h2/store/Data;)Lorg/h2/result/Row;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // org.h2.result.RowFactory rowFactory
        start local 1 // org.h2.store.DataReader in
        start local 2 // org.h2.store.Data data
         0: .line 461
            aload 1 /* in */
            invokevirtual org.h2.store.DataReader.readVarLong:()J
            lstore 3 /* key */
        start local 3 // long key
         1: .line 462
            aload 1 /* in */
            invokevirtual org.h2.store.DataReader.readVarInt:()I
            istore 5 /* len */
        start local 5 // int len
         2: .line 463
            aload 2 /* data */
            invokevirtual org.h2.store.Data.reset:()V
         3: .line 464
            aload 2 /* data */
            iload 5 /* len */
            invokevirtual org.h2.store.Data.checkCapacity:(I)V
         4: .line 465
            aload 1 /* in */
            aload 2 /* data */
            invokevirtual org.h2.store.Data.getBytes:()[B
            iload 5 /* len */
            invokevirtual org.h2.store.DataReader.readFully:([BI)V
         5: .line 466
            aload 2 /* data */
            invokevirtual org.h2.store.Data.readVarInt:()I
            istore 6 /* columnCount */
        start local 6 // int columnCount
         6: .line 467
            iload 6 /* columnCount */
            anewarray org.h2.value.Value
            astore 7 /* values */
        start local 7 // org.h2.value.Value[] values
         7: .line 468
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         8: goto 11
         9: .line 469
      StackMap locals: org.h2.result.RowFactory org.h2.store.DataReader org.h2.store.Data long int int org.h2.value.Value[] int
      StackMap stack:
            aload 7 /* values */
            iload 8 /* i */
            aload 2 /* data */
            invokevirtual org.h2.store.Data.readValue:()Lorg/h2/value/Value;
            aastore
        10: .line 468
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 8 /* i */
            iload 6 /* columnCount */
            if_icmplt 9
        end local 8 // int i
        12: .line 471
            aload 0 /* rowFactory */
            aload 7 /* values */
            iconst_m1
            invokevirtual org.h2.result.RowFactory.createRow:([Lorg/h2/value/Value;I)Lorg/h2/result/Row;
            astore 8 /* row */
        start local 8 // org.h2.result.Row row
        13: .line 472
            aload 8 /* row */
            lload 3 /* key */
            invokeinterface org.h2.result.Row.setKey:(J)V
        14: .line 473
            aload 8 /* row */
            areturn
        end local 8 // org.h2.result.Row row
        end local 7 // org.h2.value.Value[] values
        end local 6 // int columnCount
        end local 5 // int len
        end local 3 // long key
        end local 2 // org.h2.store.Data data
        end local 1 // org.h2.store.DataReader in
        end local 0 // org.h2.result.RowFactory rowFactory
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   15     0   rowFactory  Lorg/h2/result/RowFactory;
            0   15     1           in  Lorg/h2/store/DataReader;
            0   15     2         data  Lorg/h2/store/Data;
            1   15     3          key  J
            2   15     5          len  I
            6   15     6  columnCount  I
            7   15     7       values  [Lorg/h2/value/Value;
            8   12     8            i  I
           13   15     8          row  Lorg/h2/result/Row;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      rowFactory  
      in          
      data        

  boolean getUndo(int);
    descriptor: (I)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.store.PageLog this
        start local 1 // int pageId
         0: .line 483
            aload 0 /* this */
            getfield org.h2.store.PageLog.undo:Ljava/util/BitSet;
            iload 1 /* pageId */
            invokevirtual java.util.BitSet.get:(I)Z
            ireturn
        end local 1 // int pageId
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/h2/store/PageLog;
            0    1     1  pageId  I
    MethodParameters:
        Name  Flags
      pageId  

  void addUndo(int, org.h2.store.Data);
    descriptor: (ILorg/h2/store/Data;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.h2.store.PageLog this
        start local 1 // int pageId
        start local 2 // org.h2.store.Data page
         0: .line 494
            aload 0 /* this */
            getfield org.h2.store.PageLog.undo:Ljava/util/BitSet;
            iload 1 /* pageId */
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 1
            aload 0 /* this */
            getfield org.h2.store.PageLog.freeing:Z
            ifeq 2
         1: .line 495
      StackMap locals:
      StackMap stack:
            return
         2: .line 497
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 4
         3: .line 498
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            new java.lang.StringBuilder
            dup
            ldc "log undo "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* pageId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
         4: .line 500
      StackMap locals:
      StackMap stack:
            aload 2 /* page */
            ifnonnull 6
         5: .line 501
            ldc "Undo entry not written"
            invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            pop
         6: .line 503
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.undo:Ljava/util/BitSet;
            iload 1 /* pageId */
            invokevirtual java.util.BitSet.set:(I)V
         7: .line 504
            aload 0 /* this */
            getfield org.h2.store.PageLog.undoAll:Ljava/util/BitSet;
            iload 1 /* pageId */
            invokevirtual java.util.BitSet.set:(I)V
         8: .line 505
            aload 0 /* this */
            invokevirtual org.h2.store.PageLog.getBuffer:()Lorg/h2/store/Data;
            astore 3 /* buffer */
        start local 3 // org.h2.store.Data buffer
         9: .line 506
            aload 3 /* buffer */
            iconst_1
            invokevirtual org.h2.store.Data.writeByte:(B)V
        10: .line 507
            aload 3 /* buffer */
            iload 1 /* pageId */
            invokevirtual org.h2.store.Data.writeVarInt:(I)V
        11: .line 508
            aload 2 /* page */
            invokevirtual org.h2.store.Data.getBytes:()[B
            iconst_0
            baload
            ifne 14
        12: .line 509
            aload 3 /* buffer */
            iconst_1
            invokevirtual org.h2.store.Data.writeVarInt:(I)V
        13: .line 510
            goto 26
        14: .line 511
      StackMap locals: org.h2.store.Data
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.getPageSize:()I
            istore 4 /* pageSize */
        start local 4 // int pageSize
        15: .line 513
            aload 0 /* this */
            getfield org.h2.store.PageLog.compress:Lorg/h2/compress/CompressLZF;
            aload 2 /* page */
            invokevirtual org.h2.store.Data.getBytes:()[B
        16: .line 514
            iload 4 /* pageSize */
            aload 0 /* this */
            getfield org.h2.store.PageLog.compressBuffer:[B
            iconst_0
        17: .line 513
            invokevirtual org.h2.compress.CompressLZF.compress:([BI[BI)I
            istore 5 /* size */
        start local 5 // int size
        18: .line 515
            iload 5 /* size */
            iload 4 /* pageSize */
            if_icmpge 23
        19: .line 516
            aload 3 /* buffer */
            iload 5 /* size */
            invokevirtual org.h2.store.Data.writeVarInt:(I)V
        20: .line 517
            aload 3 /* buffer */
            iload 5 /* size */
            invokevirtual org.h2.store.Data.checkCapacity:(I)V
        21: .line 518
            aload 3 /* buffer */
            aload 0 /* this */
            getfield org.h2.store.PageLog.compressBuffer:[B
            iconst_0
            iload 5 /* size */
            invokevirtual org.h2.store.Data.write:([BII)V
        22: .line 519
            goto 26
        23: .line 520
      StackMap locals: int int
      StackMap stack:
            aload 3 /* buffer */
            iconst_0
            invokevirtual org.h2.store.Data.writeVarInt:(I)V
        24: .line 521
            aload 3 /* buffer */
            iload 4 /* pageSize */
            invokevirtual org.h2.store.Data.checkCapacity:(I)V
        25: .line 522
            aload 3 /* buffer */
            aload 2 /* page */
            invokevirtual org.h2.store.Data.getBytes:()[B
            iconst_0
            iload 4 /* pageSize */
            invokevirtual org.h2.store.Data.write:([BII)V
        end local 5 // int size
        end local 4 // int pageSize
        26: .line 530
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* buffer */
            invokevirtual org.h2.store.PageLog.write:(Lorg/h2/store/Data;)V
        27: .line 531
            return
        end local 3 // org.h2.store.Data buffer
        end local 2 // org.h2.store.Data page
        end local 1 // int pageId
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   28     0      this  Lorg/h2/store/PageLog;
            0   28     1    pageId  I
            0   28     2      page  Lorg/h2/store/Data;
            9   28     3    buffer  Lorg/h2/store/Data;
           15   26     4  pageSize  I
           18   26     5      size  I
    MethodParameters:
        Name  Flags
      pageId  
      page    

  private void freeLogPages(org.h2.util.IntArray);
    descriptor: (Lorg/h2/util/IntArray;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.h2.store.PageLog this
        start local 1 // org.h2.util.IntArray pages
         0: .line 534
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 4
         1: .line 535
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            new java.lang.StringBuilder
            dup
            ldc "log frees "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* pages */
            iconst_0
            invokevirtual org.h2.util.IntArray.get:(I)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ".."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 536
            aload 1 /* pages */
            aload 1 /* pages */
            invokevirtual org.h2.util.IntArray.size:()I
            iconst_1
            isub
            invokevirtual org.h2.util.IntArray.get:(I)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 535
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
         4: .line 538
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.store.PageLog.getBuffer:()Lorg/h2/store/Data;
            astore 2 /* buffer */
        start local 2 // org.h2.store.Data buffer
         5: .line 539
            aload 2 /* buffer */
            bipush 9
            invokevirtual org.h2.store.Data.writeByte:(B)V
         6: .line 540
            aload 1 /* pages */
            invokevirtual org.h2.util.IntArray.size:()I
            istore 3 /* size */
        start local 3 // int size
         7: .line 541
            aload 2 /* buffer */
            iload 3 /* size */
            invokevirtual org.h2.store.Data.writeVarInt:(I)V
         8: .line 542
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         9: goto 12
        10: .line 543
      StackMap locals: org.h2.store.Data int int
      StackMap stack:
            aload 2 /* buffer */
            aload 1 /* pages */
            iload 4 /* i */
            invokevirtual org.h2.util.IntArray.get:(I)I
            invokevirtual org.h2.store.Data.writeVarInt:(I)V
        11: .line 542
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 4 /* i */
            iload 3 /* size */
            if_icmplt 10
        end local 4 // int i
        13: .line 545
            aload 0 /* this */
            aload 2 /* buffer */
            invokevirtual org.h2.store.PageLog.write:(Lorg/h2/store/Data;)V
        14: .line 546
            return
        end local 3 // int size
        end local 2 // org.h2.store.Data buffer
        end local 1 // org.h2.util.IntArray pages
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0    this  Lorg/h2/store/PageLog;
            0   15     1   pages  Lorg/h2/util/IntArray;
            5   15     2  buffer  Lorg/h2/store/Data;
            7   15     3    size  I
            9   13     4       i  I
    MethodParameters:
       Name  Flags
      pages  

  private void write(org.h2.store.Data);
    descriptor: (Lorg/h2/store/Data;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.h2.store.PageLog this
        start local 1 // org.h2.store.Data data
         0: .line 549
            aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            aload 1 /* data */
            invokevirtual org.h2.store.Data.getBytes:()[B
            iconst_0
            aload 1 /* data */
            invokevirtual org.h2.store.Data.length:()I
            invokevirtual org.h2.store.PageOutputStream.write:([BII)V
         1: .line 550
            aload 1 /* data */
            invokevirtual org.h2.store.Data.reset:()V
         2: .line 551
            return
        end local 1 // org.h2.store.Data data
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/store/PageLog;
            0    3     1  data  Lorg/h2/store/Data;
    MethodParameters:
      Name  Flags
      data  

  void commit(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.h2.store.PageLog this
        start local 1 // int sessionId
         0: .line 559
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 2
         1: .line 560
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            new java.lang.StringBuilder
            dup
            ldc "log commit s: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* sessionId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
         2: .line 562
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.getDatabase:()Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getPageStore:()Lorg/h2/store/PageStore;
            ifnonnull 4
         3: .line 564
            return
         4: .line 566
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.store.PageLog.getBuffer:()Lorg/h2/store/Data;
            astore 2 /* buffer */
        start local 2 // org.h2.store.Data buffer
         5: .line 567
            aload 2 /* buffer */
            iconst_2
            invokevirtual org.h2.store.Data.writeByte:(B)V
         6: .line 568
            aload 2 /* buffer */
            iload 1 /* sessionId */
            invokevirtual org.h2.store.Data.writeVarInt:(I)V
         7: .line 569
            aload 0 /* this */
            aload 2 /* buffer */
            invokevirtual org.h2.store.PageLog.write:(Lorg/h2/store/Data;)V
         8: .line 570
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.getDatabase:()Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getFlushOnEachCommit:()Z
            ifeq 10
         9: .line 571
            aload 0 /* this */
            invokevirtual org.h2.store.PageLog.flush:()V
        10: .line 573
      StackMap locals: org.h2.store.Data
      StackMap stack:
            return
        end local 2 // org.h2.store.Data buffer
        end local 1 // int sessionId
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lorg/h2/store/PageLog;
            0   11     1  sessionId  I
            5   11     2     buffer  Lorg/h2/store/Data;
    MethodParameters:
           Name  Flags
      sessionId  

  void prepareCommit(org.h2.engine.Session, java.lang.String);
    descriptor: (Lorg/h2/engine/Session;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.h2.store.PageLog this
        start local 1 // org.h2.engine.Session session
        start local 2 // java.lang.String transaction
         0: .line 582
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 2
         1: .line 583
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            new java.lang.StringBuilder
            dup
            ldc "log prepare commit s: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* session */
            invokevirtual org.h2.engine.Session.getId:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* transaction */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
         2: .line 585
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.getDatabase:()Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getPageStore:()Lorg/h2/store/PageStore;
            ifnonnull 4
         3: .line 587
            return
         4: .line 590
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.getPageSize:()I
            istore 3 /* pageSize */
        start local 3 // int pageSize
         5: .line 591
            aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            invokevirtual org.h2.store.PageOutputStream.flush:()V
         6: .line 592
            aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            invokevirtual org.h2.store.PageOutputStream.fillPage:()V
         7: .line 593
            aload 0 /* this */
            invokevirtual org.h2.store.PageLog.getBuffer:()Lorg/h2/store/Data;
            astore 4 /* buffer */
        start local 4 // org.h2.store.Data buffer
         8: .line 594
            aload 4 /* buffer */
            iconst_3
            invokevirtual org.h2.store.Data.writeByte:(B)V
         9: .line 595
            aload 4 /* buffer */
            aload 1 /* session */
            invokevirtual org.h2.engine.Session.getId:()I
            invokevirtual org.h2.store.Data.writeVarInt:(I)V
        10: .line 596
            aload 4 /* buffer */
            aload 2 /* transaction */
            invokevirtual org.h2.store.Data.writeString:(Ljava/lang/String;)V
        11: .line 597
            aload 4 /* buffer */
            invokevirtual org.h2.store.Data.length:()I
            iload 3 /* pageSize */
            invokestatic org.h2.store.PageStreamData.getCapacity:(I)I
            if_icmplt 14
        12: .line 599
            ldc "transaction name (too long)"
            aload 2 /* transaction */
        13: .line 598
            invokestatic org.h2.message.DbException.getInvalidValueException:(Ljava/lang/String;Ljava/lang/Object;)Lorg/h2/message/DbException;
            athrow
        14: .line 601
      StackMap locals: int org.h2.store.Data
      StackMap stack:
            aload 0 /* this */
            aload 4 /* buffer */
            invokevirtual org.h2.store.PageLog.write:(Lorg/h2/store/Data;)V
        15: .line 603
            aload 0 /* this */
            invokevirtual org.h2.store.PageLog.flushOut:()V
        16: .line 604
            aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            invokevirtual org.h2.store.PageOutputStream.fillPage:()V
        17: .line 605
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.getDatabase:()Lorg/h2/engine/Database;
            invokevirtual org.h2.engine.Database.getFlushOnEachCommit:()Z
            ifeq 19
        18: .line 606
            aload 0 /* this */
            invokevirtual org.h2.store.PageLog.flush:()V
        19: .line 608
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.h2.store.Data buffer
        end local 3 // int pageSize
        end local 2 // java.lang.String transaction
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0         this  Lorg/h2/store/PageLog;
            0   20     1      session  Lorg/h2/engine/Session;
            0   20     2  transaction  Ljava/lang/String;
            5   20     3     pageSize  I
            8   20     4       buffer  Lorg/h2/store/Data;
    MethodParameters:
             Name  Flags
      session      
      transaction  

  void logAddOrRemoveRow(org.h2.engine.Session, int, org.h2.result.Row, boolean);
    descriptor: (Lorg/h2/engine/Session;ILorg/h2/result/Row;Z)V
    flags: (0x0000) 
    Code:
      stack=4, locals=9, args_size=5
        start local 0 // org.h2.store.PageLog this
        start local 1 // org.h2.engine.Session session
        start local 2 // int tableId
        start local 3 // org.h2.result.Row row
        start local 4 // boolean add
         0: .line 619
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 6
         1: .line 620
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            new java.lang.StringBuilder
            dup
            ldc "log "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* add */
            ifeq 2
            ldc "+"
            goto 3
      StackMap locals: org.h2.store.PageLog org.h2.engine.Session int org.h2.result.Row int
      StackMap stack: org.h2.message.Trace java.lang.StringBuilder
         2: ldc "-"
      StackMap locals: org.h2.store.PageLog org.h2.engine.Session int org.h2.result.Row int
      StackMap stack: org.h2.message.Trace java.lang.StringBuilder java.lang.String
         3: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 621
            ldc " s: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* session */
            invokevirtual org.h2.engine.Session.getId:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " table: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* tableId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " row: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* row */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 620
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
         6: .line 623
      StackMap locals:
      StackMap stack:
            aload 1 /* session */
            aload 0 /* this */
            getfield org.h2.store.PageLog.logSectionId:I
            aload 0 /* this */
            getfield org.h2.store.PageLog.logPos:I
            invokevirtual org.h2.engine.Session.addLogPos:(II)V
         7: .line 624
            aload 0 /* this */
            dup
            getfield org.h2.store.PageLog.logPos:I
            iconst_1
            iadd
            putfield org.h2.store.PageLog.logPos:I
         8: .line 625
            aload 0 /* this */
            getfield org.h2.store.PageLog.dataBuffer:Lorg/h2/store/Data;
            astore 5 /* data */
        start local 5 // org.h2.store.Data data
         9: .line 626
            aload 5 /* data */
            invokevirtual org.h2.store.Data.reset:()V
        10: .line 627
            aload 3 /* row */
            invokeinterface org.h2.result.Row.getColumnCount:()I
            istore 6 /* columns */
        start local 6 // int columns
        11: .line 628
            aload 5 /* data */
            iload 6 /* columns */
            invokevirtual org.h2.store.Data.writeVarInt:(I)V
        12: .line 629
            aload 5 /* data */
            aload 3 /* row */
            aload 5 /* data */
            invokeinterface org.h2.result.Row.getByteCount:(Lorg/h2/store/Data;)I
            invokevirtual org.h2.store.Data.checkCapacity:(I)V
        13: .line 630
            aload 1 /* session */
            invokevirtual org.h2.engine.Session.isRedoLogBinaryEnabled:()Z
            ifeq 20
        14: .line 631
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        15: goto 18
        16: .line 632
      StackMap locals: org.h2.store.Data int int
      StackMap stack:
            aload 5 /* data */
            aload 3 /* row */
            iload 7 /* i */
            invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
            invokevirtual org.h2.store.Data.writeValue:(Lorg/h2/value/Value;)V
        17: .line 631
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 7 /* i */
            iload 6 /* columns */
            if_icmplt 16
        end local 7 // int i
        19: .line 634
            goto 29
        20: .line 635
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        21: goto 28
        22: .line 636
      StackMap locals: int
      StackMap stack:
            aload 3 /* row */
            iload 7 /* i */
            invokeinterface org.h2.result.Row.getValue:(I)Lorg/h2/value/Value;
            astore 8 /* v */
        start local 8 // org.h2.value.Value v
        23: .line 637
            aload 8 /* v */
            invokevirtual org.h2.value.Value.getValueType:()I
            bipush 12
            if_icmpne 26
        24: .line 638
            aload 5 /* data */
            getstatic org.h2.value.ValueNull.INSTANCE:Lorg/h2/value/ValueNull;
            invokevirtual org.h2.store.Data.writeValue:(Lorg/h2/value/Value;)V
        25: .line 639
            goto 27
        26: .line 640
      StackMap locals: org.h2.value.Value
      StackMap stack:
            aload 5 /* data */
            aload 8 /* v */
            invokevirtual org.h2.store.Data.writeValue:(Lorg/h2/value/Value;)V
        end local 8 // org.h2.value.Value v
        27: .line 635
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 7 /* i */
            iload 6 /* columns */
            if_icmplt 22
        end local 7 // int i
        29: .line 644
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.store.PageLog.getBuffer:()Lorg/h2/store/Data;
            astore 7 /* buffer */
        start local 7 // org.h2.store.Data buffer
        30: .line 645
            aload 7 /* buffer */
            iload 4 /* add */
            ifeq 31
            iconst_5
            goto 32
      StackMap locals: org.h2.store.PageLog org.h2.engine.Session int org.h2.result.Row int org.h2.store.Data int org.h2.store.Data
      StackMap stack: org.h2.store.Data
        31: bipush 6
      StackMap locals: org.h2.store.PageLog org.h2.engine.Session int org.h2.result.Row int org.h2.store.Data int org.h2.store.Data
      StackMap stack: org.h2.store.Data int
        32: i2b
            invokevirtual org.h2.store.Data.writeByte:(B)V
        33: .line 646
            aload 7 /* buffer */
            aload 1 /* session */
            invokevirtual org.h2.engine.Session.getId:()I
            invokevirtual org.h2.store.Data.writeVarInt:(I)V
        34: .line 647
            aload 7 /* buffer */
            iload 2 /* tableId */
            invokevirtual org.h2.store.Data.writeVarInt:(I)V
        35: .line 648
            aload 7 /* buffer */
            aload 3 /* row */
            invokeinterface org.h2.result.Row.getKey:()J
            invokevirtual org.h2.store.Data.writeVarLong:(J)V
        36: .line 649
            iload 4 /* add */
            ifeq 40
        37: .line 650
            aload 7 /* buffer */
            aload 5 /* data */
            invokevirtual org.h2.store.Data.length:()I
            invokevirtual org.h2.store.Data.writeVarInt:(I)V
        38: .line 651
            aload 7 /* buffer */
            aload 5 /* data */
            invokevirtual org.h2.store.Data.length:()I
            invokevirtual org.h2.store.Data.checkCapacity:(I)V
        39: .line 652
            aload 7 /* buffer */
            aload 5 /* data */
            invokevirtual org.h2.store.Data.getBytes:()[B
            iconst_0
            aload 5 /* data */
            invokevirtual org.h2.store.Data.length:()I
            invokevirtual org.h2.store.Data.write:([BII)V
        40: .line 654
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* buffer */
            invokevirtual org.h2.store.PageLog.write:(Lorg/h2/store/Data;)V
        41: .line 655
            return
        end local 7 // org.h2.store.Data buffer
        end local 6 // int columns
        end local 5 // org.h2.store.Data data
        end local 4 // boolean add
        end local 3 // org.h2.result.Row row
        end local 2 // int tableId
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   42     0     this  Lorg/h2/store/PageLog;
            0   42     1  session  Lorg/h2/engine/Session;
            0   42     2  tableId  I
            0   42     3      row  Lorg/h2/result/Row;
            0   42     4      add  Z
            9   42     5     data  Lorg/h2/store/Data;
           11   42     6  columns  I
           15   19     7        i  I
           21   29     7        i  I
           23   27     8        v  Lorg/h2/value/Value;
           30   42     7   buffer  Lorg/h2/store/Data;
    MethodParameters:
         Name  Flags
      session  
      tableId  
      row      
      add      

  void logTruncate(org.h2.engine.Session, int);
    descriptor: (Lorg/h2/engine/Session;I)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.h2.store.PageLog this
        start local 1 // org.h2.engine.Session session
        start local 2 // int tableId
         0: .line 664
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 2
         1: .line 665
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            new java.lang.StringBuilder
            dup
            ldc "log truncate s: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* session */
            invokevirtual org.h2.engine.Session.getId:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " table: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* tableId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
         2: .line 667
      StackMap locals:
      StackMap stack:
            aload 1 /* session */
            aload 0 /* this */
            getfield org.h2.store.PageLog.logSectionId:I
            aload 0 /* this */
            getfield org.h2.store.PageLog.logPos:I
            invokevirtual org.h2.engine.Session.addLogPos:(II)V
         3: .line 668
            aload 0 /* this */
            dup
            getfield org.h2.store.PageLog.logPos:I
            iconst_1
            iadd
            putfield org.h2.store.PageLog.logPos:I
         4: .line 669
            aload 0 /* this */
            invokevirtual org.h2.store.PageLog.getBuffer:()Lorg/h2/store/Data;
            astore 3 /* buffer */
        start local 3 // org.h2.store.Data buffer
         5: .line 670
            aload 3 /* buffer */
            bipush 7
            invokevirtual org.h2.store.Data.writeByte:(B)V
         6: .line 671
            aload 3 /* buffer */
            aload 1 /* session */
            invokevirtual org.h2.engine.Session.getId:()I
            invokevirtual org.h2.store.Data.writeVarInt:(I)V
         7: .line 672
            aload 3 /* buffer */
            iload 2 /* tableId */
            invokevirtual org.h2.store.Data.writeVarInt:(I)V
         8: .line 673
            aload 0 /* this */
            aload 3 /* buffer */
            invokevirtual org.h2.store.PageLog.write:(Lorg/h2/store/Data;)V
         9: .line 674
            return
        end local 3 // org.h2.store.Data buffer
        end local 2 // int tableId
        end local 1 // org.h2.engine.Session session
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/h2/store/PageLog;
            0   10     1  session  Lorg/h2/engine/Session;
            0   10     2  tableId  I
            5   10     3   buffer  Lorg/h2/store/Data;
    MethodParameters:
         Name  Flags
      session  
      tableId  

  void flush();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.store.PageLog this
         0: .line 680
            aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            ifnull 2
         1: .line 681
            aload 0 /* this */
            invokevirtual org.h2.store.PageLog.flushOut:()V
         2: .line 683
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/store/PageLog;

  void checkpoint();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.h2.store.PageLog this
         0: .line 689
            aload 0 /* this */
            invokevirtual org.h2.store.PageLog.getBuffer:()Lorg/h2/store/Data;
            astore 1 /* buffer */
        start local 1 // org.h2.store.Data buffer
         1: .line 690
            aload 1 /* buffer */
            bipush 8
            invokevirtual org.h2.store.Data.writeByte:(B)V
         2: .line 691
            aload 0 /* this */
            aload 1 /* buffer */
            invokevirtual org.h2.store.PageLog.write:(Lorg/h2/store/Data;)V
         3: .line 692
            aload 0 /* this */
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            putfield org.h2.store.PageLog.undo:Ljava/util/BitSet;
         4: .line 693
            aload 0 /* this */
            dup
            getfield org.h2.store.PageLog.logSectionId:I
            iconst_1
            iadd
            putfield org.h2.store.PageLog.logSectionId:I
         5: .line 694
            aload 0 /* this */
            iconst_0
            putfield org.h2.store.PageLog.logPos:I
         6: .line 695
            aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            invokevirtual org.h2.store.PageOutputStream.flush:()V
         7: .line 696
            aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            invokevirtual org.h2.store.PageOutputStream.fillPage:()V
         8: .line 697
            aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            invokevirtual org.h2.store.PageOutputStream.getCurrentDataPageId:()I
            istore 2 /* currentDataPage */
        start local 2 // int currentDataPage
         9: .line 698
            aload 0 /* this */
            getfield org.h2.store.PageLog.logSectionPageMap:Lorg/h2/util/IntIntHashMap;
            aload 0 /* this */
            getfield org.h2.store.PageLog.logSectionId:I
            iload 2 /* currentDataPage */
            invokevirtual org.h2.util.IntIntHashMap.put:(II)V
        10: .line 699
            return
        end local 2 // int currentDataPage
        end local 1 // org.h2.store.Data buffer
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lorg/h2/store/PageLog;
            1   11     1           buffer  Lorg/h2/store/Data;
            9   11     2  currentDataPage  I

  int getLogSectionId();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.store.PageLog this
         0: .line 702
            aload 0 /* this */
            getfield org.h2.store.PageLog.logSectionId:I
            ireturn
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/store/PageLog;

  int getLogFirstSectionId();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.store.PageLog this
         0: .line 706
            aload 0 /* this */
            getfield org.h2.store.PageLog.firstSectionId:I
            ireturn
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/store/PageLog;

  int getLogPos();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.store.PageLog this
         0: .line 710
            aload 0 /* this */
            getfield org.h2.store.PageLog.logPos:I
            ireturn
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/store/PageLog;

  void removeUntil(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.h2.store.PageLog this
        start local 1 // int firstUncommittedSection
         0: .line 719
            iload 1 /* firstUncommittedSection */
            ifne 2
         1: .line 720
            return
         2: .line 722
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.logSectionPageMap:Lorg/h2/util/IntIntHashMap;
            iload 1 /* firstUncommittedSection */
            invokevirtual org.h2.util.IntIntHashMap.get:(I)I
            istore 2 /* firstDataPageToKeep */
        start local 2 // int firstDataPageToKeep
         3: .line 723
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.store.PageLog.firstTrunkPage:I
            iload 2 /* firstDataPageToKeep */
            invokevirtual org.h2.store.PageLog.removeUntil:(II)I
            putfield org.h2.store.PageLog.firstTrunkPage:I
         4: .line 724
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            aload 0 /* this */
            getfield org.h2.store.PageLog.logKey:I
            aload 0 /* this */
            getfield org.h2.store.PageLog.firstTrunkPage:I
            iload 2 /* firstDataPageToKeep */
            invokevirtual org.h2.store.PageStore.setLogFirstPage:(III)V
         5: .line 725
            goto 9
         6: .line 726
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.firstSectionId:I
            ifle 8
         7: .line 728
            aload 0 /* this */
            getfield org.h2.store.PageLog.logSectionPageMap:Lorg/h2/util/IntIntHashMap;
            aload 0 /* this */
            getfield org.h2.store.PageLog.firstSectionId:I
            invokevirtual org.h2.util.IntIntHashMap.remove:(I)V
         8: .line 730
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.h2.store.PageLog.firstSectionId:I
            iconst_1
            iadd
            putfield org.h2.store.PageLog.firstSectionId:I
         9: .line 725
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.firstSectionId:I
            iload 1 /* firstUncommittedSection */
            if_icmplt 6
        10: .line 732
            return
        end local 2 // int firstDataPageToKeep
        end local 1 // int firstUncommittedSection
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   11     0                     this  Lorg/h2/store/PageLog;
            0   11     1  firstUncommittedSection  I
            3   11     2      firstDataPageToKeep  I
    MethodParameters:
                         Name  Flags
      firstUncommittedSection  

  private int removeUntil(int, int);
    descriptor: (II)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // org.h2.store.PageLog this
        start local 1 // int trunkPage
        start local 2 // int firstDataPageToKeep
         0: .line 742
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            new java.lang.StringBuilder
            dup
            ldc "log.removeUntil "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* trunkPage */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* firstDataPageToKeep */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
         1: .line 743
            iload 1 /* trunkPage */
            istore 3 /* last */
        start local 3 // int last
         2: .line 745
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            iload 1 /* trunkPage */
            invokevirtual org.h2.store.PageStore.getPage:(I)Lorg/h2/store/Page;
            astore 4 /* p */
        start local 4 // org.h2.store.Page p
         3: .line 746
            aload 4 /* p */
            checkcast org.h2.store.PageStreamTrunk
            astore 5 /* t */
        start local 5 // org.h2.store.PageStreamTrunk t
         4: .line 747
            aload 5 /* t */
            ifnonnull 7
         5: .line 749
            new java.lang.StringBuilder
            dup
            ldc "log.removeUntil not found: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* firstDataPageToKeep */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " last "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* last */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 748
            invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         7: .line 751
      StackMap locals: org.h2.store.Page org.h2.store.PageStreamTrunk
      StackMap stack:
            aload 0 /* this */
            aload 5 /* t */
            invokevirtual org.h2.store.PageStreamTrunk.getLogKey:()I
            putfield org.h2.store.PageLog.logKey:I
         8: .line 752
            aload 5 /* t */
            invokevirtual org.h2.store.PageStreamTrunk.getPos:()I
            istore 3 /* last */
         9: .line 753
            aload 5 /* t */
            iload 2 /* firstDataPageToKeep */
            invokevirtual org.h2.store.PageStreamTrunk.contains:(I)Z
            ifeq 11
        10: .line 754
            iload 3 /* last */
            ireturn
        11: .line 756
      StackMap locals:
      StackMap stack:
            aload 5 /* t */
            invokevirtual org.h2.store.PageStreamTrunk.getNextTrunk:()I
            istore 1 /* trunkPage */
        12: .line 757
            new org.h2.util.IntArray
            dup
            invokespecial org.h2.util.IntArray.<init>:()V
            astore 6 /* list */
        start local 6 // org.h2.util.IntArray list
        13: .line 758
            aload 6 /* list */
            aload 5 /* t */
            invokevirtual org.h2.store.PageStreamTrunk.getPos:()I
            invokevirtual org.h2.util.IntArray.add:(I)V
        14: .line 759
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        15: .line 760
      StackMap locals: org.h2.util.IntArray int
      StackMap stack:
            aload 5 /* t */
            iload 7 /* i */
            invokevirtual org.h2.store.PageStreamTrunk.getPageData:(I)I
            istore 8 /* next */
        start local 8 // int next
        16: .line 761
            iload 8 /* next */
            iconst_m1
            if_icmpne 18
        17: .line 762
            goto 20
        18: .line 764
      StackMap locals: int
      StackMap stack:
            aload 6 /* list */
            iload 8 /* next */
            invokevirtual org.h2.util.IntArray.add:(I)V
        end local 8 // int next
        19: .line 759
            iinc 7 /* i */ 1
            goto 15
        end local 7 // int i
        20: .line 766
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* list */
            invokevirtual org.h2.store.PageLog.freeLogPages:(Lorg/h2/util/IntArray;)V
        21: .line 767
            aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            aload 5 /* t */
            invokevirtual org.h2.store.PageOutputStream.free:(Lorg/h2/store/PageStreamTrunk;)V
        end local 6 // org.h2.util.IntArray list
        end local 5 // org.h2.store.PageStreamTrunk t
        end local 4 // org.h2.store.Page p
        22: .line 744
            goto 2
        end local 3 // int last
        end local 2 // int firstDataPageToKeep
        end local 1 // int trunkPage
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   23     0                 this  Lorg/h2/store/PageLog;
            0   23     1            trunkPage  I
            0   23     2  firstDataPageToKeep  I
            2   23     3                 last  I
            3   22     4                    p  Lorg/h2/store/Page;
            4   22     5                    t  Lorg/h2/store/PageStreamTrunk;
           13   22     6                 list  Lorg/h2/util/IntArray;
           15   20     7                    i  I
           16   19     8                 next  I
    MethodParameters:
                     Name  Flags
      trunkPage            
      firstDataPageToKeep  

  void close();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.store.PageLog this
         0: .line 775
            aload 0 /* this */
            getfield org.h2.store.PageLog.trace:Lorg/h2/message/Trace;
            ldc "log close"
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
         1: .line 776
            aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            ifnull 4
         2: .line 777
            aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            invokevirtual org.h2.store.PageOutputStream.close:()V
         3: .line 778
            aload 0 /* this */
            aconst_null
            putfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
         4: .line 780
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.h2.store.PageLog.writeBuffer:Lorg/h2/store/Data;
         5: .line 781
            return
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/h2/store/PageLog;

  private boolean isSessionCommitted(int, int, int);
    descriptor: (III)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // org.h2.store.PageLog this
        start local 1 // int sessionId
        start local 2 // int logId
        start local 3 // int pos
         0: .line 792
            aload 0 /* this */
            getfield org.h2.store.PageLog.sessionStates:Ljava/util/HashMap;
            iload 1 /* sessionId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.store.SessionState
            astore 4 /* state */
        start local 4 // org.h2.store.SessionState state
         1: .line 793
            aload 4 /* state */
            ifnonnull 3
         2: .line 794
            iconst_0
            ireturn
         3: .line 796
      StackMap locals: org.h2.store.SessionState
      StackMap stack:
            aload 4 /* state */
            iload 2 /* logId */
            iload 3 /* pos */
            invokevirtual org.h2.store.SessionState.isCommitted:(II)Z
            ireturn
        end local 4 // org.h2.store.SessionState state
        end local 3 // int pos
        end local 2 // int logId
        end local 1 // int sessionId
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/h2/store/PageLog;
            0    4     1  sessionId  I
            0    4     2      logId  I
            0    4     3        pos  I
            1    4     4      state  Lorg/h2/store/SessionState;
    MethodParameters:
           Name  Flags
      sessionId  
      logId      
      pos        

  private void setLastCommitForSession(int, int, int);
    descriptor: (III)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // org.h2.store.PageLog this
        start local 1 // int sessionId
        start local 2 // int logId
        start local 3 // int pos
         0: .line 807
            aload 0 /* this */
            iload 1 /* sessionId */
            invokevirtual org.h2.store.PageLog.getOrAddSessionState:(I)Lorg/h2/store/SessionState;
            astore 4 /* state */
        start local 4 // org.h2.store.SessionState state
         1: .line 808
            aload 4 /* state */
            iload 2 /* logId */
            putfield org.h2.store.SessionState.lastCommitLog:I
         2: .line 809
            aload 4 /* state */
            iload 3 /* pos */
            putfield org.h2.store.SessionState.lastCommitPos:I
         3: .line 810
            aload 4 /* state */
            aconst_null
            putfield org.h2.store.SessionState.inDoubtTransaction:Lorg/h2/store/PageStoreInDoubtTransaction;
         4: .line 811
            return
        end local 4 // org.h2.store.SessionState state
        end local 3 // int pos
        end local 2 // int logId
        end local 1 // int sessionId
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/h2/store/PageLog;
            0    5     1  sessionId  I
            0    5     2      logId  I
            0    5     3        pos  I
            1    5     4      state  Lorg/h2/store/SessionState;
    MethodParameters:
           Name  Flags
      sessionId  
      logId      
      pos        

  private org.h2.store.SessionState getOrAddSessionState(int);
    descriptor: (I)Lorg/h2/store/SessionState;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.h2.store.PageLog this
        start local 1 // int sessionId
         0: .line 821
            iload 1 /* sessionId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 2 /* key */
        start local 2 // java.lang.Integer key
         1: .line 822
            aload 0 /* this */
            getfield org.h2.store.PageLog.sessionStates:Ljava/util/HashMap;
            aload 2 /* key */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.store.SessionState
            astore 3 /* state */
        start local 3 // org.h2.store.SessionState state
         2: .line 823
            aload 3 /* state */
            ifnonnull 6
         3: .line 824
            new org.h2.store.SessionState
            dup
            invokespecial org.h2.store.SessionState.<init>:()V
            astore 3 /* state */
         4: .line 825
            aload 0 /* this */
            getfield org.h2.store.PageLog.sessionStates:Ljava/util/HashMap;
            aload 2 /* key */
            aload 3 /* state */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 826
            aload 3 /* state */
            iload 1 /* sessionId */
            putfield org.h2.store.SessionState.sessionId:I
         6: .line 828
      StackMap locals: java.lang.Integer org.h2.store.SessionState
      StackMap stack:
            aload 3 /* state */
            areturn
        end local 3 // org.h2.store.SessionState state
        end local 2 // java.lang.Integer key
        end local 1 // int sessionId
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/h2/store/PageLog;
            0    7     1  sessionId  I
            1    7     2        key  Ljava/lang/Integer;
            2    7     3      state  Lorg/h2/store/SessionState;
    MethodParameters:
           Name  Flags
      sessionId  

  long getSize();
    descriptor: ()J
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.store.PageLog this
         0: .line 832
            aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            ifnonnull 1
            lconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            invokevirtual org.h2.store.PageOutputStream.getSize:()J
      StackMap locals:
      StackMap stack: long
         2: lreturn
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/store/PageLog;

  java.util.ArrayList<org.h2.store.InDoubtTransaction> getInDoubtTransactions();
    descriptor: ()Ljava/util/ArrayList;
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.h2.store.PageLog this
         0: .line 836
            invokestatic org.h2.util.Utils.newSmallArrayList:()Ljava/util/ArrayList;
            astore 1 /* list */
        start local 1 // java.util.ArrayList list
         1: .line 837
            aload 0 /* this */
            getfield org.h2.store.PageLog.sessionStates:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: org.h2.store.PageLog java.util.ArrayList top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.store.SessionState
            astore 2 /* state */
        start local 2 // org.h2.store.SessionState state
         3: .line 838
            aload 2 /* state */
            getfield org.h2.store.SessionState.inDoubtTransaction:Lorg/h2/store/PageStoreInDoubtTransaction;
            astore 4 /* in */
        start local 4 // org.h2.store.PageStoreInDoubtTransaction in
         4: .line 839
            aload 4 /* in */
            ifnull 6
         5: .line 840
            aload 1 /* list */
            aload 4 /* in */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.h2.store.PageStoreInDoubtTransaction in
        end local 2 // org.h2.store.SessionState state
         6: .line 837
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 843
            aload 1 /* list */
            areturn
        end local 1 // java.util.ArrayList list
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lorg/h2/store/PageLog;
            1    8     1   list  Ljava/util/ArrayList<Lorg/h2/store/InDoubtTransaction;>;
            3    6     2  state  Lorg/h2/store/SessionState;
            4    6     4     in  Lorg/h2/store/PageStoreInDoubtTransaction;
    Signature: ()Ljava/util/ArrayList<Lorg/h2/store/InDoubtTransaction;>;

  void setInDoubtTransactionState(int, int, boolean);
    descriptor: (IIZ)V
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.h2.store.PageLog this
        start local 1 // int sessionId
        start local 2 // int pageId
        start local 3 // boolean commit
         0: .line 854
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            iload 2 /* pageId */
            invokevirtual org.h2.store.PageStore.getPage:(I)Lorg/h2/store/Page;
            checkcast org.h2.store.PageStreamData
            astore 4 /* d */
        start local 4 // org.h2.store.PageStreamData d
         1: .line 855
            aload 4 /* d */
            invokevirtual org.h2.store.PageStreamData.initWrite:()V
         2: .line 856
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.createData:()Lorg/h2/store/Data;
            astore 5 /* buff */
        start local 5 // org.h2.store.Data buff
         3: .line 857
            aload 5 /* buff */
            iload 3 /* commit */
            ifeq 4
            iconst_2
            goto 5
      StackMap locals: org.h2.store.PageLog int int int org.h2.store.PageStreamData org.h2.store.Data
      StackMap stack: org.h2.store.Data
         4: iconst_4
      StackMap locals: org.h2.store.PageLog int int int org.h2.store.PageStreamData org.h2.store.Data
      StackMap stack: org.h2.store.Data int
         5: i2b
            invokevirtual org.h2.store.Data.writeByte:(B)V
         6: .line 858
            aload 5 /* buff */
            iload 1 /* sessionId */
            invokevirtual org.h2.store.Data.writeVarInt:(I)V
         7: .line 859
            aload 5 /* buff */
            invokevirtual org.h2.store.Data.getBytes:()[B
            astore 6 /* bytes */
        start local 6 // byte[] bytes
         8: .line 860
            aload 4 /* d */
            aload 6 /* bytes */
            iconst_0
            aload 6 /* bytes */
            arraylength
            invokevirtual org.h2.store.PageStreamData.write:([BII)I
            pop
         9: .line 861
            aload 4 /* d */
            invokevirtual org.h2.store.PageStreamData.getRemaining:()I
            newarray 8
            astore 6 /* bytes */
        10: .line 862
            aload 4 /* d */
            aload 6 /* bytes */
            iconst_0
            aload 6 /* bytes */
            arraylength
            invokevirtual org.h2.store.PageStreamData.write:([BII)I
            pop
        11: .line 863
            aload 4 /* d */
            invokevirtual org.h2.store.PageStreamData.write:()V
        12: .line 864
            return
        end local 6 // byte[] bytes
        end local 5 // org.h2.store.Data buff
        end local 4 // org.h2.store.PageStreamData d
        end local 3 // boolean commit
        end local 2 // int pageId
        end local 1 // int sessionId
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lorg/h2/store/PageLog;
            0   13     1  sessionId  I
            0   13     2     pageId  I
            0   13     3     commit  Z
            1   13     4          d  Lorg/h2/store/PageStreamData;
            3   13     5       buff  Lorg/h2/store/Data;
            8   13     6      bytes  [B
    MethodParameters:
           Name  Flags
      sessionId  
      pageId     
      commit     

  void recoverEnd();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.store.PageLog this
         0: .line 870
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.h2.store.PageLog.sessionStates:Ljava/util/HashMap;
         1: .line 871
            return
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/store/PageLog;

  private void flushOut();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.store.PageLog this
         0: .line 874
            aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            invokevirtual org.h2.store.PageOutputStream.flush:()V
         1: .line 875
            return
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/store/PageLog;

  private org.h2.store.Data getBuffer();
    descriptor: ()Lorg/h2/store/Data;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.store.PageLog this
         0: .line 878
            aload 0 /* this */
            getfield org.h2.store.PageLog.writeBuffer:Lorg/h2/store/Data;
            invokevirtual org.h2.store.Data.length:()I
            ifne 2
         1: .line 879
            aload 0 /* this */
            getfield org.h2.store.PageLog.writeBuffer:Lorg/h2/store/Data;
            areturn
         2: .line 881
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.PageLog.store:Lorg/h2/store/PageStore;
            invokevirtual org.h2.store.PageStore.createData:()Lorg/h2/store/Data;
            areturn
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/store/PageLog;

  int getMinPageId();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.store.PageLog this
         0: .line 892
            aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            ifnonnull 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield org.h2.store.PageLog.pageOut:Lorg/h2/store/PageOutputStream;
            invokevirtual org.h2.store.PageOutputStream.getMinPageId:()I
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.h2.store.PageLog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/store/PageLog;
}
SourceFile: "PageLog.java"
InnerClasses:
  Iterator = org.h2.store.PageStreamTrunk$Iterator of org.h2.store.PageStreamTrunk