public class org.h2.mvstore.MVStore implements java.lang.AutoCloseable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.mvstore.MVStore
  super_class: java.lang.Object
{
  static final int BLOCK_SIZE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4096

  private static final int FORMAT_WRITE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int FORMAT_READ;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int MARKED_FREE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10000000

  private static final int STATE_OPEN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int STATE_STOPPING;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int STATE_CLOSING;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int STATE_CLOSED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private final java.util.concurrent.locks.ReentrantLock storeLock;
    descriptor: Ljava/util/concurrent/locks/ReentrantLock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.atomic.AtomicReference<org.h2.mvstore.MVStore$BackgroundWriterThread> backgroundWriterThread;
    descriptor: Ljava/util/concurrent/atomic/AtomicReference;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicReference<Lorg/h2/mvstore/MVStore$BackgroundWriterThread;>;

  private volatile boolean reuseSpace;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int state;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private final org.h2.mvstore.FileStore fileStore;
    descriptor: Lorg/h2/mvstore/FileStore;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean fileStoreIsProvided;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int pageSplitSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int keysPerPage;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final org.h2.mvstore.cache.CacheLongKeyLIRS<org.h2.mvstore.Page> cache;
    descriptor: Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
    flags: (0x0010) ACC_FINAL
    Signature: Lorg/h2/mvstore/cache/CacheLongKeyLIRS<Lorg/h2/mvstore/Page;>;

  final org.h2.mvstore.cache.CacheLongKeyLIRS<int[]> cacheChunkRef;
    descriptor: Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
    flags: (0x0010) ACC_FINAL
    Signature: Lorg/h2/mvstore/cache/CacheLongKeyLIRS<[I>;

  private org.h2.mvstore.Chunk lastChunk;
    descriptor: Lorg/h2/mvstore/Chunk;
    flags: (0x0002) ACC_PRIVATE

  private final java.util.concurrent.ConcurrentHashMap<java.lang.Integer, org.h2.mvstore.Chunk> chunks;
    descriptor: Ljava/util/concurrent/ConcurrentHashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/Integer;Lorg/h2/mvstore/Chunk;>;

  private long updateCounter;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long updateAttemptCounter;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private final java.util.Map<java.lang.Integer, org.h2.mvstore.Chunk> freedPageSpace;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Integer;Lorg/h2/mvstore/Chunk;>;

  private final org.h2.mvstore.MVMap<java.lang.String, java.lang.String> meta;
    descriptor: Lorg/h2/mvstore/MVMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/h2/mvstore/MVMap<Ljava/lang/String;Ljava/lang/String;>;

  private final java.util.concurrent.ConcurrentHashMap<java.lang.Integer, org.h2.mvstore.MVMap<?, ?>> maps;
    descriptor: Ljava/util/concurrent/ConcurrentHashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/Integer;Lorg/h2/mvstore/MVMap<**>;>;

  private final java.util.HashMap<java.lang.String, java.lang.Object> storeHeader;
    descriptor: Ljava/util/HashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Object;>;

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

  private final java.util.concurrent.atomic.AtomicInteger lastMapId;
    descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final int compressionLevel;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.h2.compress.Compressor compressorFast;
    descriptor: Lorg/h2/compress/Compressor;
    flags: (0x0002) ACC_PRIVATE

  private org.h2.compress.Compressor compressorHigh;
    descriptor: Lorg/h2/compress/Compressor;
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.Thread$UncaughtExceptionHandler backgroundExceptionHandler;
    descriptor: Ljava/lang/Thread$UncaughtExceptionHandler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile long currentVersion;
    descriptor: J
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private long lastStoredVersion;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private final java.util.concurrent.atomic.AtomicLong oldestVersionToKeep;
    descriptor: Ljava/util/concurrent/atomic/AtomicLong;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Deque<org.h2.mvstore.MVStore$TxCounter> versions;
    descriptor: Ljava/util/Deque;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Deque<Lorg/h2/mvstore/MVStore$TxCounter;>;

  private volatile org.h2.mvstore.MVStore$TxCounter currentTxCounter;
    descriptor: Lorg/h2/mvstore/MVStore$TxCounter;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

  private final int autoCommitMemory;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile boolean saveNeeded;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private long creationTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

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

  private long lastCommitTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private volatile long currentStoreVersion;
    descriptor: J
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean metaChanged;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

  private final int autoCompactFillRate;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private long autoCompactLastFileOpCount;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private volatile java.lang.IllegalStateException panicException;
    descriptor: Ljava/lang/IllegalStateException;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private long lastTimeAbsolute;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long lastFreeUnusedChunks;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 134
            ldc Lorg/h2/mvstore/MVStore;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
         3: .line 171
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=12, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // java.util.Map config
         0: .line 336
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 179
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            iconst_1
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:(Z)V
            putfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
         2: .line 184
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicReference
            dup
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
            putfield org.h2.mvstore.MVStore.backgroundWriterThread:Ljava/util/concurrent/atomic/AtomicReference;
         3: .line 186
            aload 0 /* this */
            iconst_1
            putfield org.h2.mvstore.MVStore.reuseSpace:Z
         4: .line 220
            aload 0 /* this */
         5: .line 221
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
         6: .line 223
            aload 0 /* this */
            lconst_0
            putfield org.h2.mvstore.MVStore.updateCounter:J
         7: .line 224
            aload 0 /* this */
            lconst_0
            putfield org.h2.mvstore.MVStore.updateAttemptCounter:J
         8: .line 230
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.h2.mvstore.MVStore.freedPageSpace:Ljava/util/Map;
         9: .line 237
            aload 0 /* this */
        10: .line 238
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
        11: .line 240
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
        12: .line 244
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicInteger
            dup
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
            putfield org.h2.mvstore.MVStore.lastMapId:Ljava/util/concurrent/atomic/AtomicInteger;
        13: .line 246
            aload 0 /* this */
            iconst_5
            putfield org.h2.mvstore.MVStore.versionsToKeep:I
        14: .line 265
            aload 0 /* this */
            ldc -1
            putfield org.h2.mvstore.MVStore.lastStoredVersion:J
        15: .line 270
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
            putfield org.h2.mvstore.MVStore.oldestVersionToKeep:Ljava/util/concurrent/atomic/AtomicLong;
        16: .line 276
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield org.h2.mvstore.MVStore.versions:Ljava/util/Deque;
        17: .line 281
            aload 0 /* this */
            new org.h2.mvstore.MVStore$TxCounter
            dup
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentVersion:J
            invokespecial org.h2.mvstore.MVStore$TxCounter.<init>:(J)V
            putfield org.h2.mvstore.MVStore.currentTxCounter:Lorg/h2/mvstore/MVStore$TxCounter;
        18: .line 310
            aload 0 /* this */
            ldc -1
            putfield org.h2.mvstore.MVStore.currentStoreVersion:J
        19: .line 337
            aload 0 /* this */
            aload 1 /* config */
            ldc "compress"
            iconst_0
            invokestatic org.h2.mvstore.DataUtils.getConfigParam:(Ljava/util/Map;Ljava/lang/String;I)I
            putfield org.h2.mvstore.MVStore.compressionLevel:I
        20: .line 338
            aload 1 /* config */
            ldc "fileName"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* fileName */
        start local 2 // java.lang.String fileName
        21: .line 339
            aload 1 /* config */
            ldc "fileStore"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.mvstore.FileStore
            astore 3 /* fileStore */
        start local 3 // org.h2.mvstore.FileStore fileStore
        22: .line 340
            aload 0 /* this */
            aload 3 /* fileStore */
            ifnull 23
            iconst_1
            goto 24
      StackMap locals: org.h2.mvstore.MVStore java.util.Map java.lang.String org.h2.mvstore.FileStore
      StackMap stack: org.h2.mvstore.MVStore
        23: iconst_0
      StackMap locals: org.h2.mvstore.MVStore java.util.Map java.lang.String org.h2.mvstore.FileStore
      StackMap stack: org.h2.mvstore.MVStore int
        24: putfield org.h2.mvstore.MVStore.fileStoreIsProvided:Z
        25: .line 341
            aload 3 /* fileStore */
            ifnonnull 27
            aload 2 /* fileName */
            ifnull 27
        26: .line 342
            new org.h2.mvstore.FileStore
            dup
            invokespecial org.h2.mvstore.FileStore.<init>:()V
            astore 3 /* fileStore */
        27: .line 344
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* fileStore */
            putfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
        28: .line 346
            bipush 48
            istore 4 /* pgSplitSize */
        start local 4 // int pgSplitSize
        29: .line 347
            aconst_null
            astore 5 /* cc */
        start local 5 // org.h2.mvstore.cache.CacheLongKeyLIRS$Config cc
        30: .line 348
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            ifnull 39
        31: .line 349
            aload 1 /* config */
            ldc "cacheSize"
            bipush 16
            invokestatic org.h2.mvstore.DataUtils.getConfigParam:(Ljava/util/Map;Ljava/lang/String;I)I
            istore 6 /* mb */
        start local 6 // int mb
        32: .line 350
            iload 6 /* mb */
            ifle 38
        33: .line 351
            new org.h2.mvstore.cache.CacheLongKeyLIRS$Config
            dup
            invokespecial org.h2.mvstore.cache.CacheLongKeyLIRS$Config.<init>:()V
            astore 5 /* cc */
        34: .line 352
            aload 5 /* cc */
            iload 6 /* mb */
            i2l
            ldc 1024
            lmul
            ldc 1024
            lmul
            putfield org.h2.mvstore.cache.CacheLongKeyLIRS$Config.maxMemory:J
        35: .line 353
            aload 1 /* config */
            ldc "cacheConcurrency"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 7 /* o */
        start local 7 // java.lang.Object o
        36: .line 354
            aload 7 /* o */
            ifnull 38
        37: .line 355
            aload 5 /* cc */
            aload 7 /* o */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            putfield org.h2.mvstore.cache.CacheLongKeyLIRS$Config.segmentCount:I
        end local 7 // java.lang.Object o
        38: .line 358
      StackMap locals: int org.h2.mvstore.cache.CacheLongKeyLIRS$Config int
      StackMap stack:
            sipush 16384
            istore 4 /* pgSplitSize */
        end local 6 // int mb
        39: .line 360
      StackMap locals:
      StackMap stack:
            aload 5 /* cc */
            ifnull 44
        40: .line 361
            aload 0 /* this */
            new org.h2.mvstore.cache.CacheLongKeyLIRS
            dup
            aload 5 /* cc */
            invokespecial org.h2.mvstore.cache.CacheLongKeyLIRS.<init>:(Lorg/h2/mvstore/cache/CacheLongKeyLIRS$Config;)V
            putfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
        41: .line 362
            aload 5 /* cc */
            dup
            getfield org.h2.mvstore.cache.CacheLongKeyLIRS$Config.maxMemory:J
            ldc 4
            ldiv
            putfield org.h2.mvstore.cache.CacheLongKeyLIRS$Config.maxMemory:J
        42: .line 363
            aload 0 /* this */
            new org.h2.mvstore.cache.CacheLongKeyLIRS
            dup
            aload 5 /* cc */
            invokespecial org.h2.mvstore.cache.CacheLongKeyLIRS.<init>:(Lorg/h2/mvstore/cache/CacheLongKeyLIRS$Config;)V
            putfield org.h2.mvstore.MVStore.cacheChunkRef:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
        43: .line 364
            goto 46
        44: .line 365
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
        45: .line 366
            aload 0 /* this */
            aconst_null
            putfield org.h2.mvstore.MVStore.cacheChunkRef:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
        46: .line 369
      StackMap locals:
      StackMap stack:
            aload 1 /* config */
            ldc "pageSplitSize"
            iload 4 /* pgSplitSize */
            invokestatic org.h2.mvstore.DataUtils.getConfigParam:(Ljava/util/Map;Ljava/lang/String;I)I
            istore 4 /* pgSplitSize */
        47: .line 371
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            ifnull 49
            iload 4 /* pgSplitSize */
            i2l
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.getMaxItemSize:()J
            lcmp
            ifle 49
        48: .line 372
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.getMaxItemSize:()J
            l2i
            istore 4 /* pgSplitSize */
        49: .line 374
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* pgSplitSize */
            putfield org.h2.mvstore.MVStore.pageSplitSize:I
        50: .line 375
            aload 0 /* this */
            aload 1 /* config */
            ldc "keysPerPage"
            bipush 48
            invokestatic org.h2.mvstore.DataUtils.getConfigParam:(Ljava/util/Map;Ljava/lang/String;I)I
            putfield org.h2.mvstore.MVStore.keysPerPage:I
        51: .line 376
            aload 0 /* this */
        52: .line 377
            aload 1 /* config */
            ldc "backgroundExceptionHandler"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Thread$UncaughtExceptionHandler
        53: .line 376
            putfield org.h2.mvstore.MVStore.backgroundExceptionHandler:Ljava/lang/Thread$UncaughtExceptionHandler;
        54: .line 378
            aload 0 /* this */
            new org.h2.mvstore.MVMap
            dup
            aload 0 /* this */
            invokespecial org.h2.mvstore.MVMap.<init>:(Lorg/h2/mvstore/MVStore;)V
            putfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
        55: .line 379
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            ifnull 105
        56: .line 380
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.getDefaultRetentionTime:()I
            putfield org.h2.mvstore.MVStore.retentionTime:I
        57: .line 382
            iconst_1
            bipush 19
            bipush 64
            invokestatic org.h2.util.Utils.scaleForAvailableMemory:(I)I
            invokestatic java.lang.Math.min:(II)I
            invokestatic java.lang.Math.max:(II)I
            sipush 1024
            imul
            istore 6 /* kb */
        start local 6 // int kb
        58: .line 383
            aload 1 /* config */
            ldc "autoCommitBufferSize"
            iload 6 /* kb */
            invokestatic org.h2.mvstore.DataUtils.getConfigParam:(Ljava/util/Map;Ljava/lang/String;I)I
            istore 6 /* kb */
        59: .line 384
            aload 0 /* this */
            iload 6 /* kb */
            sipush 1024
            imul
            putfield org.h2.mvstore.MVStore.autoCommitMemory:I
        60: .line 385
            aload 0 /* this */
            aload 1 /* config */
            ldc "autoCompactFillRate"
            bipush 40
            invokestatic org.h2.mvstore.DataUtils.getConfigParam:(Ljava/util/Map;Ljava/lang/String;I)I
            putfield org.h2.mvstore.MVStore.autoCompactFillRate:I
        61: .line 386
            aload 1 /* config */
            ldc "encryptionKey"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast char[]
            astore 7 /* encryptionKey */
        start local 7 // char[] encryptionKey
        62: .line 388
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStoreIsProvided:Z
            ifne 65
        63: .line 389
            aload 1 /* config */
            ldc "readOnly"
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            istore 8 /* readOnly */
        start local 8 // boolean readOnly
        64: .line 390
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            aload 2 /* fileName */
            iload 8 /* readOnly */
            aload 7 /* encryptionKey */
            invokevirtual org.h2.mvstore.FileStore.open:(Ljava/lang/String;Z[C)V
        end local 8 // boolean readOnly
        65: .line 392
      StackMap locals: int char[]
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.size:()J
            lconst_0
            lcmp
            ifne 74
        66: .line 393
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.getTimeAbsolute:()J
            putfield org.h2.mvstore.MVStore.creationTime:J
        67: .line 394
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.creationTime:J
            putfield org.h2.mvstore.MVStore.lastCommitTime:J
        68: .line 395
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
            ldc "H"
            iconst_2
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        69: .line 396
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
            ldc "blockSize"
            sipush 4096
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        70: .line 397
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
            ldc "format"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        71: .line 398
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
            ldc "created"
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.creationTime:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        72: .line 399
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.writeStoreHeader:()V
        73: .line 400
            goto 84
        74: .line 401
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.readStoreHeader:()V
        75: .line 403
            goto 84
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
        76: astore 8 /* e */
        start local 8 // java.lang.IllegalStateException e
        77: .line 404
            aload 0 /* this */
            aload 8 /* e */
            invokevirtual org.h2.mvstore.MVStore.panic:(Ljava/lang/IllegalStateException;)V
        end local 8 // java.lang.IllegalStateException e
        78: .line 406
            aload 7 /* encryptionKey */
            ifnull 86
        79: .line 407
            aload 7 /* encryptionKey */
            iconst_0
            invokestatic java.util.Arrays.fill:([CC)V
            goto 86
        80: .line 405
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        81: .line 406
            aload 7 /* encryptionKey */
            ifnull 83
        82: .line 407
            aload 7 /* encryptionKey */
            iconst_0
            invokestatic java.util.Arrays.fill:([CC)V
        83: .line 409
      StackMap locals: org.h2.mvstore.MVStore java.util.Map java.lang.String org.h2.mvstore.FileStore int org.h2.mvstore.cache.CacheLongKeyLIRS$Config int char[] top java.lang.Throwable
      StackMap stack:
            aload 9
            athrow
        84: .line 406
      StackMap locals: org.h2.mvstore.MVStore java.util.Map java.lang.String org.h2.mvstore.FileStore int org.h2.mvstore.cache.CacheLongKeyLIRS$Config int char[]
      StackMap stack:
            aload 7 /* encryptionKey */
            ifnull 86
        85: .line 407
            aload 7 /* encryptionKey */
            iconst_0
            invokestatic java.util.Arrays.fill:([CC)V
        86: .line 410
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.getTimeSinceCreation:()J
            putfield org.h2.mvstore.MVStore.lastCommitTime:J
        87: .line 412
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 8 /* rootsToRemove */
        start local 8 // java.util.Set rootsToRemove
        88: .line 413
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            ldc "root."
            invokevirtual org.h2.mvstore.MVMap.keyIterator:(Ljava/lang/Object;)Ljava/util/Iterator;
            astore 9 /* it */
        start local 9 // java.util.Iterator it
        89: goto 96
        90: .line 414
      StackMap locals: java.util.Set java.util.Iterator
      StackMap stack:
            aload 9 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* key */
        start local 10 // java.lang.String key
        91: .line 415
            aload 10 /* key */
            ldc "root."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 93
        92: .line 416
            goto 97
        93: .line 418
      StackMap locals: java.lang.String
      StackMap stack:
            aload 10 /* key */
            aload 10 /* key */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 11 /* mapId */
        start local 11 // java.lang.String mapId
        94: .line 419
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            new java.lang.StringBuilder
            dup
            ldc "map."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 11 /* mapId */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.containsKey:(Ljava/lang/Object;)Z
            ifne 96
        95: .line 420
            aload 8 /* rootsToRemove */
            aload 10 /* key */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // java.lang.String mapId
        end local 10 // java.lang.String key
        96: .line 413
      StackMap locals:
      StackMap stack:
            aload 9 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 90
        end local 9 // java.util.Iterator it
        97: .line 424
      StackMap locals:
      StackMap stack:
            aload 8 /* rootsToRemove */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 101
      StackMap locals: org.h2.mvstore.MVStore java.util.Map java.lang.String org.h2.mvstore.FileStore int org.h2.mvstore.cache.CacheLongKeyLIRS$Config int char[] java.util.Set top java.util.Iterator
      StackMap stack:
        98: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* key */
        start local 9 // java.lang.String key
        99: .line 425
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            aload 9 /* key */
            invokevirtual org.h2.mvstore.MVMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
       100: .line 426
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
        end local 9 // java.lang.String key
       101: .line 424
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 98
       102: .line 431
            aload 1 /* config */
            ldc "autoCommitDelay"
            sipush 1000
            invokestatic org.h2.mvstore.DataUtils.getConfigParam:(Ljava/util/Map;Ljava/lang/String;I)I
            istore 9 /* delay */
        start local 9 // int delay
       103: .line 432
            aload 0 /* this */
            iload 9 /* delay */
            invokevirtual org.h2.mvstore.MVStore.setAutoCommitDelay:(I)V
        end local 9 // int delay
        end local 8 // java.util.Set rootsToRemove
        end local 7 // char[] encryptionKey
        end local 6 // int kb
       104: .line 433
            goto 107
       105: .line 434
      StackMap locals: org.h2.mvstore.MVStore java.util.Map java.lang.String org.h2.mvstore.FileStore int org.h2.mvstore.cache.CacheLongKeyLIRS$Config
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.h2.mvstore.MVStore.autoCommitMemory:I
       106: .line 435
            aload 0 /* this */
            iconst_0
            putfield org.h2.mvstore.MVStore.autoCompactFillRate:I
       107: .line 437
      StackMap locals:
      StackMap stack:
            return
        end local 5 // org.h2.mvstore.cache.CacheLongKeyLIRS$Config cc
        end local 4 // int pgSplitSize
        end local 3 // org.h2.mvstore.FileStore fileStore
        end local 2 // java.lang.String fileName
        end local 1 // java.util.Map config
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0  108     0           this  Lorg/h2/mvstore/MVStore;
            0  108     1         config  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
           21  108     2       fileName  Ljava/lang/String;
           22  108     3      fileStore  Lorg/h2/mvstore/FileStore;
           29  108     4    pgSplitSize  I
           30  108     5             cc  Lorg/h2/mvstore/cache/CacheLongKeyLIRS$Config;
           32   39     6             mb  I
           36   38     7              o  Ljava/lang/Object;
           58  104     6             kb  I
           62  104     7  encryptionKey  [C
           64   65     8       readOnly  Z
           77   78     8              e  Ljava/lang/IllegalStateException;
           88  104     8  rootsToRemove  Ljava/util/Set<Ljava/lang/String;>;
           89   97     9             it  Ljava/util/Iterator<Ljava/lang/String;>;
           91   96    10            key  Ljava/lang/String;
           94   96    11          mapId  Ljava/lang/String;
           99  101     9            key  Ljava/lang/String;
          103  104     9          delay  I
      Exception table:
        from    to  target  type
          62    75      76  Class java.lang.IllegalStateException
          62    78      80  any
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)V
    MethodParameters:
        Name  Flags
      config  

  private void panic(java.lang.IllegalStateException);
    descriptor: (Ljava/lang/IllegalStateException;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // java.lang.IllegalStateException e
         0: .line 440
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.isOpen:()Z
            ifeq 4
         1: .line 441
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual org.h2.mvstore.MVStore.handleException:(Ljava/lang/Throwable;)V
         2: .line 442
            aload 0 /* this */
            aload 1 /* e */
            putfield org.h2.mvstore.MVStore.panicException:Ljava/lang/IllegalStateException;
         3: .line 443
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.closeImmediately:()V
         4: .line 445
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            athrow
        end local 1 // java.lang.IllegalStateException e
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/h2/mvstore/MVStore;
            0    5     1     e  Ljava/lang/IllegalStateException;
    MethodParameters:
      Name  Flags
      e     

  public java.lang.IllegalStateException getPanicException();
    descriptor: ()Ljava/lang/IllegalStateException;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 449
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.panicException:Ljava/lang/IllegalStateException;
            areturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/MVStore;

  public static org.h2.mvstore.MVStore open(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/h2/mvstore/MVStore;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String fileName
         0: .line 460
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* config */
        start local 1 // java.util.HashMap config
         1: .line 461
            aload 1 /* config */
            ldc "fileName"
            aload 0 /* fileName */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 462
            new org.h2.mvstore.MVStore
            dup
            aload 1 /* config */
            invokespecial org.h2.mvstore.MVStore.<init>:(Ljava/util/Map;)V
            areturn
        end local 1 // java.util.HashMap config
        end local 0 // java.lang.String fileName
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  fileName  Ljava/lang/String;
            1    3     1    config  Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Object;>;
    MethodParameters:
          Name  Flags
      fileName  

  long getRootPos(int, long);
    descriptor: (IJ)J
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // int mapId
        start local 2 // long version
         0: .line 473
            aload 0 /* this */
            lload 2 /* version */
            invokevirtual org.h2.mvstore.MVStore.getMetaMap:(J)Lorg/h2/mvstore/MVMap;
            astore 4 /* oldMeta */
        start local 4 // org.h2.mvstore.MVMap oldMeta
         1: .line 474
            aload 4 /* oldMeta */
            iload 1 /* mapId */
            invokestatic org.h2.mvstore.MVStore.getRootPos:(Lorg/h2/mvstore/MVMap;I)J
            lreturn
        end local 4 // org.h2.mvstore.MVMap oldMeta
        end local 2 // long version
        end local 1 // int mapId
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/h2/mvstore/MVStore;
            0    2     1    mapId  I
            0    2     2  version  J
            1    2     4  oldMeta  Lorg/h2/mvstore/MVMap<Ljava/lang/String;Ljava/lang/String;>;
    MethodParameters:
         Name  Flags
      mapId    
      version  

  public <K, V> org.h2.mvstore.MVMap<K, V> openMap(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/h2/mvstore/MVMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // java.lang.String name
         0: .line 488
            aload 0 /* this */
            aload 1 /* name */
            new org.h2.mvstore.MVMap$Builder
            dup
            invokespecial org.h2.mvstore.MVMap$Builder.<init>:()V
            invokevirtual org.h2.mvstore.MVStore.openMap:(Ljava/lang/String;Lorg/h2/mvstore/MVMap$MapBuilder;)Lorg/h2/mvstore/MVMap;
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/MVStore;
            0    1     1  name  Ljava/lang/String;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/lang/String;)Lorg/h2/mvstore/MVMap<TK;TV;>;
    MethodParameters:
      Name  Flags
      name  

  public <M extends org.h2.mvstore.MVMap<K, V>, K, V> M openMap(java.lang.String, org.h2.mvstore.MVMap$MapBuilder<M, K, V>);
    descriptor: (Ljava/lang/String;Lorg/h2/mvstore/MVMap$MapBuilder;)Lorg/h2/mvstore/MVMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // java.lang.String name
        start local 2 // org.h2.mvstore.MVMap$MapBuilder builder
         0: .line 504
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.h2.mvstore.MVStore.getMapId:(Ljava/lang/String;)I
            istore 3 /* id */
        start local 3 // int id
         1: .line 506
            iload 3 /* id */
            iflt 8
         2: .line 507
            aload 0 /* this */
            iload 3 /* id */
            aload 2 /* builder */
            invokevirtual org.h2.mvstore.MVStore.openMap:(ILorg/h2/mvstore/MVMap$MapBuilder;)Lorg/h2/mvstore/MVMap;
            astore 4 /* map */
        start local 4 // org.h2.mvstore.MVMap map
         3: .line 508
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 4
            aload 2 /* builder */
            invokeinterface org.h2.mvstore.MVMap$MapBuilder.getKeyType:()Lorg/h2/mvstore/type/DataType;
            ifnull 4
            aload 4 /* map */
            invokevirtual org.h2.mvstore.MVMap.getKeyType:()Lorg/h2/mvstore/type/DataType;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 2 /* builder */
            invokeinterface org.h2.mvstore.MVMap$MapBuilder.getKeyType:()Lorg/h2/mvstore/type/DataType;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 509
      StackMap locals: int org.h2.mvstore.MVMap
      StackMap stack:
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 22
            aload 2 /* builder */
            invokeinterface org.h2.mvstore.MVMap$MapBuilder.getValueType:()Lorg/h2/mvstore/type/DataType;
            ifnull 22
            aload 4 /* map */
            invokevirtual org.h2.mvstore.MVMap.getValueType:()Lorg/h2/mvstore/type/DataType;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 2 /* builder */
            invokeinterface org.h2.mvstore.MVMap$MapBuilder.getValueType:()Lorg/h2/mvstore/type/DataType;
         5: .line 510
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
         6: .line 509
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
         7: .line 510
            ifne 22
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 4 // org.h2.mvstore.MVMap map
         8: .line 512
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 5 /* c */
        start local 5 // java.util.HashMap c
         9: .line 513
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastMapId:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            istore 3 /* id */
        10: .line 514
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 11
            aload 0 /* this */
            iload 3 /* id */
            invokevirtual org.h2.mvstore.MVStore.getMap:(I)Lorg/h2/mvstore/MVMap;
            ifnull 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 515
      StackMap locals: org.h2.mvstore.MVStore java.lang.String org.h2.mvstore.MVMap$MapBuilder int top java.util.HashMap
      StackMap stack:
            aload 5 /* c */
            ldc "id"
            iload 3 /* id */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 516
            aload 5 /* c */
            ldc "createVersion"
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentVersion:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 517
            aload 2 /* builder */
            aload 0 /* this */
            aload 5 /* c */
            invokeinterface org.h2.mvstore.MVMap$MapBuilder.create:(Lorg/h2/mvstore/MVStore;Ljava/util/Map;)Lorg/h2/mvstore/MVMap;
            astore 4 /* map */
        start local 4 // org.h2.mvstore.MVMap map
        14: .line 518
            iload 3 /* id */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            astore 6 /* x */
        start local 6 // java.lang.String x
        15: .line 519
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            iload 3 /* id */
            invokestatic org.h2.mvstore.MVMap.getMapKey:(I)Ljava/lang/String;
            aload 4 /* map */
            aload 1 /* name */
            invokevirtual org.h2.mvstore.MVMap.asString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 520
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            new java.lang.StringBuilder
            dup
            ldc "name."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 6 /* x */
            invokevirtual org.h2.mvstore.MVMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 521
            aload 4 /* map */
            lconst_0
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastStoredVersion:J
            invokevirtual org.h2.mvstore.MVMap.setRootPos:(JJ)V
        18: .line 522
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
        19: .line 524
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
            iload 3 /* id */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 4 /* map */
            invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.mvstore.MVMap
            astore 7 /* existingMap */
        start local 7 // org.h2.mvstore.MVMap existingMap
        20: .line 525
            aload 7 /* existingMap */
            ifnull 22
        21: .line 526
            aload 7 /* existingMap */
            astore 4 /* map */
        end local 7 // org.h2.mvstore.MVMap existingMap
        end local 6 // java.lang.String x
        end local 5 // java.util.HashMap c
        22: .line 529
      StackMap locals: org.h2.mvstore.MVStore java.lang.String org.h2.mvstore.MVMap$MapBuilder int org.h2.mvstore.MVMap
      StackMap stack:
            aload 4 /* map */
            areturn
        end local 4 // org.h2.mvstore.MVMap map
        end local 3 // int id
        end local 2 // org.h2.mvstore.MVMap$MapBuilder builder
        end local 1 // java.lang.String name
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   23     0         this  Lorg/h2/mvstore/MVStore;
            0   23     1         name  Ljava/lang/String;
            0   23     2      builder  Lorg/h2/mvstore/MVMap$MapBuilder<TM;TK;TV;>;
            1   23     3           id  I
            3    8     4          map  TM;
           14   23     4          map  TM;
            9   22     5            c  Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Object;>;
           15   22     6            x  Ljava/lang/String;
           20   22     7  existingMap  TM;
    Signature: <M:Lorg/h2/mvstore/MVMap<TK;TV;>;K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/lang/String;Lorg/h2/mvstore/MVMap$MapBuilder<TM;TK;TV;>;)TM;
    MethodParameters:
         Name  Flags
      name     
      builder  

  private <M extends org.h2.mvstore.MVMap<K, V>, K, V> M openMap(int, org.h2.mvstore.MVMap$MapBuilder<M, K, V>);
    descriptor: (ILorg/h2/mvstore/MVMap$MapBuilder;)Lorg/h2/mvstore/MVMap;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // int id
        start local 2 // org.h2.mvstore.MVMap$MapBuilder builder
         0: .line 533
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 536
            aload 0 /* this */
            iload 1 /* id */
            invokevirtual org.h2.mvstore.MVStore.getMap:(I)Lorg/h2/mvstore/MVMap;
            astore 3 /* map */
        start local 3 // org.h2.mvstore.MVMap map
         2: .line 537
            aload 3 /* map */
            ifnonnull 13
         3: .line 538
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            iload 1 /* id */
            invokestatic org.h2.mvstore.MVMap.getMapKey:(I)Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* configAsString */
        start local 4 // java.lang.String configAsString
         4: .line 540
            aload 4 /* configAsString */
            ifnull 7
         5: .line 541
            new java.util.HashMap
            dup
            aload 4 /* configAsString */
            invokestatic org.h2.mvstore.DataUtils.parseMap:(Ljava/lang/String;)Ljava/util/HashMap;
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            astore 5 /* config */
        start local 5 // java.util.HashMap config
         6: .line 542
            goto 8
        end local 5 // java.util.HashMap config
         7: .line 543
      StackMap locals: org.h2.mvstore.MVMap java.lang.String
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 5 /* config */
        start local 5 // java.util.HashMap config
         8: .line 545
      StackMap locals: java.util.HashMap
      StackMap stack:
            aload 5 /* config */
            ldc "id"
            iload 1 /* id */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 546
            aload 2 /* builder */
            aload 0 /* this */
            aload 5 /* config */
            invokeinterface org.h2.mvstore.MVMap$MapBuilder.create:(Lorg/h2/mvstore/MVStore;Ljava/util/Map;)Lorg/h2/mvstore/MVMap;
            astore 3 /* map */
        10: .line 547
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            iload 1 /* id */
            invokestatic org.h2.mvstore.MVStore.getRootPos:(Lorg/h2/mvstore/MVMap;I)J
            lstore 6 /* root */
        start local 6 // long root
        11: .line 548
            aload 3 /* map */
            lload 6 /* root */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastStoredVersion:J
            invokevirtual org.h2.mvstore.MVMap.setRootPos:(JJ)V
        12: .line 549
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
            iload 1 /* id */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 3 /* map */
            invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // long root
        end local 5 // java.util.HashMap config
        end local 4 // java.lang.String configAsString
        13: .line 551
      StackMap locals:
      StackMap stack:
            aload 3 /* map */
            astore 9
        14: .line 553
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        15: .line 551
            aload 9
            areturn
        end local 3 // org.h2.mvstore.MVMap map
        16: .line 552
      StackMap locals: org.h2.mvstore.MVStore int org.h2.mvstore.MVMap$MapBuilder
      StackMap stack: java.lang.Throwable
            astore 8
        17: .line 553
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        18: .line 554
            aload 8
            athrow
        end local 2 // org.h2.mvstore.MVMap$MapBuilder builder
        end local 1 // int id
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   19     0            this  Lorg/h2/mvstore/MVStore;
            0   19     1              id  I
            0   19     2         builder  Lorg/h2/mvstore/MVMap$MapBuilder<TM;TK;TV;>;
            2   16     3             map  TM;
            4   13     4  configAsString  Ljava/lang/String;
            6    7     5          config  Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Object;>;
            8   13     5          config  Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Object;>;
           11   13     6            root  J
      Exception table:
        from    to  target  type
           1    14      16  any
    Signature: <M:Lorg/h2/mvstore/MVMap<TK;TV;>;K:Ljava/lang/Object;V:Ljava/lang/Object;>(ILorg/h2/mvstore/MVMap$MapBuilder<TM;TK;TV;>;)TM;
    MethodParameters:
         Name  Flags
      id       
      builder  

  public <K, V> org.h2.mvstore.MVMap<K, V> getMap(int);
    descriptor: (I)Lorg/h2/mvstore/MVMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // int id
         0: .line 566
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
         1: .line 568
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
            iload 1 /* id */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.mvstore.MVMap
            astore 2 /* map */
        start local 2 // org.h2.mvstore.MVMap map
         2: .line 569
            aload 2 /* map */
            areturn
        end local 2 // org.h2.mvstore.MVMap map
        end local 1 // int id
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/mvstore/MVStore;
            0    3     1    id  I
            2    3     2   map  Lorg/h2/mvstore/MVMap<TK;TV;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(I)Lorg/h2/mvstore/MVMap<TK;TV;>;
    MethodParameters:
      Name  Flags
      id    

  public java.util.Set<java.lang.String> getMapNames();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 578
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* set */
        start local 1 // java.util.HashSet set
         1: .line 579
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
         2: .line 580
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            ldc "name."
            invokevirtual org.h2.mvstore.MVMap.keyIterator:(Ljava/lang/Object;)Ljava/util/Iterator;
            astore 2 /* it */
        start local 2 // java.util.Iterator it
         3: goto 9
         4: .line 581
      StackMap locals: java.util.HashSet java.util.Iterator
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* x */
        start local 3 // java.lang.String x
         5: .line 582
            aload 3 /* x */
            ldc "name."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 7
         6: .line 583
            goto 10
         7: .line 585
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* x */
            ldc "name."
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* mapName */
        start local 4 // java.lang.String mapName
         8: .line 586
            aload 1 /* set */
            aload 4 /* mapName */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.lang.String mapName
        end local 3 // java.lang.String x
         9: .line 580
      StackMap locals:
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 2 // java.util.Iterator it
        10: .line 588
      StackMap locals:
      StackMap stack:
            aload 1 /* set */
            areturn
        end local 1 // java.util.HashSet set
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/h2/mvstore/MVStore;
            1   11     1      set  Ljava/util/HashSet<Ljava/lang/String;>;
            3   10     2       it  Ljava/util/Iterator<Ljava/lang/String;>;
            5    9     3        x  Ljava/lang/String;
            8    9     4  mapName  Ljava/lang/String;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public org.h2.mvstore.MVMap<java.lang.String, java.lang.String> getMetaMap();
    descriptor: ()Lorg/h2/mvstore/MVMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 611
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
         1: .line 612
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            areturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/mvstore/MVStore;
    Signature: ()Lorg/h2/mvstore/MVMap<Ljava/lang/String;Ljava/lang/String;>;

  private org.h2.mvstore.MVMap<java.lang.String, java.lang.String> getMetaMap(long);
    descriptor: (J)Lorg/h2/mvstore/MVMap;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // long version
         0: .line 616
            aload 0 /* this */
            lload 1 /* version */
            invokevirtual org.h2.mvstore.MVStore.getChunkForVersion:(J)Lorg/h2/mvstore/Chunk;
            astore 3 /* c */
        start local 3 // org.h2.mvstore.Chunk c
         1: .line 617
            aload 3 /* c */
            ifnull 2
            iconst_1
            goto 3
      StackMap locals: org.h2.mvstore.Chunk
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: ldc "Unknown version {0}"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            lload 1 /* version */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic org.h2.mvstore.DataUtils.checkArgument:(ZLjava/lang/String;[Ljava/lang/Object;)V
         4: .line 618
            aload 0 /* this */
            aload 3 /* c */
            getfield org.h2.mvstore.Chunk.block:J
            invokevirtual org.h2.mvstore.MVStore.readChunkHeader:(J)Lorg/h2/mvstore/Chunk;
            astore 3 /* c */
         5: .line 619
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            aload 3 /* c */
            getfield org.h2.mvstore.Chunk.metaRootPos:J
            lload 1 /* version */
            invokevirtual org.h2.mvstore.MVMap.openReadOnly:(JJ)Lorg/h2/mvstore/MVMap;
            astore 4 /* oldMeta */
        start local 4 // org.h2.mvstore.MVMap oldMeta
         6: .line 620
            aload 4 /* oldMeta */
            areturn
        end local 4 // org.h2.mvstore.MVMap oldMeta
        end local 3 // org.h2.mvstore.Chunk c
        end local 1 // long version
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/h2/mvstore/MVStore;
            0    7     1  version  J
            1    7     3        c  Lorg/h2/mvstore/Chunk;
            6    7     4  oldMeta  Lorg/h2/mvstore/MVMap<Ljava/lang/String;Ljava/lang/String;>;
    Signature: (J)Lorg/h2/mvstore/MVMap<Ljava/lang/String;Ljava/lang/String;>;
    MethodParameters:
         Name  Flags
      version  

  private org.h2.mvstore.Chunk getChunkForVersion(long);
    descriptor: (J)Lorg/h2/mvstore/Chunk;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // long version
         0: .line 624
            aconst_null
            astore 3 /* newest */
        start local 3 // org.h2.mvstore.Chunk newest
         1: .line 625
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: org.h2.mvstore.MVStore long org.h2.mvstore.Chunk top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 4 /* c */
        start local 4 // org.h2.mvstore.Chunk c
         3: .line 626
            aload 4 /* c */
            getfield org.h2.mvstore.Chunk.version:J
            lload 1 /* version */
            lcmp
            ifgt 6
         4: .line 627
            aload 3 /* newest */
            ifnull 5
            aload 4 /* c */
            getfield org.h2.mvstore.Chunk.id:I
            aload 3 /* newest */
            getfield org.h2.mvstore.Chunk.id:I
            if_icmple 6
         5: .line 628
      StackMap locals: org.h2.mvstore.MVStore long org.h2.mvstore.Chunk org.h2.mvstore.Chunk java.util.Iterator
      StackMap stack:
            aload 4 /* c */
            astore 3 /* newest */
        end local 4 // org.h2.mvstore.Chunk c
         6: .line 625
      StackMap locals: org.h2.mvstore.MVStore long org.h2.mvstore.Chunk top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 632
            aload 3 /* newest */
            areturn
        end local 3 // org.h2.mvstore.Chunk newest
        end local 1 // long version
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/h2/mvstore/MVStore;
            0    8     1  version  J
            1    8     3   newest  Lorg/h2/mvstore/Chunk;
            3    6     4        c  Lorg/h2/mvstore/Chunk;
    MethodParameters:
         Name  Flags
      version  

  public boolean hasMap(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // java.lang.String name
         0: .line 642
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            new java.lang.StringBuilder
            dup
            ldc "name."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.containsKey:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.String name
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/MVStore;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public boolean hasData(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // java.lang.String name
         0: .line 652
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.h2.mvstore.MVStore.hasMap:(Ljava/lang/String;)Z
            ifeq 1
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.h2.mvstore.MVStore.getMapId:(Ljava/lang/String;)I
            invokestatic org.h2.mvstore.MVStore.getRootPos:(Lorg/h2/mvstore/MVMap;I)J
            lconst_0
            lcmp
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.String name
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/mvstore/MVStore;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  private void markMetaChanged();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 658
            aload 0 /* this */
            iconst_1
            putfield org.h2.mvstore.MVStore.metaChanged:Z
         1: .line 659
            return
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/mvstore/MVStore;

  private void readStoreHeader();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=21, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 662
            aconst_null
            astore 1 /* newest */
        start local 1 // org.h2.mvstore.Chunk newest
         1: .line 663
            iconst_0
            istore 2 /* validStoreHeader */
        start local 2 // boolean validStoreHeader
         2: .line 666
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            lconst_0
            sipush 8192
            invokevirtual org.h2.mvstore.FileStore.readFully:(JI)Ljava/nio/ByteBuffer;
            astore 3 /* fileHeaderBlocks */
        start local 3 // java.nio.ByteBuffer fileHeaderBlocks
         3: .line 667
            sipush 4096
            newarray 8
            astore 4 /* buff */
        start local 4 // byte[] buff
         4: .line 668
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: goto 30
         6: .line 669
      StackMap locals: org.h2.mvstore.MVStore org.h2.mvstore.Chunk int java.nio.ByteBuffer byte[] int
      StackMap stack:
            aload 3 /* fileHeaderBlocks */
            aload 4 /* buff */
            invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
            pop
         7: .line 672
            aload 4 /* buff */
            invokestatic org.h2.mvstore.DataUtils.parseChecksummedMap:([B)Ljava/util/HashMap;
            astore 6 /* m */
        start local 6 // java.util.HashMap m
         8: .line 673
            aload 6 /* m */
            ifnonnull 10
         9: .line 674
            goto 29
        10: .line 677
      StackMap locals: java.util.HashMap
      StackMap stack:
            aload 6 /* m */
            ldc "blockSize"
            sipush 4096
        11: .line 676
            invokestatic org.h2.mvstore.DataUtils.readHexInt:(Ljava/util/Map;Ljava/lang/String;I)I
            istore 7 /* blockSize */
        start local 7 // int blockSize
        12: .line 678
            iload 7 /* blockSize */
            sipush 4096
            if_icmpeq 17
        13: .line 680
            iconst_5
        14: .line 681
            ldc "Block size {0} is currently not supported"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        15: .line 682
            iload 7 /* blockSize */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        16: .line 679
            invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
            athrow
        17: .line 684
      StackMap locals: int
      StackMap stack:
            aload 6 /* m */
            ldc "version"
            lconst_0
            invokestatic org.h2.mvstore.DataUtils.readHexLong:(Ljava/util/Map;Ljava/lang/String;J)J
            lstore 8 /* version */
        start local 8 // long version
        18: .line 685
            aload 1 /* newest */
            ifnull 19
            lload 8 /* version */
            aload 1 /* newest */
            getfield org.h2.mvstore.Chunk.version:J
            lcmp
            ifle 29
        19: .line 686
      StackMap locals: long
      StackMap stack:
            iconst_1
            istore 2 /* validStoreHeader */
        20: .line 687
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
            aload 6 /* m */
            invokevirtual java.util.HashMap.putAll:(Ljava/util/Map;)V
        21: .line 688
            aload 0 /* this */
            aload 6 /* m */
            ldc "created"
            lconst_0
            invokestatic org.h2.mvstore.DataUtils.readHexLong:(Ljava/util/Map;Ljava/lang/String;J)J
            putfield org.h2.mvstore.MVStore.creationTime:J
        22: .line 689
            aload 6 /* m */
            ldc "chunk"
            iconst_0
            invokestatic org.h2.mvstore.DataUtils.readHexInt:(Ljava/util/Map;Ljava/lang/String;I)I
            istore 10 /* chunkId */
        start local 10 // int chunkId
        23: .line 690
            aload 6 /* m */
            ldc "block"
            lconst_0
            invokestatic org.h2.mvstore.DataUtils.readHexLong:(Ljava/util/Map;Ljava/lang/String;J)J
            lstore 11 /* block */
        start local 11 // long block
        24: .line 691
            aload 0 /* this */
            lload 11 /* block */
            invokevirtual org.h2.mvstore.MVStore.readChunkHeaderAndFooter:(J)Lorg/h2/mvstore/Chunk;
            astore 13 /* test */
        start local 13 // org.h2.mvstore.Chunk test
        25: .line 692
            aload 13 /* test */
            ifnull 29
            aload 13 /* test */
            getfield org.h2.mvstore.Chunk.id:I
            iload 10 /* chunkId */
            if_icmpne 29
        26: .line 693
            aload 13 /* test */
            astore 1 /* newest */
        end local 13 // org.h2.mvstore.Chunk test
        end local 11 // long block
        end local 10 // int chunkId
        end local 8 // long version
        end local 7 // int blockSize
        end local 6 // java.util.HashMap m
        27: .line 696
            goto 29
      StackMap locals: org.h2.mvstore.MVStore org.h2.mvstore.Chunk int java.nio.ByteBuffer byte[] int
      StackMap stack: java.lang.Exception
        28: pop
        29: .line 668
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 4096
      StackMap locals:
      StackMap stack:
        30: iload 5 /* i */
            sipush 4096
            if_icmple 6
        end local 5 // int i
        31: .line 698
            iload 2 /* validStoreHeader */
            ifne 35
        32: .line 700
            bipush 6
        33: .line 701
            ldc "Store header is corrupt: {0}"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            aastore
        34: .line 699
            invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
            athrow
        35: .line 703
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
            ldc "format"
            lconst_1
            invokestatic org.h2.mvstore.DataUtils.readHexLong:(Ljava/util/Map;Ljava/lang/String;J)J
            lstore 5 /* format */
        start local 5 // long format
        36: .line 704
            lload 5 /* format */
            lconst_1
            lcmp
            ifle 41
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.isReadOnly:()Z
            ifne 41
        37: .line 706
            iconst_5
        38: .line 707
            ldc "The write format {0} is larger than the supported format {1}, and the file was not opened in read-only mode"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        39: .line 710
            lload 5 /* format */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        40: .line 705
            invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
            athrow
        41: .line 712
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
            ldc "formatRead"
            lload 5 /* format */
            invokestatic org.h2.mvstore.DataUtils.readHexLong:(Ljava/util/Map;Ljava/lang/String;J)J
            lstore 5 /* format */
        42: .line 713
            lload 5 /* format */
            lconst_1
            lcmp
            ifle 47
        43: .line 715
            iconst_5
        44: .line 716
            ldc "The read format {0} is larger than the supported format {1}"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        45: .line 718
            lload 5 /* format */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        46: .line 714
            invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
            athrow
        47: .line 720
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc -1
            putfield org.h2.mvstore.MVStore.lastStoredVersion:J
        48: .line 721
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
        49: .line 722
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 7 /* now */
        start local 7 // long now
        50: .line 725
            sipush 1970
            lload 7 /* now */
            ldc 31557600000
            ldiv
            l2i
            iadd
            istore 9 /* year */
        start local 9 // int year
        51: .line 726
            iload 9 /* year */
            sipush 2014
            if_icmpge 54
        52: .line 731
            aload 0 /* this */
            lload 7 /* now */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.getDefaultRetentionTime:()I
            i2l
            lsub
            putfield org.h2.mvstore.MVStore.creationTime:J
        53: .line 732
            goto 57
      StackMap locals: long int
      StackMap stack:
        54: lload 7 /* now */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.creationTime:J
            lcmp
            ifge 57
        55: .line 735
            aload 0 /* this */
            lload 7 /* now */
            putfield org.h2.mvstore.MVStore.creationTime:J
        56: .line 736
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
            ldc "created"
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.creationTime:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        57: .line 738
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.size:()J
            invokevirtual org.h2.mvstore.MVStore.readChunkFooter:(J)Lorg/h2/mvstore/Chunk;
            astore 10 /* test */
        start local 10 // org.h2.mvstore.Chunk test
        58: .line 739
            aload 10 /* test */
            ifnull 63
        59: .line 740
            aload 0 /* this */
            aload 10 /* test */
            getfield org.h2.mvstore.Chunk.block:J
            invokevirtual org.h2.mvstore.MVStore.readChunkHeaderAndFooter:(J)Lorg/h2/mvstore/Chunk;
            astore 10 /* test */
        60: .line 741
            aload 10 /* test */
            ifnull 63
        61: .line 742
            aload 1 /* newest */
            ifnull 62
            aload 10 /* test */
            getfield org.h2.mvstore.Chunk.version:J
            aload 1 /* newest */
            getfield org.h2.mvstore.Chunk.version:J
            lcmp
            ifle 63
        62: .line 743
      StackMap locals: org.h2.mvstore.Chunk
      StackMap stack:
            aload 10 /* test */
            astore 1 /* newest */
        63: .line 748
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.size:()J
            ldc 4096
            ldiv
            lstore 11 /* blocksInStore */
        start local 11 // long blocksInStore
        64: .line 750
            new java.util.PriorityQueue
            dup
            bipush 32
            lload 11 /* blocksInStore */
            ldc 4
            ldiv
            l2i
            invokestatic java.lang.Math.max:(II)I
        65: .line 751
            new org.h2.mvstore.MVStore$1
            dup
            aload 0 /* this */
            invokespecial org.h2.mvstore.MVStore$1.<init>:(Lorg/h2/mvstore/MVStore;)V
        66: .line 750
            invokespecial java.util.PriorityQueue.<init>:(ILjava/util/Comparator;)V
            astore 13 /* lastChunkCandidates */
        start local 13 // java.util.Queue lastChunkCandidates
        67: .line 763
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 14 /* validChunkCacheByLocation */
        start local 14 // java.util.Map validChunkCacheByLocation
        68: .line 765
            aload 1 /* newest */
            ifnull 79
        69: .line 769
      StackMap locals: long java.util.Queue java.util.Map
      StackMap stack:
            aload 14 /* validChunkCacheByLocation */
            aload 1 /* newest */
            getfield org.h2.mvstore.Chunk.block:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 1 /* newest */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        70: .line 770
            aload 13 /* lastChunkCandidates */
            aload 1 /* newest */
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
        71: .line 771
            aload 1 /* newest */
            getfield org.h2.mvstore.Chunk.next:J
            lconst_0
            lcmp
            ifeq 79
        72: .line 772
            aload 1 /* newest */
            getfield org.h2.mvstore.Chunk.next:J
            lload 11 /* blocksInStore */
            lcmp
            iflt 74
        73: .line 774
            goto 79
        74: .line 776
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* newest */
            getfield org.h2.mvstore.Chunk.next:J
            invokevirtual org.h2.mvstore.MVStore.readChunkHeaderAndFooter:(J)Lorg/h2/mvstore/Chunk;
            astore 10 /* test */
        75: .line 777
            aload 10 /* test */
            ifnull 79
            aload 10 /* test */
            getfield org.h2.mvstore.Chunk.id:I
            aload 1 /* newest */
            getfield org.h2.mvstore.Chunk.id:I
            if_icmpgt 77
        76: .line 778
            goto 79
        77: .line 780
      StackMap locals:
      StackMap stack:
            aload 10 /* test */
            astore 1 /* newest */
        78: .line 768
            goto 69
        79: .line 787
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 15 /* verified */
        start local 15 // boolean verified
        80: .line 788
            goto 99
        81: .line 789
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 15 /* verified */
        82: .line 792
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            ldc "chunk."
            invokevirtual org.h2.mvstore.MVMap.cursor:(Ljava/lang/Object;)Lorg/h2/mvstore/Cursor;
            astore 16 /* cursor */
        start local 16 // org.h2.mvstore.Cursor cursor
        83: .line 793
            goto 98
        84: .line 794
      StackMap locals: org.h2.mvstore.Cursor
      StackMap stack:
            aload 16 /* cursor */
            invokevirtual org.h2.mvstore.Cursor.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic org.h2.mvstore.Chunk.fromString:(Ljava/lang/String;)Lorg/h2/mvstore/Chunk;
            astore 17 /* c */
        start local 17 // org.h2.mvstore.Chunk c
        85: .line 795
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 86
            aload 17 /* c */
            getfield org.h2.mvstore.Chunk.version:J
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentVersion:J
            lcmp
            ifle 86
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        86: .line 798
      StackMap locals: org.h2.mvstore.Chunk
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            aload 17 /* c */
            getfield org.h2.mvstore.Chunk.id:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 17 /* c */
            invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        87: .line 799
            aload 17 /* c */
            getfield org.h2.mvstore.Chunk.block:J
            lstore 18 /* block */
        start local 18 // long block
        88: .line 800
            aload 14 /* validChunkCacheByLocation */
            lload 18 /* block */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 10 /* test */
        89: .line 801
            aload 10 /* test */
            ifnonnull 95
        90: .line 802
            aload 0 /* this */
            lload 18 /* block */
            invokevirtual org.h2.mvstore.MVStore.readChunkHeaderAndFooter:(J)Lorg/h2/mvstore/Chunk;
            astore 10 /* test */
        91: .line 803
            aload 10 /* test */
            ifnull 97
            aload 10 /* test */
            getfield org.h2.mvstore.Chunk.id:I
            aload 17 /* c */
            getfield org.h2.mvstore.Chunk.id:I
            if_icmpne 97
        92: .line 804
            aload 14 /* validChunkCacheByLocation */
            lload 18 /* block */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 10 /* test */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        93: .line 805
            aload 13 /* lastChunkCandidates */
            aload 10 /* test */
            invokeinterface java.util.Queue.offer:(Ljava/lang/Object;)Z
            pop
        94: .line 806
            goto 98
        95: .line 808
      StackMap locals: long
      StackMap stack:
            aload 10 /* test */
            getfield org.h2.mvstore.Chunk.id:I
            aload 17 /* c */
            getfield org.h2.mvstore.Chunk.id:I
            if_icmpne 97
        96: .line 811
            goto 98
        97: .line 817
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 15 /* verified */
        end local 18 // long block
        end local 17 // org.h2.mvstore.Chunk c
        98: .line 793
      StackMap locals:
      StackMap stack:
            aload 16 /* cursor */
            invokevirtual org.h2.mvstore.Cursor.hasNext:()Z
            ifeq 99
            aload 16 /* cursor */
            invokevirtual org.h2.mvstore.Cursor.next:()Ljava/lang/Object;
            checkcast java.lang.String
            ldc "chunk."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 84
        end local 16 // org.h2.mvstore.Cursor cursor
        99: .line 788
      StackMap locals:
      StackMap stack:
            iload 15 /* verified */
            ifne 100
            aload 0 /* this */
            aload 13 /* lastChunkCandidates */
            invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            invokevirtual org.h2.mvstore.MVStore.setLastChunk:(Lorg/h2/mvstore/Chunk;)Lorg/h2/mvstore/Chunk;
            ifnonnull 81
       100: .line 821
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.clear:()V
       101: .line 823
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 17
            goto 106
      StackMap locals: org.h2.mvstore.MVStore org.h2.mvstore.Chunk int java.nio.ByteBuffer byte[] long long int org.h2.mvstore.Chunk long java.util.Queue java.util.Map int top java.util.Iterator
      StackMap stack:
       102: aload 17
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 16 /* c */
        start local 16 // org.h2.mvstore.Chunk c
       103: .line 824
            aload 16 /* c */
            getfield org.h2.mvstore.Chunk.block:J
            ldc 4096
            lmul
            lstore 18 /* start */
        start local 18 // long start
       104: .line 825
            aload 16 /* c */
            getfield org.h2.mvstore.Chunk.len:I
            sipush 4096
            imul
            istore 20 /* length */
        start local 20 // int length
       105: .line 826
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            lload 18 /* start */
            iload 20 /* length */
            invokevirtual org.h2.mvstore.FileStore.markUsed:(JI)V
        end local 20 // int length
        end local 18 // long start
        end local 16 // org.h2.mvstore.Chunk c
       106: .line 823
      StackMap locals:
      StackMap stack:
            aload 17
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 102
       107: .line 828
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 109
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.getFileLengthInUse:()J
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.measureFileLengthInUse:()J
            lcmp
            ifeq 109
            new java.lang.AssertionError
            dup
       108: .line 829
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.getFileLengthInUse:()J
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.measureFileLengthInUse:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
       109: .line 830
      StackMap locals: org.h2.mvstore.MVStore org.h2.mvstore.Chunk int java.nio.ByteBuffer byte[] long long int org.h2.mvstore.Chunk long java.util.Queue java.util.Map int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentVersion:J
            invokevirtual org.h2.mvstore.MVStore.setWriteVersion:(J)V
       110: .line 831
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastStoredVersion:J
            ldc -1
            lcmp
            ifne 112
       111: .line 832
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentVersion:J
            lconst_1
            lsub
            putfield org.h2.mvstore.MVStore.lastStoredVersion:J
       112: .line 834
      StackMap locals:
      StackMap stack:
            return
        end local 15 // boolean verified
        end local 14 // java.util.Map validChunkCacheByLocation
        end local 13 // java.util.Queue lastChunkCandidates
        end local 11 // long blocksInStore
        end local 10 // org.h2.mvstore.Chunk test
        end local 9 // int year
        end local 7 // long now
        end local 5 // long format
        end local 4 // byte[] buff
        end local 3 // java.nio.ByteBuffer fileHeaderBlocks
        end local 2 // boolean validStoreHeader
        end local 1 // org.h2.mvstore.Chunk newest
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0  113     0                       this  Lorg/h2/mvstore/MVStore;
            1  113     1                     newest  Lorg/h2/mvstore/Chunk;
            2  113     2           validStoreHeader  Z
            3  113     3           fileHeaderBlocks  Ljava/nio/ByteBuffer;
            4  113     4                       buff  [B
            5   31     5                          i  I
            8   27     6                          m  Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;
           12   27     7                  blockSize  I
           18   27     8                    version  J
           23   27    10                    chunkId  I
           24   27    11                      block  J
           25   27    13                       test  Lorg/h2/mvstore/Chunk;
           36  113     5                     format  J
           50  113     7                        now  J
           51  113     9                       year  I
           58  113    10                       test  Lorg/h2/mvstore/Chunk;
           64  113    11              blocksInStore  J
           67  113    13        lastChunkCandidates  Ljava/util/Queue<Lorg/h2/mvstore/Chunk;>;
           68  113    14  validChunkCacheByLocation  Ljava/util/Map<Ljava/lang/Long;Lorg/h2/mvstore/Chunk;>;
           80  113    15                   verified  Z
           83   99    16                     cursor  Lorg/h2/mvstore/Cursor<Ljava/lang/String;Ljava/lang/String;>;
           85   98    17                          c  Lorg/h2/mvstore/Chunk;
           88   98    18                      block  J
          103  106    16                          c  Lorg/h2/mvstore/Chunk;
          104  106    18                      start  J
          105  106    20                     length  I
      Exception table:
        from    to  target  type
           7     9      28  Class java.lang.Exception
          10    27      28  Class java.lang.Exception

  private org.h2.mvstore.Chunk setLastChunk(org.h2.mvstore.Chunk);
    descriptor: (Lorg/h2/mvstore/Chunk;)Lorg/h2/mvstore/Chunk;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // org.h2.mvstore.Chunk last
         0: .line 837
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
         1: .line 838
            aload 0 /* this */
            aload 1 /* last */
            putfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
         2: .line 839
            aload 1 /* last */
            ifnonnull 8
         3: .line 841
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastMapId:Ljava/util/concurrent/atomic/AtomicInteger;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.set:(I)V
         4: .line 842
            aload 0 /* this */
            lconst_0
            putfield org.h2.mvstore.MVStore.currentVersion:J
         5: .line 843
            aload 0 /* this */
            ldc -1
            putfield org.h2.mvstore.MVStore.lastStoredVersion:J
         6: .line 844
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            lconst_0
            ldc -1
            invokevirtual org.h2.mvstore.MVMap.setRootPos:(JJ)V
         7: .line 845
            goto 13
         8: .line 846
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastMapId:Ljava/util/concurrent/atomic/AtomicInteger;
            aload 1 /* last */
            getfield org.h2.mvstore.Chunk.mapId:I
            invokevirtual java.util.concurrent.atomic.AtomicInteger.set:(I)V
         9: .line 847
            aload 0 /* this */
            aload 1 /* last */
            getfield org.h2.mvstore.Chunk.version:J
            putfield org.h2.mvstore.MVStore.currentVersion:J
        10: .line 848
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* last */
            getfield org.h2.mvstore.Chunk.id:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 1 /* last */
            invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 849
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentVersion:J
            lconst_1
            lsub
            putfield org.h2.mvstore.MVStore.lastStoredVersion:J
        12: .line 850
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            aload 1 /* last */
            getfield org.h2.mvstore.Chunk.metaRootPos:J
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastStoredVersion:J
            invokevirtual org.h2.mvstore.MVMap.setRootPos:(JJ)V
        13: .line 852
      StackMap locals:
      StackMap stack:
            aload 1 /* last */
            areturn
        end local 1 // org.h2.mvstore.Chunk last
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lorg/h2/mvstore/MVStore;
            0   14     1  last  Lorg/h2/mvstore/Chunk;
    MethodParameters:
      Name  Flags
      last  

  private org.h2.mvstore.Chunk readChunkHeaderAndFooter(long);
    descriptor: (J)Lorg/h2/mvstore/Chunk;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // long block
         0: .line 866
            aload 0 /* this */
            lload 1 /* block */
            invokevirtual org.h2.mvstore.MVStore.readChunkHeader:(J)Lorg/h2/mvstore/Chunk;
            astore 3 /* header */
        start local 3 // org.h2.mvstore.Chunk header
         1: .line 867
            goto 4
        end local 3 // org.h2.mvstore.Chunk header
      StackMap locals:
      StackMap stack: java.lang.Exception
         2: pop
         3: .line 869
            aconst_null
            areturn
        start local 3 // org.h2.mvstore.Chunk header
         4: .line 871
      StackMap locals: org.h2.mvstore.Chunk
      StackMap stack:
            aload 3 /* header */
            ifnonnull 6
         5: .line 872
            aconst_null
            areturn
         6: .line 874
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* block */
            aload 3 /* header */
            getfield org.h2.mvstore.Chunk.len:I
            i2l
            ladd
            ldc 4096
            lmul
            invokevirtual org.h2.mvstore.MVStore.readChunkFooter:(J)Lorg/h2/mvstore/Chunk;
            astore 4 /* footer */
        start local 4 // org.h2.mvstore.Chunk footer
         7: .line 875
            aload 4 /* footer */
            ifnull 8
            aload 4 /* footer */
            getfield org.h2.mvstore.Chunk.id:I
            aload 3 /* header */
            getfield org.h2.mvstore.Chunk.id:I
            if_icmpeq 9
         8: .line 876
      StackMap locals: org.h2.mvstore.Chunk
      StackMap stack:
            aconst_null
            areturn
         9: .line 878
      StackMap locals:
      StackMap stack:
            aload 3 /* header */
            areturn
        end local 4 // org.h2.mvstore.Chunk footer
        end local 3 // org.h2.mvstore.Chunk header
        end local 1 // long block
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lorg/h2/mvstore/MVStore;
            0   10     1   block  J
            1    2     3  header  Lorg/h2/mvstore/Chunk;
            4   10     3  header  Lorg/h2/mvstore/Chunk;
            7   10     4  footer  Lorg/h2/mvstore/Chunk;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    MethodParameters:
       Name  Flags
      block  

  private org.h2.mvstore.Chunk readChunkFooter(long);
    descriptor: (J)Lorg/h2/mvstore/Chunk;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // long end
         0: .line 891
            lload 1 /* end */
            ldc 128
            lsub
            lstore 3 /* pos */
        start local 3 // long pos
         1: .line 892
            lload 3 /* pos */
            lconst_0
            lcmp
            ifge 3
         2: .line 893
            aconst_null
            areturn
         3: .line 895
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            lload 3 /* pos */
            sipush 128
            invokevirtual org.h2.mvstore.FileStore.readFully:(JI)Ljava/nio/ByteBuffer;
            astore 5 /* lastBlock */
        start local 5 // java.nio.ByteBuffer lastBlock
         4: .line 896
            sipush 128
            newarray 8
            astore 6 /* buff */
        start local 6 // byte[] buff
         5: .line 897
            aload 5 /* lastBlock */
            aload 6 /* buff */
            invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
            pop
         6: .line 898
            aload 6 /* buff */
            invokestatic org.h2.mvstore.DataUtils.parseChecksummedMap:([B)Ljava/util/HashMap;
            astore 7 /* m */
        start local 7 // java.util.HashMap m
         7: .line 899
            aload 7 /* m */
            ifnull 15
         8: .line 900
            aload 7 /* m */
            ldc "chunk"
            iconst_0
            invokestatic org.h2.mvstore.DataUtils.readHexInt:(Ljava/util/Map;Ljava/lang/String;I)I
            istore 8 /* chunk */
        start local 8 // int chunk
         9: .line 901
            new org.h2.mvstore.Chunk
            dup
            iload 8 /* chunk */
            invokespecial org.h2.mvstore.Chunk.<init>:(I)V
            astore 9 /* c */
        start local 9 // org.h2.mvstore.Chunk c
        10: .line 902
            aload 9 /* c */
            aload 7 /* m */
            ldc "version"
            lconst_0
            invokestatic org.h2.mvstore.DataUtils.readHexLong:(Ljava/util/Map;Ljava/lang/String;J)J
            putfield org.h2.mvstore.Chunk.version:J
        11: .line 903
            aload 9 /* c */
            aload 7 /* m */
            ldc "block"
            lconst_0
            invokestatic org.h2.mvstore.DataUtils.readHexLong:(Ljava/util/Map;Ljava/lang/String;J)J
            putfield org.h2.mvstore.Chunk.block:J
        12: .line 904
            aload 9 /* c */
        13: areturn
        end local 9 // org.h2.mvstore.Chunk c
        end local 8 // int chunk
        end local 7 // java.util.HashMap m
        end local 6 // byte[] buff
        end local 5 // java.nio.ByteBuffer lastBlock
        end local 3 // long pos
        14: .line 906
      StackMap locals: org.h2.mvstore.MVStore long
      StackMap stack: java.lang.Exception
            pop
        15: .line 909
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // long end
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       this  Lorg/h2/mvstore/MVStore;
            0   16     1        end  J
            1   14     3        pos  J
            4   14     5  lastBlock  Ljava/nio/ByteBuffer;
            5   14     6       buff  [B
            7   14     7          m  Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;
            9   14     8      chunk  I
           10   14     9          c  Lorg/h2/mvstore/Chunk;
      Exception table:
        from    to  target  type
           0     2      14  Class java.lang.Exception
           3    13      14  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      end   

  private void writeStoreHeader();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 913
            new java.lang.StringBuilder
            dup
            bipush 112
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* buff */
        start local 1 // java.lang.StringBuilder buff
         1: .line 914
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            ifnull 5
         2: .line 915
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
            ldc "block"
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            getfield org.h2.mvstore.Chunk.block:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 916
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
            ldc "chunk"
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            getfield org.h2.mvstore.Chunk.id:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 917
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
            ldc "version"
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            getfield org.h2.mvstore.Chunk.version:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 919
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 1 /* buff */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
            invokestatic org.h2.mvstore.DataUtils.appendMap:(Ljava/lang/StringBuilder;Ljava/util/HashMap;)Ljava/lang/StringBuilder;
            pop
         6: .line 920
            aload 1 /* buff */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            astore 2 /* bytes */
        start local 2 // byte[] bytes
         7: .line 921
            aload 2 /* bytes */
            iconst_0
            aload 2 /* bytes */
            arraylength
            invokestatic org.h2.mvstore.DataUtils.getFletcher32:([BII)I
            istore 3 /* checksum */
        start local 3 // int checksum
         8: .line 922
            aload 1 /* buff */
            ldc "fletcher"
            iload 3 /* checksum */
            invokestatic org.h2.mvstore.DataUtils.appendMap:(Ljava/lang/StringBuilder;Ljava/lang/String;I)V
         9: .line 923
            aload 1 /* buff */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        10: .line 924
            aload 1 /* buff */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            astore 2 /* bytes */
        11: .line 925
            sipush 8192
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 4 /* header */
        start local 4 // java.nio.ByteBuffer header
        12: .line 926
            aload 4 /* header */
            aload 2 /* bytes */
            invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
            pop
        13: .line 927
            aload 4 /* header */
            sipush 4096
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        14: .line 928
            aload 4 /* header */
            aload 2 /* bytes */
            invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
            pop
        15: .line 929
            aload 4 /* header */
            invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/Buffer;
            pop
        16: .line 930
            aload 0 /* this */
            lconst_0
            aload 4 /* header */
            invokevirtual org.h2.mvstore.MVStore.write:(JLjava/nio/ByteBuffer;)V
        17: .line 931
            return
        end local 4 // java.nio.ByteBuffer header
        end local 3 // int checksum
        end local 2 // byte[] bytes
        end local 1 // java.lang.StringBuilder buff
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lorg/h2/mvstore/MVStore;
            1   18     1      buff  Ljava/lang/StringBuilder;
            7   18     2     bytes  [B
            8   18     3  checksum  I
           12   18     4    header  Ljava/nio/ByteBuffer;

  private void write(long, java.nio.ByteBuffer);
    descriptor: (JLjava/nio/ByteBuffer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // long pos
        start local 3 // java.nio.ByteBuffer buffer
         0: .line 935
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            lload 1 /* pos */
            aload 3 /* buffer */
            invokevirtual org.h2.mvstore.FileStore.writeFully:(JLjava/nio/ByteBuffer;)V
         1: .line 936
            goto 4
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
         2: astore 4 /* e */
        start local 4 // java.lang.IllegalStateException e
         3: .line 937
            aload 0 /* this */
            aload 4 /* e */
            invokevirtual org.h2.mvstore.MVStore.panic:(Ljava/lang/IllegalStateException;)V
        end local 4 // java.lang.IllegalStateException e
         4: .line 939
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.nio.ByteBuffer buffer
        end local 1 // long pos
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/h2/mvstore/MVStore;
            0    5     1     pos  J
            0    5     3  buffer  Ljava/nio/ByteBuffer;
            3    4     4       e  Ljava/lang/IllegalStateException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalStateException
    MethodParameters:
        Name  Flags
      pos     
      buffer  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 946
            aload 0 /* this */
            iconst_1
            invokevirtual org.h2.mvstore.MVStore.closeStore:(Z)V
         1: .line 947
            return
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/mvstore/MVStore;

  public void closeImmediately();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 956
            aload 0 /* this */
            iconst_0
            invokevirtual org.h2.mvstore.MVStore.closeStore:(Z)V
         1: .line 957
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 1 /* e */
        start local 1 // java.lang.Throwable e
         3: .line 958
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual org.h2.mvstore.MVStore.handleException:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable e
         4: .line 960
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/h2/mvstore/MVStore;
            3    4     1     e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable

  private void closeStore(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // boolean normalShutdown
         0: .line 966
            goto 42
         1: .line 967
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* normalShutdown */
            invokevirtual org.h2.mvstore.MVStore.stopBackgroundThread:(Z)V
         2: .line 968
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         3: .line 970
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.state:I
            ifne 41
         4: .line 971
            aload 0 /* this */
            iconst_1
            putfield org.h2.mvstore.MVStore.state:I
         5: .line 974
            iload 1 /* normalShutdown */
            ifeq 14
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            ifnull 14
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.isReadOnly:()Z
            ifne 14
         6: .line 975
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 11
      StackMap locals: org.h2.mvstore.MVStore int top java.util.Iterator
      StackMap stack:
         7: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.MVMap
            astore 2 /* map */
        start local 2 // org.h2.mvstore.MVMap map
         8: .line 976
            aload 2 /* map */
            invokevirtual org.h2.mvstore.MVMap.isClosed:()Z
            ifeq 11
         9: .line 977
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            aload 2 /* map */
            invokevirtual org.h2.mvstore.MVMap.getId:()I
            invokestatic org.h2.mvstore.MVMap.getMapRootKey:(I)Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 11
        10: .line 978
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
        end local 2 // org.h2.mvstore.MVMap map
        11: .line 975
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        12: .line 982
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.commit:()J
            pop2
        13: .line 984
            aload 0 /* this */
            iconst_0
            invokevirtual org.h2.mvstore.MVStore.shrinkFileIfPossible:(I)V
        14: .line 987
      StackMap locals: org.h2.mvstore.MVStore int
      StackMap stack:
            aload 0 /* this */
            iconst_2
            putfield org.h2.mvstore.MVStore.state:I
        15: .line 991
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            ifnull 17
        16: .line 992
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.clear:()V
        17: .line 994
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cacheChunkRef:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            ifnull 19
        18: .line 995
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cacheChunkRef:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.clear:()V
        19: .line 997
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 22
      StackMap locals: org.h2.mvstore.MVStore int top java.util.Iterator
      StackMap stack:
        20: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.MVMap
            astore 2 /* m */
        start local 2 // org.h2.mvstore.MVMap m
        21: .line 998
            aload 2 /* m */
            invokevirtual org.h2.mvstore.MVMap.close:()V
        end local 2 // org.h2.mvstore.MVMap m
        22: .line 997
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        23: .line 1000
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
        24: .line 1001
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
        25: .line 1002
            goto 30
      StackMap locals: org.h2.mvstore.MVStore int
      StackMap stack: java.lang.Throwable
        26: astore 4
        27: .line 1003
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            ifnull 29
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStoreIsProvided:Z
            ifne 29
        28: .line 1004
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.close:()V
        29: .line 1006
      StackMap locals: org.h2.mvstore.MVStore int top top java.lang.Throwable
      StackMap stack:
            aload 4
            athrow
        30: .line 1003
      StackMap locals: org.h2.mvstore.MVStore int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            ifnull 36
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStoreIsProvided:Z
            ifne 36
        31: .line 1004
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.close:()V
        32: .line 1007
            goto 36
      StackMap locals:
      StackMap stack: java.lang.Throwable
        33: astore 5
        34: .line 1008
            aload 0 /* this */
            iconst_3
            putfield org.h2.mvstore.MVStore.state:I
        35: .line 1009
            aload 5
            athrow
        36: .line 1008
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield org.h2.mvstore.MVStore.state:I
        37: .line 1011
            goto 41
      StackMap locals:
      StackMap stack: java.lang.Throwable
        38: astore 6
        39: .line 1012
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        40: .line 1013
            aload 6
            athrow
        41: .line 1012
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        42: .line 966
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.isClosed:()Z
            ifeq 1
        43: .line 1015
            return
        end local 1 // boolean normalShutdown
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   44     0            this  Lorg/h2/mvstore/MVStore;
            0   44     1  normalShutdown  Z
            8   11     2             map  Lorg/h2/mvstore/MVMap<**>;
           21   22     2               m  Lorg/h2/mvstore/MVMap<**>;
      Exception table:
        from    to  target  type
           5    26      26  any
           5    33      33  any
           3    38      38  any
    MethodParameters:
                Name  Flags
      normalShutdown  

  java.nio.ByteBuffer readBufferForPage(long, int);
    descriptor: (JI)Ljava/nio/ByteBuffer;
    flags: (0x0000) 
    Code:
      stack=7, locals=20, args_size=3
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // long pos
        start local 3 // int expectedMapId
         0: .line 1025
            aload 0 /* this */
            lload 1 /* pos */
            invokevirtual org.h2.mvstore.MVStore.getChunk:(J)Lorg/h2/mvstore/Chunk;
            astore 4 /* c */
        start local 4 // org.h2.mvstore.Chunk c
         1: .line 1026
            aload 4 /* c */
            getfield org.h2.mvstore.Chunk.block:J
            ldc 4096
            lmul
            lstore 5 /* filePos */
        start local 5 // long filePos
         2: .line 1027
            lload 5 /* filePos */
            lload 1 /* pos */
            invokestatic org.h2.mvstore.DataUtils.getPageOffset:(J)I
            i2l
            ladd
            lstore 5 /* filePos */
         3: .line 1028
            lload 5 /* filePos */
            lconst_0
            lcmp
            ifge 7
         4: .line 1030
            bipush 6
         5: .line 1031
            ldc "Negative position {0}; p={1}, c={2}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            lload 5 /* filePos */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            lload 1 /* pos */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            aload 4 /* c */
            invokevirtual org.h2.mvstore.Chunk.toString:()Ljava/lang/String;
            aastore
         6: .line 1029
            invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
            athrow
         7: .line 1033
      StackMap locals: org.h2.mvstore.Chunk long
      StackMap stack:
            aload 4 /* c */
            getfield org.h2.mvstore.Chunk.block:J
            aload 4 /* c */
            getfield org.h2.mvstore.Chunk.len:I
            i2l
            ladd
            ldc 4096
            lmul
            lstore 7 /* maxPos */
        start local 7 // long maxPos
         8: .line 1036
            lload 1 /* pos */
            invokestatic org.h2.mvstore.DataUtils.getPageMaxLength:(J)I
            istore 10 /* maxLength */
        start local 10 // int maxLength
         9: .line 1037
            iload 10 /* maxLength */
            ldc 2097152
            if_icmpne 12
        10: .line 1038
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            lload 5 /* filePos */
            sipush 128
            invokevirtual org.h2.mvstore.FileStore.readFully:(JI)Ljava/nio/ByteBuffer;
            astore 9 /* buff */
        start local 9 // java.nio.ByteBuffer buff
        11: .line 1039
            aload 9 /* buff */
            invokevirtual java.nio.ByteBuffer.getInt:()I
            istore 10 /* maxLength */
        end local 9 // java.nio.ByteBuffer buff
        12: .line 1042
      StackMap locals: org.h2.mvstore.MVStore long int org.h2.mvstore.Chunk long long top int
      StackMap stack:
            lload 7 /* maxPos */
            lload 5 /* filePos */
            lsub
            iload 10 /* maxLength */
            i2l
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            istore 10 /* maxLength */
        13: .line 1043
            iload 10 /* maxLength */
            istore 11 /* length */
        start local 11 // int length
        14: .line 1044
            iload 11 /* length */
            ifge 18
        15: .line 1045
            bipush 6
        16: .line 1046
            ldc "Illegal page length {0} reading at {1}; max pos {2} "
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 11 /* length */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            lload 5 /* filePos */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            lload 7 /* maxPos */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
        17: .line 1045
            invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
            athrow
        18: .line 1048
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            lload 5 /* filePos */
            iload 11 /* length */
            invokevirtual org.h2.mvstore.FileStore.readFully:(JI)Ljava/nio/ByteBuffer;
            astore 9 /* buff */
        start local 9 // java.nio.ByteBuffer buff
        19: .line 1049
            lload 1 /* pos */
            invokestatic org.h2.mvstore.DataUtils.getPageChunkId:(J)I
            istore 12 /* chunkId */
        start local 12 // int chunkId
        20: .line 1050
            lload 1 /* pos */
            invokestatic org.h2.mvstore.DataUtils.getPageOffset:(J)I
            istore 13 /* offset */
        start local 13 // int offset
        21: .line 1051
            aload 9 /* buff */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 14 /* start */
        start local 14 // int start
        22: .line 1052
            aload 9 /* buff */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 15 /* remaining */
        start local 15 // int remaining
        23: .line 1053
            aload 9 /* buff */
            invokevirtual java.nio.ByteBuffer.getInt:()I
            istore 16 /* pageLength */
        start local 16 // int pageLength
        24: .line 1054
            iload 16 /* pageLength */
            iload 15 /* remaining */
            if_icmpgt 25
            iload 16 /* pageLength */
            iconst_4
            if_icmpge 29
        25: .line 1055
      StackMap locals: org.h2.mvstore.MVStore long int org.h2.mvstore.Chunk long long java.nio.ByteBuffer int int int int int int int
      StackMap stack:
            bipush 6
        26: .line 1056
            ldc "File corrupted in chunk {0}, expected page length 4..{1}, got {2}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 12 /* chunkId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 15 /* remaining */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
        27: .line 1057
            iload 16 /* pageLength */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        28: .line 1055
            invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
            athrow
        29: .line 1059
      StackMap locals:
      StackMap stack:
            aload 9 /* buff */
            iload 14 /* start */
            iload 16 /* pageLength */
            iadd
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        30: .line 1061
            aload 9 /* buff */
            invokevirtual java.nio.ByteBuffer.getShort:()S
            istore 17 /* check */
        start local 17 // short check
        31: .line 1062
            aload 9 /* buff */
            invokestatic org.h2.mvstore.DataUtils.readVarInt:(Ljava/nio/ByteBuffer;)I
            istore 18 /* mapId */
        start local 18 // int mapId
        32: .line 1063
            iload 18 /* mapId */
            iload 3 /* expectedMapId */
            if_icmpeq 36
        33: .line 1064
            bipush 6
        34: .line 1065
            ldc "File corrupted in chunk {0}, expected map id {1}, got {2}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 12 /* chunkId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 3 /* expectedMapId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iload 18 /* mapId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        35: .line 1064
            invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
            athrow
        36: .line 1067
      StackMap locals: int int
      StackMap stack:
            iload 12 /* chunkId */
            invokestatic org.h2.mvstore.DataUtils.getCheckValue:(I)S
        37: .line 1068
            iload 13 /* offset */
            invokestatic org.h2.mvstore.DataUtils.getCheckValue:(I)S
        38: .line 1067
            ixor
        39: .line 1069
            iload 16 /* pageLength */
            invokestatic org.h2.mvstore.DataUtils.getCheckValue:(I)S
        40: .line 1067
            ixor
            istore 19 /* checkTest */
        start local 19 // int checkTest
        41: .line 1070
            iload 17 /* check */
            iload 19 /* checkTest */
            i2s
            if_icmpeq 45
        42: .line 1071
            bipush 6
        43: .line 1072
            ldc "File corrupted in chunk {0}, expected check value {1}, got {2}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 12 /* chunkId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 19 /* checkTest */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iload 17 /* check */
            invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
            aastore
        44: .line 1071
            invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
            athrow
        45: .line 1074
      StackMap locals: int
      StackMap stack:
            aload 9 /* buff */
            areturn
        end local 19 // int checkTest
        end local 18 // int mapId
        end local 17 // short check
        end local 16 // int pageLength
        end local 15 // int remaining
        end local 14 // int start
        end local 13 // int offset
        end local 12 // int chunkId
        end local 11 // int length
        end local 10 // int maxLength
        end local 9 // java.nio.ByteBuffer buff
        end local 7 // long maxPos
        end local 5 // long filePos
        end local 4 // org.h2.mvstore.Chunk c
        end local 3 // int expectedMapId
        end local 1 // long pos
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   46     0           this  Lorg/h2/mvstore/MVStore;
            0   46     1            pos  J
            0   46     3  expectedMapId  I
            1   46     4              c  Lorg/h2/mvstore/Chunk;
            2   46     5        filePos  J
            8   46     7         maxPos  J
           11   12     9           buff  Ljava/nio/ByteBuffer;
           19   46     9           buff  Ljava/nio/ByteBuffer;
            9   46    10      maxLength  I
           14   46    11         length  I
           20   46    12        chunkId  I
           21   46    13         offset  I
           22   46    14          start  I
           23   46    15      remaining  I
           24   46    16     pageLength  I
           31   46    17          check  S
           32   46    18          mapId  I
           41   46    19      checkTest  I
    MethodParameters:
               Name  Flags
      pos            
      expectedMapId  

  private org.h2.mvstore.Chunk getChunk(long);
    descriptor: (J)Lorg/h2/mvstore/Chunk;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // long pos
         0: .line 1084
            lload 1 /* pos */
            invokestatic org.h2.mvstore.DataUtils.getPageChunkId:(J)I
            istore 3 /* chunkId */
        start local 3 // int chunkId
         1: .line 1085
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            iload 3 /* chunkId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 4 /* c */
        start local 4 // org.h2.mvstore.Chunk c
         2: .line 1086
            aload 4 /* c */
            ifnonnull 15
         3: .line 1087
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
         4: .line 1088
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            iload 3 /* chunkId */
            invokestatic org.h2.mvstore.Chunk.getMetaKey:(I)Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* s */
        start local 5 // java.lang.String s
         5: .line 1089
            aload 5 /* s */
            ifnonnull 9
         6: .line 1091
            bipush 9
         7: .line 1092
            ldc "Chunk {0} not found"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 3 /* chunkId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         8: .line 1090
            invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
            athrow
         9: .line 1094
      StackMap locals: int org.h2.mvstore.Chunk java.lang.String
      StackMap stack:
            aload 5 /* s */
            invokestatic org.h2.mvstore.Chunk.fromString:(Ljava/lang/String;)Lorg/h2/mvstore/Chunk;
            astore 4 /* c */
        10: .line 1095
            aload 4 /* c */
            getfield org.h2.mvstore.Chunk.block:J
            ldc 9223372036854775807
            lcmp
            ifne 14
        11: .line 1097
            bipush 6
        12: .line 1098
            ldc "Chunk {0} is invalid"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 3 /* chunkId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        13: .line 1096
            invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
            athrow
        14: .line 1100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            aload 4 /* c */
            getfield org.h2.mvstore.Chunk.id:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 4 /* c */
            invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.lang.String s
        15: .line 1102
      StackMap locals:
      StackMap stack:
            aload 4 /* c */
            areturn
        end local 4 // org.h2.mvstore.Chunk c
        end local 3 // int chunkId
        end local 1 // long pos
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lorg/h2/mvstore/MVStore;
            0   16     1      pos  J
            1   16     3  chunkId  I
            2   16     4        c  Lorg/h2/mvstore/Chunk;
            5   15     5        s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      pos   

  private void setWriteVersion(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // long version
         0: .line 1106
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3 /* iter */
        start local 3 // java.util.Iterator iter
         1: goto 9
         2: .line 1107
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.MVMap
            astore 4 /* map */
        start local 4 // org.h2.mvstore.MVMap map
         3: .line 1108
            aload 4 /* map */
            lload 1 /* version */
            invokevirtual org.h2.mvstore.MVMap.setWriteVersion:(J)Lorg/h2/mvstore/RootReference;
            ifnonnull 9
         4: .line 1109
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 5
            aload 4 /* map */
            invokevirtual org.h2.mvstore.MVMap.isClosed:()Z
            ifne 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 1110
      StackMap locals: org.h2.mvstore.MVMap
      StackMap stack:
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 6
            aload 4 /* map */
            invokevirtual org.h2.mvstore.MVMap.getVersion:()J
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.getOldestVersionToKeep:()J
            lcmp
            iflt 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 1111
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            aload 4 /* map */
            invokevirtual org.h2.mvstore.MVMap.getId:()I
            invokestatic org.h2.mvstore.MVMap.getMapRootKey:(I)Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 1112
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
         8: .line 1113
            aload 3 /* iter */
            invokeinterface java.util.Iterator.remove:()V
        end local 4 // org.h2.mvstore.MVMap map
         9: .line 1106
      StackMap locals:
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        end local 3 // java.util.Iterator iter
        10: .line 1116
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            lload 1 /* version */
            invokevirtual org.h2.mvstore.MVMap.setWriteVersion:(J)Lorg/h2/mvstore/RootReference;
            pop
        11: .line 1117
            aload 0 /* this */
            lload 1 /* version */
            invokevirtual org.h2.mvstore.MVStore.onVersionChange:(J)V
        12: .line 1118
            return
        end local 1 // long version
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Lorg/h2/mvstore/MVStore;
            0   13     1  version  J
            1   10     3     iter  Ljava/util/Iterator<Lorg/h2/mvstore/MVMap<**>;>;
            3    9     4      map  Lorg/h2/mvstore/MVMap<**>;
    MethodParameters:
         Name  Flags
      version  

  public long tryCommit();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 1132
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
            ifeq 1
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentStoreVersion:J
            lconst_0
            lcmp
            ifge 8
         1: .line 1133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:()Z
            ifeq 8
         2: .line 1135
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.store:()V
         3: .line 1136
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 1
         5: .line 1137
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 1138
            aload 1
            athrow
         7: .line 1137
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         8: .line 1140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentVersion:J
            lreturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/h2/mvstore/MVStore;
      Exception table:
        from    to  target  type
           2     4       4  any

  public long commit();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 1163
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
            ifeq 1
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentStoreVersion:J
            lconst_0
            lcmp
            ifge 8
         1: .line 1164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 1166
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.store:()V
         3: .line 1167
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 1
         5: .line 1168
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 1169
            aload 1
            athrow
         7: .line 1168
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         8: .line 1171
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentVersion:J
            lreturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/h2/mvstore/MVStore;
      Exception table:
        from    to  target  type
           2     4       4  any

  private void store();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 1176
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.isOpenOrStopping:()Z
            ifeq 22
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.hasUnsavedChangesInternal:()Z
            ifeq 22
         1: .line 1177
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentVersion:J
            putfield org.h2.mvstore.MVStore.currentStoreVersion:J
         2: .line 1178
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            ifnonnull 8
         3: .line 1179
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentVersion:J
            putfield org.h2.mvstore.MVStore.lastStoredVersion:J
         4: .line 1181
            aload 0 /* this */
            dup
            getfield org.h2.mvstore.MVStore.currentVersion:J
            lconst_1
            ladd
            putfield org.h2.mvstore.MVStore.currentVersion:J
         5: .line 1182
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentVersion:J
            invokevirtual org.h2.mvstore.MVStore.setWriteVersion:(J)V
         6: .line 1183
            aload 0 /* this */
            iconst_0
            putfield org.h2.mvstore.MVStore.metaChanged:Z
         7: .line 1184
            goto 22
         8: .line 1185
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.isReadOnly:()Z
            ifeq 11
         9: .line 1187
            iconst_2
            ldc "This store is read-only"
            iconst_0
            anewarray java.lang.Object
        10: .line 1186
            invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
            athrow
        11: .line 1190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.storeNow:()V
        12: .line 1191
            goto 22
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
        13: astore 1 /* e */
        start local 1 // java.lang.IllegalStateException e
        14: .line 1192
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual org.h2.mvstore.MVStore.panic:(Ljava/lang/IllegalStateException;)V
        end local 1 // java.lang.IllegalStateException e
        15: goto 22
        16: .line 1193
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* e */
        start local 1 // java.lang.Throwable e
        17: .line 1194
            aload 0 /* this */
            iconst_3
            aload 1 /* e */
            invokevirtual java.lang.Throwable.toString:()Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* e */
            aastore
            invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
            invokevirtual org.h2.mvstore.MVStore.panic:(Ljava/lang/IllegalStateException;)V
        end local 1 // java.lang.Throwable e
        18: .line 1198
            goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 2
        20: .line 1201
            aload 0 /* this */
            ldc -1
            putfield org.h2.mvstore.MVStore.currentStoreVersion:J
        21: .line 1202
            aload 2
            athrow
        22: .line 1201
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc -1
            putfield org.h2.mvstore.MVStore.currentStoreVersion:J
        23: .line 1203
            return
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   24     0  this  Lorg/h2/mvstore/MVStore;
           14   15     1     e  Ljava/lang/IllegalStateException;
           17   18     1     e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          11    12      13  Class java.lang.IllegalStateException
          11    12      16  Class java.lang.Throwable
           0    19      19  any

  private void storeNow();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=26, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 1206
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1207
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.getTimeSinceCreation:()J
            lstore 1 /* time */
        start local 1 // long time
         2: .line 1208
            aload 0 /* this */
            lload 1 /* time */
            invokevirtual org.h2.mvstore.MVStore.freeUnusedIfNeeded:(J)V
         3: .line 1209
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.unsavedMemory:I
            istore 3 /* currentUnsavedPageCount */
        start local 3 // int currentUnsavedPageCount
         4: .line 1210
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentStoreVersion:J
            lstore 4 /* storeVersion */
        start local 4 // long storeVersion
         5: .line 1211
            aload 0 /* this */
            dup
            getfield org.h2.mvstore.MVStore.currentVersion:J
            lconst_1
            ladd
            dup2_x1
            putfield org.h2.mvstore.MVStore.currentVersion:J
            lstore 6 /* version */
        start local 6 // long version
         6: .line 1212
            aload 0 /* this */
            lload 1 /* time */
            putfield org.h2.mvstore.MVStore.lastCommitTime:J
         7: .line 1218
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            ifnonnull 10
         8: .line 1219
            iconst_0
            istore 8 /* lastChunkId */
        start local 8 // int lastChunkId
         9: .line 1220
            goto 14
        end local 8 // int lastChunkId
        10: .line 1221
      StackMap locals: org.h2.mvstore.MVStore long int long long
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            getfield org.h2.mvstore.Chunk.id:I
            istore 8 /* lastChunkId */
        start local 8 // int lastChunkId
        11: .line 1222
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            iload 8 /* lastChunkId */
            invokestatic org.h2.mvstore.Chunk.getMetaKey:(I)Ljava/lang/String;
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            invokevirtual org.h2.mvstore.Chunk.asString:()Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 1223
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
        13: .line 1225
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            getfield org.h2.mvstore.Chunk.time:J
            lload 1 /* time */
            invokestatic java.lang.Math.max:(JJ)J
            lstore 1 /* time */
        14: .line 1227
      StackMap locals: int
      StackMap stack:
            iload 8 /* lastChunkId */
            istore 9 /* newChunkId */
        start local 9 // int newChunkId
        15: .line 1229
      StackMap locals: int
      StackMap stack:
            iload 9 /* newChunkId */
            iconst_1
            iadd
            ldc 67108863
            iand
            istore 9 /* newChunkId */
        16: .line 1230
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            iload 9 /* newChunkId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 10 /* old */
        start local 10 // org.h2.mvstore.Chunk old
        17: .line 1231
            aload 10 /* old */
            ifnonnull 19
        18: .line 1232
            goto 25
        19: .line 1234
      StackMap locals: org.h2.mvstore.Chunk
      StackMap stack:
            aload 10 /* old */
            getfield org.h2.mvstore.Chunk.block:J
            ldc 9223372036854775807
            lcmp
            ifne 15
        20: .line 1236
            iconst_3
        21: .line 1237
            ldc "Last block {0} not stored, possibly due to out-of-memory"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 10 /* old */
            aastore
        22: .line 1235
            invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
            astore 11 /* e */
        start local 11 // java.lang.IllegalStateException e
        23: .line 1238
            aload 0 /* this */
            aload 11 /* e */
            invokevirtual org.h2.mvstore.MVStore.panic:(Ljava/lang/IllegalStateException;)V
        end local 11 // java.lang.IllegalStateException e
        end local 10 // org.h2.mvstore.Chunk old
        24: .line 1228
            goto 15
        25: .line 1241
      StackMap locals:
      StackMap stack:
            new org.h2.mvstore.Chunk
            dup
            iload 9 /* newChunkId */
            invokespecial org.h2.mvstore.Chunk.<init>:(I)V
            astore 10 /* c */
        start local 10 // org.h2.mvstore.Chunk c
        26: .line 1242
            aload 10 /* c */
            ldc 2147483647
            putfield org.h2.mvstore.Chunk.pageCount:I
        27: .line 1243
            aload 10 /* c */
            ldc 2147483647
            putfield org.h2.mvstore.Chunk.pageCountLive:I
        28: .line 1244
            aload 10 /* c */
            ldc 9223372036854775807
            putfield org.h2.mvstore.Chunk.maxLen:J
        29: .line 1245
            aload 10 /* c */
            ldc 9223372036854775807
            putfield org.h2.mvstore.Chunk.maxLenLive:J
        30: .line 1246
            aload 10 /* c */
            ldc 9223372036854775807
            putfield org.h2.mvstore.Chunk.metaRootPos:J
        31: .line 1247
            aload 10 /* c */
            ldc 9223372036854775807
            putfield org.h2.mvstore.Chunk.block:J
        32: .line 1248
            aload 10 /* c */
            ldc 2147483647
            putfield org.h2.mvstore.Chunk.len:I
        33: .line 1249
            aload 10 /* c */
            lload 1 /* time */
            putfield org.h2.mvstore.Chunk.time:J
        34: .line 1250
            aload 10 /* c */
            lload 6 /* version */
            putfield org.h2.mvstore.Chunk.version:J
        35: .line 1251
            aload 10 /* c */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastMapId:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            putfield org.h2.mvstore.Chunk.mapId:I
        36: .line 1252
            aload 10 /* c */
            ldc 9223372036854775807
            putfield org.h2.mvstore.Chunk.next:J
        37: .line 1253
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            aload 10 /* c */
            getfield org.h2.mvstore.Chunk.id:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 10 /* c */
            invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        38: .line 1254
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 11 /* changed */
        start local 11 // java.util.ArrayList changed
        39: .line 1255
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 12 /* iter */
        start local 12 // java.util.Iterator iter
        40: goto 57
        41: .line 1256
      StackMap locals: org.h2.mvstore.Chunk java.util.ArrayList java.util.Iterator
      StackMap stack:
            aload 12 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.MVMap
            astore 13 /* map */
        start local 13 // org.h2.mvstore.MVMap map
        42: .line 1257
            aload 13 /* map */
            lload 6 /* version */
            invokevirtual org.h2.mvstore.MVMap.setWriteVersion:(J)Lorg/h2/mvstore/RootReference;
            astore 14 /* rootReference */
        start local 14 // org.h2.mvstore.RootReference rootReference
        43: .line 1258
            aload 14 /* rootReference */
            ifnonnull 49
        44: .line 1259
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 45
            aload 13 /* map */
            invokevirtual org.h2.mvstore.MVMap.isClosed:()Z
            ifne 45
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        45: .line 1260
      StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.RootReference
      StackMap stack:
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 46
            aload 13 /* map */
            invokevirtual org.h2.mvstore.MVMap.getVersion:()J
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.getOldestVersionToKeep:()J
            lcmp
            iflt 46
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        46: .line 1261
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            aload 13 /* map */
            invokevirtual org.h2.mvstore.MVMap.getId:()I
            invokestatic org.h2.mvstore.MVMap.getMapRootKey:(I)Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        47: .line 1262
            aload 12 /* iter */
            invokeinterface java.util.Iterator.remove:()V
        48: .line 1263
            goto 57
      StackMap locals:
      StackMap stack:
        49: aload 13 /* map */
            invokevirtual org.h2.mvstore.MVMap.getCreateVersion:()J
            lload 4 /* storeVersion */
            lcmp
            ifgt 57
        50: .line 1264
            aload 13 /* map */
            invokevirtual org.h2.mvstore.MVMap.isVolatile:()Z
            ifne 57
        51: .line 1265
            aload 13 /* map */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastStoredVersion:J
            invokevirtual org.h2.mvstore.MVMap.hasChangesSince:(J)Z
            ifeq 57
        52: .line 1266
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 53
            aload 14 /* rootReference */
            getfield org.h2.mvstore.RootReference.version:J
            lload 6 /* version */
            lcmp
            ifle 53
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            aload 14 /* rootReference */
            getfield org.h2.mvstore.RootReference.version:J
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " > "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 6 /* version */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        53: .line 1267
      StackMap locals:
      StackMap stack:
            aload 14 /* rootReference */
            getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
            astore 15 /* rootPage */
        start local 15 // org.h2.mvstore.Page rootPage
        54: .line 1268
            aload 15 /* rootPage */
            invokevirtual org.h2.mvstore.Page.isSaved:()Z
            ifeq 56
        55: .line 1272
            aload 15 /* rootPage */
            invokevirtual org.h2.mvstore.Page.isLeaf:()Z
            ifeq 57
        56: .line 1273
      StackMap locals: org.h2.mvstore.Page
      StackMap stack:
            aload 11 /* changed */
            aload 15 /* rootPage */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 15 // org.h2.mvstore.Page rootPage
        end local 14 // org.h2.mvstore.RootReference rootReference
        end local 13 // org.h2.mvstore.MVMap map
        57: .line 1255
      StackMap locals:
      StackMap stack:
            aload 12 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 41
        end local 12 // java.util.Iterator iter
        58: .line 1277
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.getWriteBuffer:()Lorg/h2/mvstore/WriteBuffer;
            astore 12 /* buff */
        start local 12 // org.h2.mvstore.WriteBuffer buff
        59: .line 1279
            aload 10 /* c */
            aload 12 /* buff */
            iconst_0
            invokevirtual org.h2.mvstore.Chunk.writeChunkHeader:(Lorg/h2/mvstore/WriteBuffer;I)V
        60: .line 1280
            aload 12 /* buff */
            invokevirtual org.h2.mvstore.WriteBuffer.position:()I
            istore 13 /* headerLength */
        start local 13 // int headerLength
        61: .line 1281
            aload 10 /* c */
            iconst_0
            putfield org.h2.mvstore.Chunk.pageCount:I
        62: .line 1282
            aload 10 /* c */
            iconst_0
            putfield org.h2.mvstore.Chunk.pageCountLive:I
        63: .line 1283
            aload 10 /* c */
            lconst_0
            putfield org.h2.mvstore.Chunk.maxLen:J
        64: .line 1284
            aload 10 /* c */
            lconst_0
            putfield org.h2.mvstore.Chunk.maxLenLive:J
        65: .line 1285
            aload 11 /* changed */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 15
            goto 74
      StackMap locals: org.h2.mvstore.MVStore long int long long int int org.h2.mvstore.Chunk java.util.ArrayList org.h2.mvstore.WriteBuffer int top java.util.Iterator
      StackMap stack:
        66: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Page
            astore 14 /* p */
        start local 14 // org.h2.mvstore.Page p
        67: .line 1286
            aload 14 /* p */
            invokevirtual org.h2.mvstore.Page.getMapId:()I
            invokestatic org.h2.mvstore.MVMap.getMapRootKey:(I)Ljava/lang/String;
            astore 16 /* key */
        start local 16 // java.lang.String key
        68: .line 1287
            aload 14 /* p */
            invokevirtual org.h2.mvstore.Page.getTotalCount:()J
            lconst_0
            lcmp
            ifne 71
        69: .line 1288
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            aload 16 /* key */
            invokevirtual org.h2.mvstore.MVMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        70: .line 1289
            goto 74
        71: .line 1290
      StackMap locals: org.h2.mvstore.MVStore long int long long int int org.h2.mvstore.Chunk java.util.ArrayList org.h2.mvstore.WriteBuffer int org.h2.mvstore.Page java.util.Iterator java.lang.String
      StackMap stack:
            aload 14 /* p */
            aload 10 /* c */
            aload 12 /* buff */
            invokevirtual org.h2.mvstore.Page.writeUnsavedRecursive:(Lorg/h2/mvstore/Chunk;Lorg/h2/mvstore/WriteBuffer;)V
        72: .line 1291
            aload 14 /* p */
            invokevirtual org.h2.mvstore.Page.getPos:()J
            lstore 17 /* root */
        start local 17 // long root
        73: .line 1292
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            aload 16 /* key */
            lload 17 /* root */
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 17 // long root
        end local 16 // java.lang.String key
        end local 14 // org.h2.mvstore.Page p
        74: .line 1285
      StackMap locals: org.h2.mvstore.MVStore long int long long int int org.h2.mvstore.Chunk java.util.ArrayList org.h2.mvstore.WriteBuffer int top java.util.Iterator
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 66
        75: .line 1295
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.applyFreedSpace:()V
        76: .line 1296
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            lload 6 /* version */
            invokevirtual org.h2.mvstore.MVMap.setWriteVersion:(J)Lorg/h2/mvstore/RootReference;
            astore 14 /* metaRootReference */
        start local 14 // org.h2.mvstore.RootReference metaRootReference
        77: .line 1297
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 78
            aload 14 /* metaRootReference */
            ifnonnull 78
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        78: .line 1298
      StackMap locals: org.h2.mvstore.MVStore long int long long int int org.h2.mvstore.Chunk java.util.ArrayList org.h2.mvstore.WriteBuffer int org.h2.mvstore.RootReference
      StackMap stack:
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 79
            aload 14 /* metaRootReference */
            getfield org.h2.mvstore.RootReference.version:J
            lload 6 /* version */
            lcmp
            ifeq 79
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            aload 14 /* metaRootReference */
            getfield org.h2.mvstore.RootReference.version:J
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 6 /* version */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        79: .line 1299
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.h2.mvstore.MVStore.metaChanged:Z
        80: .line 1300
            aload 0 /* this */
            lload 6 /* version */
            invokevirtual org.h2.mvstore.MVStore.onVersionChange:(J)V
        81: .line 1302
            aload 14 /* metaRootReference */
            getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
            astore 15 /* metaRoot */
        start local 15 // org.h2.mvstore.Page metaRoot
        82: .line 1303
            aload 15 /* metaRoot */
            aload 10 /* c */
            aload 12 /* buff */
            invokevirtual org.h2.mvstore.Page.writeUnsavedRecursive:(Lorg/h2/mvstore/Chunk;Lorg/h2/mvstore/WriteBuffer;)V
        83: .line 1305
            aload 12 /* buff */
            invokevirtual org.h2.mvstore.WriteBuffer.position:()I
            istore 16 /* chunkLength */
        start local 16 // int chunkLength
        84: .line 1308
            iload 16 /* chunkLength */
        85: .line 1309
            sipush 128
        86: .line 1308
            iadd
        87: .line 1309
            sipush 4096
        88: .line 1308
            invokestatic org.h2.util.MathUtils.roundUpInt:(II)I
            istore 17 /* length */
        start local 17 // int length
        89: .line 1310
            aload 12 /* buff */
            iload 17 /* length */
            invokevirtual org.h2.mvstore.WriteBuffer.limit:(I)Lorg/h2/mvstore/WriteBuffer;
            pop
        90: .line 1312
            aload 0 /* this */
            iload 17 /* length */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.reuseSpace:Z
            ifeq 91
            iconst_0
            goto 92
      StackMap locals: org.h2.mvstore.MVStore long int long long int int org.h2.mvstore.Chunk java.util.ArrayList org.h2.mvstore.WriteBuffer int org.h2.mvstore.RootReference org.h2.mvstore.Page int int
      StackMap stack: org.h2.mvstore.MVStore int
        91: iconst_1
      StackMap locals: org.h2.mvstore.MVStore long int long long int int org.h2.mvstore.Chunk java.util.ArrayList org.h2.mvstore.WriteBuffer int org.h2.mvstore.RootReference org.h2.mvstore.Page int int
      StackMap stack: org.h2.mvstore.MVStore int int
        92: invokevirtual org.h2.mvstore.MVStore.allocateFileSpace:(IZ)J
            lstore 18 /* filePos */
        start local 18 // long filePos
        93: .line 1313
            aload 10 /* c */
            lload 18 /* filePos */
            ldc 4096
            ldiv
            putfield org.h2.mvstore.Chunk.block:J
        94: .line 1314
            aload 10 /* c */
            iload 17 /* length */
            sipush 4096
            idiv
            putfield org.h2.mvstore.Chunk.len:I
        95: .line 1315
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 97
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.getFileLengthInUse:()J
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.measureFileLengthInUse:()J
            lcmp
            ifeq 97
            new java.lang.AssertionError
            dup
        96: .line 1316
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.getFileLengthInUse:()J
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.measureFileLengthInUse:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* c */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        97: .line 1317
      StackMap locals: long
      StackMap stack:
            aload 10 /* c */
            aload 15 /* metaRoot */
            invokevirtual org.h2.mvstore.Page.getPos:()J
            putfield org.h2.mvstore.Chunk.metaRootPos:J
        98: .line 1319
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.reuseSpace:Z
            ifeq 101
        99: .line 1320
            aload 10 /* c */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            aload 10 /* c */
            getfield org.h2.mvstore.Chunk.len:I
            sipush 4096
            imul
            invokevirtual org.h2.mvstore.FileStore.predictAllocation:(I)J
            ldc 4096
            ldiv
            putfield org.h2.mvstore.Chunk.next:J
       100: .line 1321
            goto 102
       101: .line 1323
      StackMap locals:
      StackMap stack:
            aload 10 /* c */
            lconst_0
            putfield org.h2.mvstore.Chunk.next:J
       102: .line 1325
      StackMap locals:
      StackMap stack:
            aload 12 /* buff */
            iconst_0
            invokevirtual org.h2.mvstore.WriteBuffer.position:(I)Lorg/h2/mvstore/WriteBuffer;
            pop
       103: .line 1326
            aload 10 /* c */
            aload 12 /* buff */
            iload 13 /* headerLength */
            invokevirtual org.h2.mvstore.Chunk.writeChunkHeader:(Lorg/h2/mvstore/WriteBuffer;I)V
       104: .line 1328
            aload 12 /* buff */
            aload 12 /* buff */
            invokevirtual org.h2.mvstore.WriteBuffer.limit:()I
            sipush 128
            isub
            invokevirtual org.h2.mvstore.WriteBuffer.position:(I)Lorg/h2/mvstore/WriteBuffer;
            pop
       105: .line 1329
            aload 12 /* buff */
            aload 10 /* c */
            invokevirtual org.h2.mvstore.Chunk.getFooterBytes:()[B
            invokevirtual org.h2.mvstore.WriteBuffer.put:([B)Lorg/h2/mvstore/WriteBuffer;
            pop
       106: .line 1331
            aload 12 /* buff */
            iconst_0
            invokevirtual org.h2.mvstore.WriteBuffer.position:(I)Lorg/h2/mvstore/WriteBuffer;
            pop
       107: .line 1332
            aload 0 /* this */
            lload 18 /* filePos */
            aload 12 /* buff */
            invokevirtual org.h2.mvstore.WriteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual org.h2.mvstore.MVStore.write:(JLjava/nio/ByteBuffer;)V
       108: .line 1333
            aload 0 /* this */
            aload 12 /* buff */
            invokevirtual org.h2.mvstore.MVStore.releaseWriteBuffer:(Lorg/h2/mvstore/WriteBuffer;)V
       109: .line 1336
            iconst_0
            istore 20 /* writeStoreHeader */
        start local 20 // boolean writeStoreHeader
       110: .line 1338
            lload 18 /* filePos */
            iload 17 /* length */
            i2l
            ladd
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.size:()J
            lcmp
            iflt 111
            iconst_1
            goto 112
      StackMap locals: int
      StackMap stack:
       111: iconst_0
      StackMap locals:
      StackMap stack: int
       112: istore 21 /* storeAtEndOfFile */
        start local 21 // boolean storeAtEndOfFile
       113: .line 1339
            iload 21 /* storeAtEndOfFile */
            ifne 134
       114: .line 1340
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            ifnonnull 117
       115: .line 1341
            iconst_1
            istore 20 /* writeStoreHeader */
       116: .line 1342
            goto 134
      StackMap locals: int
      StackMap stack:
       117: aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            getfield org.h2.mvstore.Chunk.next:J
            aload 10 /* c */
            getfield org.h2.mvstore.Chunk.block:J
            lcmp
            ifeq 120
       118: .line 1344
            iconst_1
            istore 20 /* writeStoreHeader */
       119: .line 1345
            goto 134
       120: .line 1347
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
            ldc "version"
            lconst_0
       121: .line 1346
            invokestatic org.h2.mvstore.DataUtils.readHexLong:(Ljava/util/Map;Ljava/lang/String;J)J
            lstore 22 /* headerVersion */
        start local 22 // long headerVersion
       122: .line 1348
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            getfield org.h2.mvstore.Chunk.version:J
            lload 22 /* headerVersion */
            lsub
            ldc 20
            lcmp
            ifle 125
       123: .line 1350
            iconst_1
            istore 20 /* writeStoreHeader */
       124: .line 1351
            goto 134
       125: .line 1352
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
            ldc "chunk"
            iconst_0
            invokestatic org.h2.mvstore.DataUtils.readHexInt:(Ljava/util/Map;Ljava/lang/String;I)I
            istore 24 /* chunkId */
        start local 24 // int chunkId
       126: .line 1354
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            iload 24 /* chunkId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 25 /* old */
        start local 25 // org.h2.mvstore.Chunk old
       127: .line 1355
            aload 25 /* old */
            ifnonnull 130
       128: .line 1358
            iconst_1
            istore 20 /* writeStoreHeader */
       129: .line 1359
            goto 134
       130: .line 1361
      StackMap locals: org.h2.mvstore.Chunk
      StackMap stack:
            iload 24 /* chunkId */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            getfield org.h2.mvstore.Chunk.id:I
            if_icmpne 132
       131: .line 1362
            goto 134
       132: .line 1364
      StackMap locals:
      StackMap stack:
            iinc 24 /* chunkId */ 1
        end local 25 // org.h2.mvstore.Chunk old
       133: .line 1353
            goto 126
        end local 24 // int chunkId
        end local 22 // long headerVersion
       134: .line 1370
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 10 /* c */
            putfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
       135: .line 1371
            iload 20 /* writeStoreHeader */
            ifeq 137
       136: .line 1372
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.writeStoreHeader:()V
       137: .line 1374
      StackMap locals:
      StackMap stack:
            iload 21 /* storeAtEndOfFile */
            ifne 139
       138: .line 1376
            aload 0 /* this */
            iconst_1
            invokevirtual org.h2.mvstore.MVStore.shrinkFileIfPossible:(I)V
       139: .line 1378
      StackMap locals:
      StackMap stack:
            aload 11 /* changed */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 23
            goto 142
      StackMap locals: org.h2.mvstore.MVStore long int long long int int org.h2.mvstore.Chunk java.util.ArrayList org.h2.mvstore.WriteBuffer int org.h2.mvstore.RootReference org.h2.mvstore.Page int int long int int top java.util.Iterator
      StackMap stack:
       140: aload 23
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Page
            astore 22 /* p */
        start local 22 // org.h2.mvstore.Page p
       141: .line 1379
            aload 22 /* p */
            invokevirtual org.h2.mvstore.Page.writeEnd:()V
        end local 22 // org.h2.mvstore.Page p
       142: .line 1378
      StackMap locals:
      StackMap stack:
            aload 23
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 140
       143: .line 1381
            aload 15 /* metaRoot */
            invokevirtual org.h2.mvstore.Page.writeEnd:()V
       144: .line 1385
            aload 0 /* this */
            iconst_0
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.unsavedMemory:I
       145: .line 1386
            iload 3 /* currentUnsavedPageCount */
            isub
       146: .line 1385
            invokestatic java.lang.Math.max:(II)I
            putfield org.h2.mvstore.MVStore.unsavedMemory:I
       147: .line 1388
            aload 0 /* this */
            lload 4 /* storeVersion */
            putfield org.h2.mvstore.MVStore.lastStoredVersion:J
       148: .line 1389
            return
        end local 21 // boolean storeAtEndOfFile
        end local 20 // boolean writeStoreHeader
        end local 18 // long filePos
        end local 17 // int length
        end local 16 // int chunkLength
        end local 15 // org.h2.mvstore.Page metaRoot
        end local 14 // org.h2.mvstore.RootReference metaRootReference
        end local 13 // int headerLength
        end local 12 // org.h2.mvstore.WriteBuffer buff
        end local 11 // java.util.ArrayList changed
        end local 10 // org.h2.mvstore.Chunk c
        end local 9 // int newChunkId
        end local 8 // int lastChunkId
        end local 6 // long version
        end local 4 // long storeVersion
        end local 3 // int currentUnsavedPageCount
        end local 1 // long time
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0  149     0                     this  Lorg/h2/mvstore/MVStore;
            2  149     1                     time  J
            4  149     3  currentUnsavedPageCount  I
            5  149     4             storeVersion  J
            6  149     6                  version  J
            9   10     8              lastChunkId  I
           11  149     8              lastChunkId  I
           15  149     9               newChunkId  I
           17   24    10                      old  Lorg/h2/mvstore/Chunk;
           23   24    11                        e  Ljava/lang/IllegalStateException;
           26  149    10                        c  Lorg/h2/mvstore/Chunk;
           39  149    11                  changed  Ljava/util/ArrayList<Lorg/h2/mvstore/Page;>;
           40   58    12                     iter  Ljava/util/Iterator<Lorg/h2/mvstore/MVMap<**>;>;
           42   57    13                      map  Lorg/h2/mvstore/MVMap<**>;
           43   57    14            rootReference  Lorg/h2/mvstore/RootReference;
           54   57    15                 rootPage  Lorg/h2/mvstore/Page;
           59  149    12                     buff  Lorg/h2/mvstore/WriteBuffer;
           61  149    13             headerLength  I
           67   74    14                        p  Lorg/h2/mvstore/Page;
           68   74    16                      key  Ljava/lang/String;
           73   74    17                     root  J
           77  149    14        metaRootReference  Lorg/h2/mvstore/RootReference;
           82  149    15                 metaRoot  Lorg/h2/mvstore/Page;
           84  149    16              chunkLength  I
           89  149    17                   length  I
           93  149    18                  filePos  J
          110  149    20         writeStoreHeader  Z
          113  149    21         storeAtEndOfFile  Z
          122  134    22            headerVersion  J
          126  134    24                  chunkId  I
          127  133    25                      old  Lorg/h2/mvstore/Chunk;
          141  142    22                        p  Lorg/h2/mvstore/Page;

  private void freeUnusedIfNeeded(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // long time
         0: .line 1396
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.retentionTime:I
            iconst_5
            idiv
            istore 3 /* freeDelay */
        start local 3 // int freeDelay
         1: .line 1397
            lload 1 /* time */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastFreeUnusedChunks:J
            lsub
            iload 3 /* freeDelay */
            i2l
            lcmp
            iflt 4
         2: .line 1399
            aload 0 /* this */
            lload 1 /* time */
            putfield org.h2.mvstore.MVStore.lastFreeUnusedChunks:J
         3: .line 1400
            aload 0 /* this */
            iconst_1
            invokevirtual org.h2.mvstore.MVStore.freeUnusedChunks:(Z)V
         4: .line 1402
      StackMap locals: int
      StackMap stack:
            return
        end local 3 // int freeDelay
        end local 1 // long time
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/h2/mvstore/MVStore;
            0    5     1       time  J
            1    5     3  freeDelay  I
    MethodParameters:
      Name  Flags
      time  

  private void freeUnusedChunks(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=10, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // boolean fast
         0: .line 1405
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1406
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            ifnull 23
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.reuseSpace:Z
            ifeq 23
         2: .line 1407
            aload 0 /* this */
            iload 1 /* fast */
            invokevirtual org.h2.mvstore.MVStore.collectReferencedChunks:(Z)Ljava/util/Set;
            astore 2 /* referenced */
        start local 2 // java.util.Set referenced
         3: .line 1408
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.getTimeSinceCreation:()J
            lstore 3 /* time */
        start local 3 // long time
         4: .line 1410
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5 /* iterator */
        start local 5 // java.util.Iterator iterator
         5: goto 21
         6: .line 1411
      StackMap locals: java.util.Set long java.util.Iterator
      StackMap stack:
            aload 5 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 6 /* c */
        start local 6 // org.h2.mvstore.Chunk c
         7: .line 1412
            aload 6 /* c */
            getfield org.h2.mvstore.Chunk.block:J
            ldc 9223372036854775807
            lcmp
            ifeq 21
            aload 2 /* referenced */
            aload 6 /* c */
            getfield org.h2.mvstore.Chunk.id:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 21
         8: .line 1413
            aload 0 /* this */
            aload 6 /* c */
            lload 3 /* time */
            invokevirtual org.h2.mvstore.MVStore.canOverwriteChunk:(Lorg/h2/mvstore/Chunk;J)Z
            ifeq 17
         9: .line 1414
            aload 5 /* iterator */
            invokeinterface java.util.Iterator.remove:()V
        10: .line 1415
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            aload 6 /* c */
            getfield org.h2.mvstore.Chunk.id:I
            invokestatic org.h2.mvstore.Chunk.getMetaKey:(I)Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 12
        11: .line 1416
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
        12: .line 1418
      StackMap locals: org.h2.mvstore.Chunk
      StackMap stack:
            aload 6 /* c */
            getfield org.h2.mvstore.Chunk.block:J
            ldc 4096
            lmul
            lstore 7 /* start */
        start local 7 // long start
        13: .line 1419
            aload 6 /* c */
            getfield org.h2.mvstore.Chunk.len:I
            sipush 4096
            imul
            istore 9 /* length */
        start local 9 // int length
        14: .line 1420
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            lload 7 /* start */
            iload 9 /* length */
            invokevirtual org.h2.mvstore.FileStore.free:(JI)V
        15: .line 1421
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 21
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.getFileLengthInUse:()J
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.measureFileLengthInUse:()J
            lcmp
            ifeq 21
            new java.lang.AssertionError
            dup
        16: .line 1422
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.getFileLengthInUse:()J
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.measureFileLengthInUse:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 9 // int length
        end local 7 // long start
        17: .line 1424
      StackMap locals:
      StackMap stack:
            aload 6 /* c */
            getfield org.h2.mvstore.Chunk.unused:J
            lconst_0
            lcmp
            ifne 21
        18: .line 1425
            aload 6 /* c */
            lload 3 /* time */
            putfield org.h2.mvstore.Chunk.unused:J
        19: .line 1426
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            aload 6 /* c */
            getfield org.h2.mvstore.Chunk.id:I
            invokestatic org.h2.mvstore.Chunk.getMetaKey:(I)Ljava/lang/String;
            aload 6 /* c */
            invokevirtual org.h2.mvstore.Chunk.asString:()Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        20: .line 1427
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
        end local 6 // org.h2.mvstore.Chunk c
        21: .line 1410
      StackMap locals:
      StackMap stack:
            aload 5 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 5 // java.util.Iterator iterator
        22: .line 1433
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.getTimeSinceCreation:()J
            putfield org.h2.mvstore.MVStore.lastFreeUnusedChunks:J
        end local 3 // long time
        end local 2 // java.util.Set referenced
        23: .line 1435
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean fast
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   24     0        this  Lorg/h2/mvstore/MVStore;
            0   24     1        fast  Z
            3   23     2  referenced  Ljava/util/Set<Ljava/lang/Integer;>;
            4   23     3        time  J
            5   22     5    iterator  Ljava/util/Iterator<Lorg/h2/mvstore/Chunk;>;
            7   21     6           c  Lorg/h2/mvstore/Chunk;
           13   17     7       start  J
           14   17     9      length  I
    MethodParameters:
      Name  Flags
      fast  

  private java.util.Set<java.lang.Integer> collectReferencedChunks(boolean);
    descriptor: (Z)Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=15, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // boolean fast
         0: .line 1445
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1446
      StackMap locals:
      StackMap stack:
            new java.util.concurrent.ThreadPoolExecutor
            dup
            bipush 10
            bipush 10
            ldc 10
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
         2: .line 1447
            new java.util.concurrent.ArrayBlockingQueue
            dup
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.keysPerPage:I
            iconst_1
            iadd
            invokespecial java.util.concurrent.ArrayBlockingQueue.<init>:(I)V
         3: .line 1446
            invokespecial java.util.concurrent.ThreadPoolExecutor.<init>:(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;)V
            astore 2 /* executorService */
        start local 2 // java.util.concurrent.ThreadPoolExecutor executorService
         4: .line 1448
            new java.util.concurrent.atomic.AtomicInteger
            dup
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
            astore 3 /* executingThreadCounter */
        start local 3 // java.util.concurrent.atomic.AtomicInteger executingThreadCounter
         5: .line 1450
            new org.h2.mvstore.MVStore$ChunkIdsCollector
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.getId:()I
            invokespecial org.h2.mvstore.MVStore$ChunkIdsCollector.<init>:(Lorg/h2/mvstore/MVStore;I)V
            astore 4 /* collector */
        start local 4 // org.h2.mvstore.MVStore$ChunkIdsCollector collector
         6: .line 1451
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.getOldestVersionToKeep:()J
            lstore 5 /* oldestVersionToKeep */
        start local 5 // long oldestVersionToKeep
         7: .line 1452
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.flushAndGetRoot:()Lorg/h2/mvstore/RootReference;
            astore 7 /* rootReference */
        start local 7 // org.h2.mvstore.RootReference rootReference
         8: .line 1453
            iload 1 /* fast */
            ifeq 22
         9: .line 1455
            goto 11
        start local 8 // org.h2.mvstore.RootReference previous
        10: .line 1456
      StackMap locals: org.h2.mvstore.MVStore int java.util.concurrent.ThreadPoolExecutor java.util.concurrent.atomic.AtomicInteger org.h2.mvstore.MVStore$ChunkIdsCollector long org.h2.mvstore.RootReference org.h2.mvstore.RootReference
      StackMap stack:
            aload 8 /* previous */
            astore 7 /* rootReference */
        end local 8 // org.h2.mvstore.RootReference previous
        11: .line 1455
      StackMap locals:
      StackMap stack:
            aload 7 /* rootReference */
            getfield org.h2.mvstore.RootReference.version:J
            lload 5 /* oldestVersionToKeep */
            lcmp
            iflt 13
            aload 7 /* rootReference */
            getfield org.h2.mvstore.RootReference.previous:Lorg/h2/mvstore/RootReference;
            dup
            astore 8 /* previous */
        start local 8 // org.h2.mvstore.RootReference previous
        12: ifnonnull 10
        end local 8 // org.h2.mvstore.RootReference previous
        13: .line 1458
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* rootReference */
            aload 4 /* collector */
            aload 2 /* executorService */
            aload 3 /* executingThreadCounter */
            aconst_null
            invokevirtual org.h2.mvstore.MVStore.inspectVersion:(Lorg/h2/mvstore/RootReference;Lorg/h2/mvstore/MVStore$ChunkIdsCollector;Ljava/util/concurrent/ThreadPoolExecutor;Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/Set;)V
        14: .line 1460
            aload 7 /* rootReference */
            getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
            astore 9 /* rootPage */
        start local 9 // org.h2.mvstore.Page rootPage
        15: .line 1461
            aload 9 /* rootPage */
            invokevirtual org.h2.mvstore.Page.getPos:()J
            lstore 10 /* pos */
        start local 10 // long pos
        16: .line 1462
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 17
            aload 9 /* rootPage */
            invokevirtual org.h2.mvstore.Page.isSaved:()Z
            ifne 17
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        17: .line 1463
      StackMap locals: org.h2.mvstore.MVStore int java.util.concurrent.ThreadPoolExecutor java.util.concurrent.atomic.AtomicInteger org.h2.mvstore.MVStore$ChunkIdsCollector long org.h2.mvstore.RootReference top org.h2.mvstore.Page long
      StackMap stack:
            lload 10 /* pos */
            invokestatic org.h2.mvstore.DataUtils.getPageChunkId:(J)I
            istore 12 /* chunkId */
        start local 12 // int chunkId
        18: .line 1464
            goto 20
        19: .line 1465
      StackMap locals: int
      StackMap stack:
            aload 4 /* collector */
            iload 12 /* chunkId */
            invokevirtual org.h2.mvstore.MVStore$ChunkIdsCollector.registerChunk:(I)V
        20: .line 1464
      StackMap locals:
      StackMap stack:
            iinc 12 /* chunkId */ 1
            iload 12 /* chunkId */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            getfield org.h2.mvstore.Chunk.id:I
            if_icmple 19
        end local 12 // int chunkId
        end local 10 // long pos
        end local 9 // org.h2.mvstore.Page rootPage
        21: .line 1467
            goto 26
        22: .line 1468
      StackMap locals: org.h2.mvstore.MVStore int java.util.concurrent.ThreadPoolExecutor java.util.concurrent.atomic.AtomicInteger org.h2.mvstore.MVStore$ChunkIdsCollector long org.h2.mvstore.RootReference
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 8 /* inspectedRoots */
        start local 8 // java.util.Set inspectedRoots
        23: .line 1470
      StackMap locals: java.util.Set
      StackMap stack:
            aload 0 /* this */
            aload 7 /* rootReference */
            aload 4 /* collector */
            aload 2 /* executorService */
            aload 3 /* executingThreadCounter */
            aload 8 /* inspectedRoots */
            invokevirtual org.h2.mvstore.MVStore.inspectVersion:(Lorg/h2/mvstore/RootReference;Lorg/h2/mvstore/MVStore$ChunkIdsCollector;Ljava/util/concurrent/ThreadPoolExecutor;Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/Set;)V
        24: .line 1471
            aload 7 /* rootReference */
            getfield org.h2.mvstore.RootReference.version:J
            lload 5 /* oldestVersionToKeep */
            lcmp
            iflt 26
        25: .line 1472
            aload 7 /* rootReference */
            getfield org.h2.mvstore.RootReference.previous:Lorg/h2/mvstore/RootReference;
            dup
            astore 7 /* rootReference */
            ifnonnull 23
        end local 8 // java.util.Set inspectedRoots
        26: .line 1474
      StackMap locals:
      StackMap stack:
            aload 4 /* collector */
            invokevirtual org.h2.mvstore.MVStore$ChunkIdsCollector.getReferenced:()Ljava/util/Set;
            astore 14
        27: .line 1476
            aload 2 /* executorService */
            invokevirtual java.util.concurrent.ThreadPoolExecutor.shutdownNow:()Ljava/util/List;
            pop
        28: .line 1474
            aload 14
            areturn
        end local 7 // org.h2.mvstore.RootReference rootReference
        end local 5 // long oldestVersionToKeep
        end local 4 // org.h2.mvstore.MVStore$ChunkIdsCollector collector
        29: .line 1475
      StackMap locals: org.h2.mvstore.MVStore int java.util.concurrent.ThreadPoolExecutor java.util.concurrent.atomic.AtomicInteger
      StackMap stack: java.lang.Throwable
            astore 13
        30: .line 1476
            aload 2 /* executorService */
            invokevirtual java.util.concurrent.ThreadPoolExecutor.shutdownNow:()Ljava/util/List;
            pop
        31: .line 1477
            aload 13
            athrow
        end local 3 // java.util.concurrent.atomic.AtomicInteger executingThreadCounter
        end local 2 // java.util.concurrent.ThreadPoolExecutor executorService
        end local 1 // boolean fast
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   32     0                    this  Lorg/h2/mvstore/MVStore;
            0   32     1                    fast  Z
            4   32     2         executorService  Ljava/util/concurrent/ThreadPoolExecutor;
            5   32     3  executingThreadCounter  Ljava/util/concurrent/atomic/AtomicInteger;
            6   29     4               collector  Lorg/h2/mvstore/MVStore$ChunkIdsCollector;
            7   29     5     oldestVersionToKeep  J
            8   29     7           rootReference  Lorg/h2/mvstore/RootReference;
           10   11     8                previous  Lorg/h2/mvstore/RootReference;
           12   13     8                previous  Lorg/h2/mvstore/RootReference;
           15   21     9                rootPage  Lorg/h2/mvstore/Page;
           16   21    10                     pos  J
           18   21    12                 chunkId  I
           23   26     8          inspectedRoots  Ljava/util/Set<Ljava/lang/Long;>;
      Exception table:
        from    to  target  type
           5    27      29  any
    Signature: (Z)Ljava/util/Set<Ljava/lang/Integer;>;
    MethodParameters:
      Name  Flags
      fast  

  private void inspectVersion(org.h2.mvstore.RootReference, org.h2.mvstore.MVStore$ChunkIdsCollector, java.util.concurrent.ThreadPoolExecutor, java.util.concurrent.atomic.AtomicInteger, java.util.Set<java.lang.Long>);
    descriptor: (Lorg/h2/mvstore/RootReference;Lorg/h2/mvstore/MVStore$ChunkIdsCollector;Ljava/util/concurrent/ThreadPoolExecutor;Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/Set;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=12, args_size=6
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // org.h2.mvstore.RootReference rootReference
        start local 2 // org.h2.mvstore.MVStore$ChunkIdsCollector collector
        start local 3 // java.util.concurrent.ThreadPoolExecutor executorService
        start local 4 // java.util.concurrent.atomic.AtomicInteger executingThreadCounter
        start local 5 // java.util.Set inspectedRoots
         0: .line 1493
            aload 1 /* rootReference */
            getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
            astore 6 /* rootPage */
        start local 6 // org.h2.mvstore.Page rootPage
         1: .line 1494
            aload 6 /* rootPage */
            invokevirtual org.h2.mvstore.Page.getPos:()J
            lstore 7 /* pos */
        start local 7 // long pos
         2: .line 1495
            aload 6 /* rootPage */
            invokevirtual org.h2.mvstore.Page.isSaved:()Z
            ifeq 7
         3: .line 1496
            aload 5 /* inspectedRoots */
            ifnull 5
            aload 5 /* inspectedRoots */
            lload 7 /* pos */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 1497
            return
         5: .line 1499
      StackMap locals: org.h2.mvstore.Page long
      StackMap stack:
            aload 2 /* collector */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.getId:()I
            invokevirtual org.h2.mvstore.MVStore$ChunkIdsCollector.setMapId:(I)V
         6: .line 1500
            aload 2 /* collector */
            lload 7 /* pos */
            aload 3 /* executorService */
            aload 4 /* executingThreadCounter */
            invokevirtual org.h2.mvstore.MVStore$ChunkIdsCollector.visit:(JLjava/util/concurrent/ThreadPoolExecutor;Ljava/util/concurrent/atomic/AtomicInteger;)V
         7: .line 1502
      StackMap locals:
      StackMap stack:
            new org.h2.mvstore.Cursor
            dup
            aload 6 /* rootPage */
            ldc "root."
            invokespecial org.h2.mvstore.Cursor.<init>:(Lorg/h2/mvstore/Page;Ljava/lang/Object;)V
            astore 9 /* c */
        start local 9 // org.h2.mvstore.Cursor c
         8: goto 18
         9: .line 1503
      StackMap locals: org.h2.mvstore.Cursor
      StackMap stack:
            aload 9 /* c */
            invokevirtual org.h2.mvstore.Cursor.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* key */
        start local 10 // java.lang.String key
        10: .line 1504
            aload 10 /* key */
            ldc "root."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 12
        11: .line 1505
            goto 19
        12: .line 1507
      StackMap locals: java.lang.String
      StackMap stack:
            aload 9 /* c */
            invokevirtual org.h2.mvstore.Cursor.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic org.h2.mvstore.DataUtils.parseHexLong:(Ljava/lang/String;)J
            lstore 7 /* pos */
        13: .line 1508
            lload 7 /* pos */
            invokestatic org.h2.mvstore.DataUtils.isPageSaved:(J)Z
            ifeq 18
        14: .line 1509
            aload 5 /* inspectedRoots */
            ifnull 15
            aload 5 /* inspectedRoots */
            lload 7 /* pos */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 18
        15: .line 1511
      StackMap locals:
      StackMap stack:
            aload 10 /* key */
            aload 10 /* key */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic org.h2.mvstore.DataUtils.parseHexInt:(Ljava/lang/String;)I
            istore 11 /* mapId */
        start local 11 // int mapId
        16: .line 1512
            aload 2 /* collector */
            iload 11 /* mapId */
            invokevirtual org.h2.mvstore.MVStore$ChunkIdsCollector.setMapId:(I)V
        17: .line 1513
            aload 2 /* collector */
            lload 7 /* pos */
            aload 3 /* executorService */
            aload 4 /* executingThreadCounter */
            invokevirtual org.h2.mvstore.MVStore$ChunkIdsCollector.visit:(JLjava/util/concurrent/ThreadPoolExecutor;Ljava/util/concurrent/atomic/AtomicInteger;)V
        end local 11 // int mapId
        end local 10 // java.lang.String key
        18: .line 1502
      StackMap locals:
      StackMap stack:
            aload 9 /* c */
            invokevirtual org.h2.mvstore.Cursor.hasNext:()Z
            ifne 9
        end local 9 // org.h2.mvstore.Cursor c
        19: .line 1517
      StackMap locals:
      StackMap stack:
            return
        end local 7 // long pos
        end local 6 // org.h2.mvstore.Page rootPage
        end local 5 // java.util.Set inspectedRoots
        end local 4 // java.util.concurrent.atomic.AtomicInteger executingThreadCounter
        end local 3 // java.util.concurrent.ThreadPoolExecutor executorService
        end local 2 // org.h2.mvstore.MVStore$ChunkIdsCollector collector
        end local 1 // org.h2.mvstore.RootReference rootReference
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   20     0                    this  Lorg/h2/mvstore/MVStore;
            0   20     1           rootReference  Lorg/h2/mvstore/RootReference;
            0   20     2               collector  Lorg/h2/mvstore/MVStore$ChunkIdsCollector;
            0   20     3         executorService  Ljava/util/concurrent/ThreadPoolExecutor;
            0   20     4  executingThreadCounter  Ljava/util/concurrent/atomic/AtomicInteger;
            0   20     5          inspectedRoots  Ljava/util/Set<Ljava/lang/Long;>;
            1   20     6                rootPage  Lorg/h2/mvstore/Page;
            2   20     7                     pos  J
            8   19     9                       c  Lorg/h2/mvstore/Cursor<Ljava/lang/String;Ljava/lang/String;>;
           10   18    10                     key  Ljava/lang/String;
           16   18    11                   mapId  I
    Signature: (Lorg/h2/mvstore/RootReference;Lorg/h2/mvstore/MVStore$ChunkIdsCollector;Ljava/util/concurrent/ThreadPoolExecutor;Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/Set<Ljava/lang/Long;>;)V
    MethodParameters:
                        Name  Flags
      rootReference           
      collector               
      executorService         
      executingThreadCounter  
      inspectedRoots          

  private org.h2.mvstore.WriteBuffer getWriteBuffer();
    descriptor: ()Lorg/h2/mvstore/WriteBuffer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 1644
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.writeBuffer:Lorg/h2/mvstore/WriteBuffer;
            ifnull 4
         1: .line 1645
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.writeBuffer:Lorg/h2/mvstore/WriteBuffer;
            astore 1 /* buff */
        start local 1 // org.h2.mvstore.WriteBuffer buff
         2: .line 1646
            aload 1 /* buff */
            invokevirtual org.h2.mvstore.WriteBuffer.clear:()Lorg/h2/mvstore/WriteBuffer;
            pop
         3: .line 1647
            goto 5
        end local 1 // org.h2.mvstore.WriteBuffer buff
         4: .line 1648
      StackMap locals:
      StackMap stack:
            new org.h2.mvstore.WriteBuffer
            dup
            invokespecial org.h2.mvstore.WriteBuffer.<init>:()V
            astore 1 /* buff */
        start local 1 // org.h2.mvstore.WriteBuffer buff
         5: .line 1650
      StackMap locals: org.h2.mvstore.WriteBuffer
      StackMap stack:
            aload 1 /* buff */
            areturn
        end local 1 // org.h2.mvstore.WriteBuffer buff
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/h2/mvstore/MVStore;
            2    4     1  buff  Lorg/h2/mvstore/WriteBuffer;
            5    6     1  buff  Lorg/h2/mvstore/WriteBuffer;

  private void releaseWriteBuffer(org.h2.mvstore.WriteBuffer);
    descriptor: (Lorg/h2/mvstore/WriteBuffer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // org.h2.mvstore.WriteBuffer buff
         0: .line 1660
            aload 1 /* buff */
            invokevirtual org.h2.mvstore.WriteBuffer.capacity:()I
            ldc 4194304
            if_icmpgt 2
         1: .line 1661
            aload 0 /* this */
            aload 1 /* buff */
            putfield org.h2.mvstore.MVStore.writeBuffer:Lorg/h2/mvstore/WriteBuffer;
         2: .line 1663
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.h2.mvstore.WriteBuffer buff
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/mvstore/MVStore;
            0    3     1  buff  Lorg/h2/mvstore/WriteBuffer;
    MethodParameters:
      Name  Flags
      buff  

  private boolean canOverwriteChunk(org.h2.mvstore.Chunk, long);
    descriptor: (Lorg/h2/mvstore/Chunk;J)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // org.h2.mvstore.Chunk c
        start local 2 // long time
         0: .line 1666
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.retentionTime:I
            iflt 5
         1: .line 1667
            aload 1 /* c */
            getfield org.h2.mvstore.Chunk.time:J
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.retentionTime:I
            i2l
            ladd
            lload 2 /* time */
            lcmp
            ifle 3
         2: .line 1668
            iconst_0
            ireturn
         3: .line 1670
      StackMap locals:
      StackMap stack:
            aload 1 /* c */
            getfield org.h2.mvstore.Chunk.unused:J
            lconst_0
            lcmp
            ifeq 4
            aload 1 /* c */
            getfield org.h2.mvstore.Chunk.unused:J
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.retentionTime:I
            iconst_2
            idiv
            i2l
            ladd
            lload 2 /* time */
            lcmp
            ifle 5
         4: .line 1671
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         5: .line 1674
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // long time
        end local 1 // org.h2.mvstore.Chunk c
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/h2/mvstore/MVStore;
            0    6     1     c  Lorg/h2/mvstore/Chunk;
            0    6     2  time  J
    MethodParameters:
      Name  Flags
      c     
      time  

  private long getTimeSinceCreation();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 1678
            lconst_0
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.getTimeAbsolute:()J
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.creationTime:J
            lsub
            invokestatic java.lang.Math.max:(JJ)J
            lreturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/MVStore;

  private long getTimeAbsolute();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 1682
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 1 /* now */
        start local 1 // long now
         1: .line 1683
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastTimeAbsolute:J
            lconst_0
            lcmp
            ifeq 4
            lload 1 /* now */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastTimeAbsolute:J
            lcmp
            ifge 4
         2: .line 1687
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastTimeAbsolute:J
            lstore 1 /* now */
         3: .line 1688
            goto 5
         4: .line 1689
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            lload 1 /* now */
            putfield org.h2.mvstore.MVStore.lastTimeAbsolute:J
         5: .line 1691
      StackMap locals:
      StackMap stack:
            lload 1 /* now */
            lreturn
        end local 1 // long now
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/h2/mvstore/MVStore;
            1    6     1   now  J

  private void applyFreedSpace();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 1701
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* modified */
        start local 1 // java.util.ArrayList modified
         1: .line 1702
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.freedPageSpace:Ljava/util/Map;
            dup
            astore 2
            monitorenter
         2: .line 1703
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.freedPageSpace:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 13
      StackMap locals: org.h2.mvstore.MVStore java.util.ArrayList java.util.Map top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 3 /* f */
        start local 3 // org.h2.mvstore.Chunk f
         4: .line 1704
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            aload 3 /* f */
            getfield org.h2.mvstore.Chunk.id:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 5 /* c */
        start local 5 // org.h2.mvstore.Chunk c
         5: .line 1705
            aload 5 /* c */
            ifnull 13
         6: .line 1706
            aload 5 /* c */
            dup
            getfield org.h2.mvstore.Chunk.maxLenLive:J
            aload 3 /* f */
            getfield org.h2.mvstore.Chunk.maxLenLive:J
            ladd
            putfield org.h2.mvstore.Chunk.maxLenLive:J
         7: .line 1707
            aload 5 /* c */
            dup
            getfield org.h2.mvstore.Chunk.pageCountLive:I
            aload 3 /* f */
            getfield org.h2.mvstore.Chunk.pageCountLive:I
            iadd
            putfield org.h2.mvstore.Chunk.pageCountLive:I
         8: .line 1708
            aload 5 /* c */
            getfield org.h2.mvstore.Chunk.pageCountLive:I
            ifge 10
            aload 5 /* c */
            getfield org.h2.mvstore.Chunk.pageCountLive:I
            ldc -10000000
            if_icmple 10
         9: .line 1710
            aload 5 /* c */
            iconst_0
            putfield org.h2.mvstore.Chunk.pageCountLive:I
        10: .line 1712
      StackMap locals: org.h2.mvstore.MVStore java.util.ArrayList java.util.Map org.h2.mvstore.Chunk java.util.Iterator org.h2.mvstore.Chunk
      StackMap stack:
            aload 5 /* c */
            getfield org.h2.mvstore.Chunk.maxLenLive:J
            lconst_0
            lcmp
            ifge 12
            aload 5 /* c */
            getfield org.h2.mvstore.Chunk.maxLenLive:J
            ldc -10000000
            lcmp
            ifle 12
        11: .line 1714
            aload 5 /* c */
            lconst_0
            putfield org.h2.mvstore.Chunk.maxLenLive:J
        12: .line 1716
      StackMap locals:
      StackMap stack:
            aload 1 /* modified */
            aload 5 /* c */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // org.h2.mvstore.Chunk c
        end local 3 // org.h2.mvstore.Chunk f
        13: .line 1703
      StackMap locals: org.h2.mvstore.MVStore java.util.ArrayList java.util.Map top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        14: .line 1719
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.freedPageSpace:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
        15: .line 1702
            aload 2
            monitorexit
        16: goto 19
      StackMap locals: org.h2.mvstore.MVStore java.util.ArrayList java.util.Map
      StackMap stack: java.lang.Throwable
        17: aload 2
            monitorexit
        18: athrow
        19: .line 1721
      StackMap locals:
      StackMap stack:
            aload 1 /* modified */
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 21
        20: .line 1722
            goto 27
        21: .line 1724
      StackMap locals:
      StackMap stack:
            aload 1 /* modified */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 24
      StackMap locals: org.h2.mvstore.MVStore java.util.ArrayList top java.util.Iterator
      StackMap stack:
        22: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 2 /* c */
        start local 2 // org.h2.mvstore.Chunk c
        23: .line 1725
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            aload 2 /* c */
            getfield org.h2.mvstore.Chunk.id:I
            invokestatic org.h2.mvstore.Chunk.getMetaKey:(I)Ljava/lang/String;
            aload 2 /* c */
            invokevirtual org.h2.mvstore.Chunk.asString:()Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 2 // org.h2.mvstore.Chunk c
        24: .line 1724
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        25: .line 1727
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
        end local 1 // java.util.ArrayList modified
        26: .line 1700
            goto 0
        27: .line 1729
      StackMap locals: org.h2.mvstore.MVStore
      StackMap stack:
            return
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   28     0      this  Lorg/h2/mvstore/MVStore;
            1   26     1  modified  Ljava/util/ArrayList<Lorg/h2/mvstore/Chunk;>;
            4   13     3         f  Lorg/h2/mvstore/Chunk;
            5   13     5         c  Lorg/h2/mvstore/Chunk;
           23   24     2         c  Lorg/h2/mvstore/Chunk;
      Exception table:
        from    to  target  type
           2    16      17  any
          17    18      17  any

  private void shrinkFileIfPossible(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // int minPercent
         0: .line 1738
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.isReadOnly:()Z
            ifeq 2
         1: .line 1739
            return
         2: .line 1741
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.getFileLengthInUse:()J
            lstore 2 /* end */
        start local 2 // long end
         3: .line 1742
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.size:()J
            lstore 4 /* fileSize */
        start local 4 // long fileSize
         4: .line 1743
            lload 2 /* end */
            lload 4 /* fileSize */
            lcmp
            iflt 6
         5: .line 1744
            return
         6: .line 1746
      StackMap locals: long long
      StackMap stack:
            iload 1 /* minPercent */
            ifle 8
            lload 4 /* fileSize */
            lload 2 /* end */
            lsub
            ldc 4096
            lcmp
            ifge 8
         7: .line 1747
            return
         8: .line 1749
      StackMap locals:
      StackMap stack:
            ldc 100
            lload 2 /* end */
            ldc 100
            lmul
            lload 4 /* fileSize */
            ldiv
            lsub
            l2i
            istore 6 /* savedPercent */
        start local 6 // int savedPercent
         9: .line 1750
            iload 6 /* savedPercent */
            iload 1 /* minPercent */
            if_icmpge 11
        10: .line 1751
            return
        11: .line 1753
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.isOpenOrStopping:()Z
            ifeq 13
        12: .line 1754
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.sync:()V
        13: .line 1756
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            lload 2 /* end */
            invokevirtual org.h2.mvstore.FileStore.truncate:(J)V
        14: .line 1757
            return
        end local 6 // int savedPercent
        end local 4 // long fileSize
        end local 2 // long end
        end local 1 // int minPercent
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0          this  Lorg/h2/mvstore/MVStore;
            0   15     1    minPercent  I
            3   15     2           end  J
            4   15     4      fileSize  J
            9   15     6  savedPercent  I
    MethodParameters:
            Name  Flags
      minPercent  

  private long getFileLengthInUse();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 1765
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.getFileLengthInUse:()J
            lstore 1 /* result */
        start local 1 // long result
         1: .line 1766
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 2
            lload 1 /* result */
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.measureFileLengthInUse:()J
            lcmp
            ifeq 2
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            lload 1 /* result */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.measureFileLengthInUse:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 1767
      StackMap locals: long
      StackMap stack:
            lload 1 /* result */
            lreturn
        end local 1 // long result
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/h2/mvstore/MVStore;
            1    3     1  result  J

  private long measureFileLengthInUse();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 1771
            ldc 2
            lstore 1 /* size */
        start local 1 // long size
         1: .line 1772
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: org.h2.mvstore.MVStore long top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 3 /* c */
        start local 3 // org.h2.mvstore.Chunk c
         3: .line 1773
            aload 3 /* c */
            getfield org.h2.mvstore.Chunk.len:I
            ldc 2147483647
            if_icmpeq 5
         4: .line 1774
            lload 1 /* size */
            aload 3 /* c */
            getfield org.h2.mvstore.Chunk.block:J
            aload 3 /* c */
            getfield org.h2.mvstore.Chunk.len:I
            i2l
            ladd
            invokestatic java.lang.Math.max:(JJ)J
            lstore 1 /* size */
        end local 3 // org.h2.mvstore.Chunk c
         5: .line 1772
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 1777
            lload 1 /* size */
            ldc 4096
            lmul
            lreturn
        end local 1 // long size
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/h2/mvstore/MVStore;
            1    7     1  size  J
            3    5     3     c  Lorg/h2/mvstore/Chunk;

  public boolean hasUnsavedChanges();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 1786
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.metaChanged:Z
            ifeq 2
         1: .line 1787
            iconst_1
            ireturn
         2: .line 1789
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 7
      StackMap locals: org.h2.mvstore.MVStore top java.util.Iterator
      StackMap stack:
         3: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.MVMap
            astore 1 /* m */
        start local 1 // org.h2.mvstore.MVMap m
         4: .line 1790
            aload 1 /* m */
            invokevirtual org.h2.mvstore.MVMap.isClosed:()Z
            ifne 7
         5: .line 1791
            aload 1 /* m */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastStoredVersion:J
            invokevirtual org.h2.mvstore.MVMap.hasChangesSince:(J)Z
            ifeq 7
         6: .line 1792
            iconst_1
            ireturn
        end local 1 // org.h2.mvstore.MVMap m
         7: .line 1789
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 1796
            iconst_0
            ireturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/h2/mvstore/MVStore;
            4    7     1     m  Lorg/h2/mvstore/MVMap<**>;

  private boolean hasUnsavedChangesInternal();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 1800
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastStoredVersion:J
            invokevirtual org.h2.mvstore.MVMap.hasChangesSince:(J)Z
            ifeq 2
         1: .line 1801
            iconst_1
            ireturn
         2: .line 1803
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.hasUnsavedChanges:()Z
            ireturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/mvstore/MVStore;

  private org.h2.mvstore.Chunk readChunkHeader(long);
    descriptor: (J)Lorg/h2/mvstore/Chunk;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // long block
         0: .line 1807
            lload 1 /* block */
            ldc 4096
            lmul
            lstore 3 /* p */
        start local 3 // long p
         1: .line 1808
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            lload 3 /* p */
            sipush 1024
            invokevirtual org.h2.mvstore.FileStore.readFully:(JI)Ljava/nio/ByteBuffer;
            astore 5 /* buff */
        start local 5 // java.nio.ByteBuffer buff
         2: .line 1809
            aload 5 /* buff */
            lload 3 /* p */
            invokestatic org.h2.mvstore.Chunk.readChunkHeader:(Ljava/nio/ByteBuffer;J)Lorg/h2/mvstore/Chunk;
            areturn
        end local 5 // java.nio.ByteBuffer buff
        end local 3 // long p
        end local 1 // long block
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/h2/mvstore/MVStore;
            0    3     1  block  J
            1    3     3      p  J
            2    3     5   buff  Ljava/nio/ByteBuffer;
    MethodParameters:
       Name  Flags
      block  

  public boolean compactRewriteFully();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=10, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 1818
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1820
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
         2: .line 1821
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            ifnonnull 5
         3: .line 1845
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         4: .line 1823
            iconst_0
            ireturn
         5: .line 1825
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 20
      StackMap locals: org.h2.mvstore.MVStore top java.util.Iterator
      StackMap stack:
         6: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.MVMap
            astore 1 /* m */
        start local 1 // org.h2.mvstore.MVMap m
         7: .line 1827
            aload 1 /* m */
            astore 3 /* map */
        start local 3 // org.h2.mvstore.MVMap map
         8: .line 1828
            aload 3 /* map */
            aconst_null
            invokevirtual org.h2.mvstore.MVMap.cursor:(Ljava/lang/Object;)Lorg/h2/mvstore/Cursor;
            astore 4 /* cursor */
        start local 4 // org.h2.mvstore.Cursor cursor
         9: .line 1829
            aconst_null
            astore 5 /* lastPage */
        start local 5 // org.h2.mvstore.Page lastPage
        10: .line 1830
            goto 19
        11: .line 1831
      StackMap locals: org.h2.mvstore.MVStore org.h2.mvstore.MVMap java.util.Iterator org.h2.mvstore.MVMap org.h2.mvstore.Cursor org.h2.mvstore.Page
      StackMap stack:
            aload 4 /* cursor */
            invokevirtual org.h2.mvstore.Cursor.next:()Ljava/lang/Object;
            pop
        12: .line 1832
            aload 4 /* cursor */
            invokevirtual org.h2.mvstore.Cursor.getPage:()Lorg/h2/mvstore/Page;
            astore 6 /* p */
        start local 6 // org.h2.mvstore.Page p
        13: .line 1833
            aload 6 /* p */
            aload 5 /* lastPage */
            if_acmpne 15
        14: .line 1834
            goto 19
        15: .line 1836
      StackMap locals: org.h2.mvstore.Page
      StackMap stack:
            aload 6 /* p */
            iconst_0
            invokevirtual org.h2.mvstore.Page.getKey:(I)Ljava/lang/Object;
            astore 7 /* k */
        start local 7 // java.lang.Object k
        16: .line 1837
            aload 6 /* p */
            iconst_0
            invokevirtual org.h2.mvstore.Page.getValue:(I)Ljava/lang/Object;
            astore 8 /* v */
        start local 8 // java.lang.Object v
        17: .line 1838
            aload 3 /* map */
            aload 7 /* k */
            aload 8 /* v */
            invokevirtual org.h2.mvstore.MVMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 1839
            aload 6 /* p */
            astore 5 /* lastPage */
        end local 8 // java.lang.Object v
        end local 7 // java.lang.Object k
        end local 6 // org.h2.mvstore.Page p
        19: .line 1830
      StackMap locals:
      StackMap stack:
            aload 4 /* cursor */
            invokevirtual org.h2.mvstore.Cursor.hasNext:()Z
            ifne 11
        end local 5 // org.h2.mvstore.Page lastPage
        end local 4 // org.h2.mvstore.Cursor cursor
        end local 3 // org.h2.mvstore.MVMap map
        end local 1 // org.h2.mvstore.MVMap m
        20: .line 1825
      StackMap locals: org.h2.mvstore.MVStore top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        21: .line 1842
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.commit:()J
            pop2
        22: .line 1845
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        23: .line 1843
            iconst_1
            ireturn
        24: .line 1844
      StackMap locals: org.h2.mvstore.MVStore
      StackMap stack: java.lang.Throwable
            astore 9
        25: .line 1845
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        26: .line 1846
            aload 9
            athrow
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   27     0      this  Lorg/h2/mvstore/MVStore;
            7   20     1         m  Lorg/h2/mvstore/MVMap<**>;
            8   20     3       map  Lorg/h2/mvstore/MVMap<Ljava/lang/Object;Ljava/lang/Object;>;
            9   20     4    cursor  Lorg/h2/mvstore/Cursor<Ljava/lang/Object;Ljava/lang/Object;>;
           10   20     5  lastPage  Lorg/h2/mvstore/Page;
           13   19     6         p  Lorg/h2/mvstore/Page;
           16   19     7         k  Ljava/lang/Object;
           17   19     8         v  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     3      24  any
           5    22      24  any

  public void compactMoveChunks();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 1854
            aload 0 /* this */
            bipush 100
            ldc 9223372036854775807
            invokevirtual org.h2.mvstore.MVStore.compactMoveChunks:(IJ)V
         1: .line 1855
            return
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/mvstore/MVStore;

  public void compactMoveChunks(int, long);
    descriptor: (IJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // int targetFillRate
        start local 2 // long moveSize
         0: .line 1868
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1870
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
         2: .line 1871
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            ifnull 22
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.reuseSpace:Z
            ifeq 22
         3: .line 1872
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.retentionTime:I
            istore 4 /* oldRetentionTime */
        start local 4 // int oldRetentionTime
         4: .line 1873
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.reuseSpace:Z
            istore 5 /* oldReuse */
        start local 5 // boolean oldReuse
         5: .line 1875
            aload 0 /* this */
            iconst_m1
            putfield org.h2.mvstore.MVStore.retentionTime:I
         6: .line 1876
            aload 0 /* this */
            iconst_0
            invokevirtual org.h2.mvstore.MVStore.freeUnusedChunks:(Z)V
         7: .line 1877
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.getFillRate:()I
            iload 1 /* targetFillRate */
            if_icmpgt 16
         8: .line 1878
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.getFirstFree:()J
            ldc 4096
            ldiv
            lstore 6 /* start */
        start local 6 // long start
         9: .line 1879
            aload 0 /* this */
            lload 6 /* start */
            lload 2 /* moveSize */
            invokevirtual org.h2.mvstore.MVStore.findChunksToMove:(JJ)Ljava/util/ArrayList;
            astore 8 /* move */
        start local 8 // java.util.ArrayList move
        10: .line 1880
            aload 0 /* this */
            aload 8 /* move */
            invokevirtual org.h2.mvstore.MVStore.compactMoveChunks:(Ljava/util/ArrayList;)V
        end local 8 // java.util.ArrayList move
        end local 6 // long start
        11: .line 1882
            goto 16
      StackMap locals: org.h2.mvstore.MVStore int long int int
      StackMap stack: java.lang.Throwable
        12: astore 9
        13: .line 1883
            aload 0 /* this */
            iload 5 /* oldReuse */
            putfield org.h2.mvstore.MVStore.reuseSpace:Z
        14: .line 1884
            aload 0 /* this */
            iload 4 /* oldRetentionTime */
            putfield org.h2.mvstore.MVStore.retentionTime:I
        15: .line 1885
            aload 9
            athrow
        16: .line 1883
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 5 /* oldReuse */
            putfield org.h2.mvstore.MVStore.reuseSpace:Z
        17: .line 1884
            aload 0 /* this */
            iload 4 /* oldRetentionTime */
            putfield org.h2.mvstore.MVStore.retentionTime:I
        end local 5 // boolean oldReuse
        end local 4 // int oldRetentionTime
        18: .line 1887
            goto 22
      StackMap locals: org.h2.mvstore.MVStore int long
      StackMap stack: java.lang.Throwable
        19: astore 10
        20: .line 1888
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        21: .line 1889
            aload 10
            athrow
        22: .line 1888
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        23: .line 1890
            return
        end local 2 // long moveSize
        end local 1 // int targetFillRate
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   24     0              this  Lorg/h2/mvstore/MVStore;
            0   24     1    targetFillRate  I
            0   24     2          moveSize  J
            4   18     4  oldRetentionTime  I
            5   18     5          oldReuse  Z
            9   11     6             start  J
           10   11     8              move  Ljava/util/ArrayList<Lorg/h2/mvstore/Chunk;>;
      Exception table:
        from    to  target  type
           5    12      12  any
           1    19      19  any
    MethodParameters:
                Name  Flags
      targetFillRate  
      moveSize        

  private java.util.ArrayList<org.h2.mvstore.Chunk> findChunksToMove(long, long);
    descriptor: (JJ)Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=13, args_size=3
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // long startBlock
        start local 3 // long moveSize
         0: .line 1893
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* move */
        start local 5 // java.util.ArrayList move
         1: .line 1894
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 5
      StackMap locals: org.h2.mvstore.MVStore long long java.util.ArrayList top java.util.Iterator
      StackMap stack:
         2: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 6 /* c */
        start local 6 // org.h2.mvstore.Chunk c
         3: .line 1895
            aload 6 /* c */
            getfield org.h2.mvstore.Chunk.block:J
            lload 1 /* startBlock */
            lcmp
            ifle 5
         4: .line 1896
            aload 5 /* move */
            aload 6 /* c */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // org.h2.mvstore.Chunk c
         5: .line 1894
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 1900
            aload 5 /* move */
            new org.h2.mvstore.MVStore$2
            dup
            aload 0 /* this */
            invokespecial org.h2.mvstore.MVStore$2.<init>:(Lorg/h2/mvstore/MVStore;)V
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
         7: .line 1907
            iconst_0
            istore 6 /* count */
        start local 6 // int count
         8: .line 1908
            lconst_0
            lstore 7 /* size */
        start local 7 // long size
         9: .line 1909
            aload 5 /* move */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 10
            goto 16
      StackMap locals: org.h2.mvstore.MVStore long long java.util.ArrayList int long top java.util.Iterator
      StackMap stack:
        10: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 9 /* c */
        start local 9 // org.h2.mvstore.Chunk c
        11: .line 1910
            aload 9 /* c */
            getfield org.h2.mvstore.Chunk.len:I
            i2l
            ldc 4096
            lmul
            lstore 11 /* chunkSize */
        start local 11 // long chunkSize
        12: .line 1911
            lload 7 /* size */
            lload 11 /* chunkSize */
            ladd
            lstore 7 /* size */
        13: .line 1912
            lload 7 /* size */
            lload 3 /* moveSize */
            lcmp
            ifle 15
        14: .line 1913
            goto 19
        15: .line 1915
      StackMap locals: org.h2.mvstore.MVStore long long java.util.ArrayList int long org.h2.mvstore.Chunk java.util.Iterator long
      StackMap stack:
            iinc 6 /* count */ 1
        end local 11 // long chunkSize
        end local 9 // org.h2.mvstore.Chunk c
        16: .line 1909
      StackMap locals: org.h2.mvstore.MVStore long long java.util.ArrayList int long top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        17: .line 1919
            goto 19
        18: .line 1920
      StackMap locals: org.h2.mvstore.MVStore long long java.util.ArrayList int long
      StackMap stack:
            aload 5 /* move */
            iconst_1
            invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
            pop
        19: .line 1919
      StackMap locals:
      StackMap stack:
            aload 5 /* move */
            invokevirtual java.util.ArrayList.size:()I
            iload 6 /* count */
            if_icmple 20
            aload 5 /* move */
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            if_icmpgt 18
        20: .line 1923
      StackMap locals:
      StackMap stack:
            aload 5 /* move */
            areturn
        end local 7 // long size
        end local 6 // int count
        end local 5 // java.util.ArrayList move
        end local 3 // long moveSize
        end local 1 // long startBlock
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0        this  Lorg/h2/mvstore/MVStore;
            0   21     1  startBlock  J
            0   21     3    moveSize  J
            1   21     5        move  Ljava/util/ArrayList<Lorg/h2/mvstore/Chunk;>;
            3    5     6           c  Lorg/h2/mvstore/Chunk;
            8   21     6       count  I
            9   21     7        size  J
           11   16     9           c  Lorg/h2/mvstore/Chunk;
           12   16    11   chunkSize  J
    Signature: (JJ)Ljava/util/ArrayList<Lorg/h2/mvstore/Chunk;>;
    MethodParameters:
            Name  Flags
      startBlock  
      moveSize    

  private void compactMoveChunks(java.util.ArrayList<org.h2.mvstore.Chunk>);
    descriptor: (Ljava/util/ArrayList;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // java.util.ArrayList move
         0: .line 1927
            aload 1 /* move */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: org.h2.mvstore.MVStore java.util.ArrayList top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 2 /* c */
        start local 2 // org.h2.mvstore.Chunk c
         2: .line 1928
            aload 0 /* this */
            aload 2 /* c */
            iconst_1
            invokevirtual org.h2.mvstore.MVStore.moveChunk:(Lorg/h2/mvstore/Chunk;Z)V
        end local 2 // org.h2.mvstore.Chunk c
         3: .line 1927
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 1932
            aload 0 /* this */
            iconst_0
            putfield org.h2.mvstore.MVStore.reuseSpace:Z
         5: .line 1933
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.commit:()J
            pop2
         6: .line 1934
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.sync:()V
         7: .line 1936
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            astore 2 /* chunk */
        start local 2 // org.h2.mvstore.Chunk chunk
         8: .line 1939
            aload 0 /* this */
            iconst_1
            putfield org.h2.mvstore.MVStore.reuseSpace:Z
         9: .line 1940
            aload 1 /* move */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 13
      StackMap locals: org.h2.mvstore.MVStore java.util.ArrayList org.h2.mvstore.Chunk top java.util.Iterator
      StackMap stack:
        10: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 3 /* c */
        start local 3 // org.h2.mvstore.Chunk c
        11: .line 1942
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            aload 3 /* c */
            getfield org.h2.mvstore.Chunk.id:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.concurrent.ConcurrentHashMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 13
        12: .line 1943
            aload 0 /* this */
            aload 3 /* c */
            iconst_0
            invokevirtual org.h2.mvstore.MVStore.moveChunk:(Lorg/h2/mvstore/Chunk;Z)V
        end local 3 // org.h2.mvstore.Chunk c
        13: .line 1940
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        14: .line 1948
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.commit:()J
            pop2
        15: .line 1949
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.sync:()V
        16: .line 1950
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            aload 2 /* chunk */
            getfield org.h2.mvstore.Chunk.id:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.concurrent.ConcurrentHashMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 19
        17: .line 1951
            aload 0 /* this */
            aload 2 /* chunk */
            iconst_0
            invokevirtual org.h2.mvstore.MVStore.moveChunk:(Lorg/h2/mvstore/Chunk;Z)V
        18: .line 1952
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.commit:()J
            pop2
        19: .line 1954
      StackMap locals: org.h2.mvstore.MVStore java.util.ArrayList org.h2.mvstore.Chunk
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual org.h2.mvstore.MVStore.shrinkFileIfPossible:(I)V
        20: .line 1955
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.sync:()V
        21: .line 1956
            return
        end local 2 // org.h2.mvstore.Chunk chunk
        end local 1 // java.util.ArrayList move
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   22     0   this  Lorg/h2/mvstore/MVStore;
            0   22     1   move  Ljava/util/ArrayList<Lorg/h2/mvstore/Chunk;>;
            2    3     2      c  Lorg/h2/mvstore/Chunk;
            8   22     2  chunk  Lorg/h2/mvstore/Chunk;
           11   13     3      c  Lorg/h2/mvstore/Chunk;
    Signature: (Ljava/util/ArrayList<Lorg/h2/mvstore/Chunk;>;)V
    MethodParameters:
      Name  Flags
      move  

  private void moveChunk(org.h2.mvstore.Chunk, boolean);
    descriptor: (Lorg/h2/mvstore/Chunk;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // org.h2.mvstore.Chunk c
        start local 2 // boolean toTheEnd
         0: .line 1959
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.getWriteBuffer:()Lorg/h2/mvstore/WriteBuffer;
            astore 3 /* buff */
        start local 3 // org.h2.mvstore.WriteBuffer buff
         1: .line 1960
            aload 1 /* c */
            getfield org.h2.mvstore.Chunk.block:J
            ldc 4096
            lmul
            lstore 4 /* start */
        start local 4 // long start
         2: .line 1961
            aload 1 /* c */
            getfield org.h2.mvstore.Chunk.len:I
            sipush 4096
            imul
            istore 6 /* length */
        start local 6 // int length
         3: .line 1962
            aload 3 /* buff */
            iload 6 /* length */
            invokevirtual org.h2.mvstore.WriteBuffer.limit:(I)Lorg/h2/mvstore/WriteBuffer;
            pop
         4: .line 1963
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            lload 4 /* start */
            iload 6 /* length */
            invokevirtual org.h2.mvstore.FileStore.readFully:(JI)Ljava/nio/ByteBuffer;
            astore 7 /* readBuff */
        start local 7 // java.nio.ByteBuffer readBuff
         5: .line 1964
            aload 7 /* readBuff */
            lload 4 /* start */
            invokestatic org.h2.mvstore.Chunk.readChunkHeader:(Ljava/nio/ByteBuffer;J)Lorg/h2/mvstore/Chunk;
            pop
         6: .line 1965
            aload 7 /* readBuff */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 8 /* chunkHeaderLen */
        start local 8 // int chunkHeaderLen
         7: .line 1966
            aload 3 /* buff */
            iload 8 /* chunkHeaderLen */
            invokevirtual org.h2.mvstore.WriteBuffer.position:(I)Lorg/h2/mvstore/WriteBuffer;
            pop
         8: .line 1967
            aload 3 /* buff */
            aload 7 /* readBuff */
            invokevirtual org.h2.mvstore.WriteBuffer.put:(Ljava/nio/ByteBuffer;)Lorg/h2/mvstore/WriteBuffer;
            pop
         9: .line 1968
            aload 0 /* this */
            iload 6 /* length */
            iload 2 /* toTheEnd */
            invokevirtual org.h2.mvstore.MVStore.allocateFileSpace:(IZ)J
            lstore 9 /* pos */
        start local 9 // long pos
        10: .line 1969
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            lload 4 /* start */
            iload 6 /* length */
            invokevirtual org.h2.mvstore.FileStore.free:(JI)V
        11: .line 1970
            aload 1 /* c */
            lload 9 /* pos */
            ldc 4096
            ldiv
            putfield org.h2.mvstore.Chunk.block:J
        12: .line 1971
            aload 1 /* c */
            lconst_0
            putfield org.h2.mvstore.Chunk.next:J
        13: .line 1972
            aload 3 /* buff */
            iconst_0
            invokevirtual org.h2.mvstore.WriteBuffer.position:(I)Lorg/h2/mvstore/WriteBuffer;
            pop
        14: .line 1973
            aload 1 /* c */
            aload 3 /* buff */
            iload 8 /* chunkHeaderLen */
            invokevirtual org.h2.mvstore.Chunk.writeChunkHeader:(Lorg/h2/mvstore/WriteBuffer;I)V
        15: .line 1974
            aload 3 /* buff */
            iload 6 /* length */
            sipush 128
            isub
            invokevirtual org.h2.mvstore.WriteBuffer.position:(I)Lorg/h2/mvstore/WriteBuffer;
            pop
        16: .line 1975
            aload 3 /* buff */
            aload 1 /* c */
            invokevirtual org.h2.mvstore.Chunk.getFooterBytes:()[B
            invokevirtual org.h2.mvstore.WriteBuffer.put:([B)Lorg/h2/mvstore/WriteBuffer;
            pop
        17: .line 1976
            aload 3 /* buff */
            iconst_0
            invokevirtual org.h2.mvstore.WriteBuffer.position:(I)Lorg/h2/mvstore/WriteBuffer;
            pop
        18: .line 1977
            aload 0 /* this */
            lload 9 /* pos */
            aload 3 /* buff */
            invokevirtual org.h2.mvstore.WriteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual org.h2.mvstore.MVStore.write:(JLjava/nio/ByteBuffer;)V
        19: .line 1978
            aload 0 /* this */
            aload 3 /* buff */
            invokevirtual org.h2.mvstore.MVStore.releaseWriteBuffer:(Lorg/h2/mvstore/WriteBuffer;)V
        20: .line 1979
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            aload 1 /* c */
            getfield org.h2.mvstore.Chunk.id:I
            invokestatic org.h2.mvstore.Chunk.getMetaKey:(I)Ljava/lang/String;
            aload 1 /* c */
            invokevirtual org.h2.mvstore.Chunk.asString:()Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        21: .line 1980
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
        22: .line 1981
            return
        end local 9 // long pos
        end local 8 // int chunkHeaderLen
        end local 7 // java.nio.ByteBuffer readBuff
        end local 6 // int length
        end local 4 // long start
        end local 3 // org.h2.mvstore.WriteBuffer buff
        end local 2 // boolean toTheEnd
        end local 1 // org.h2.mvstore.Chunk c
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   23     0            this  Lorg/h2/mvstore/MVStore;
            0   23     1               c  Lorg/h2/mvstore/Chunk;
            0   23     2        toTheEnd  Z
            1   23     3            buff  Lorg/h2/mvstore/WriteBuffer;
            2   23     4           start  J
            3   23     6          length  I
            5   23     7        readBuff  Ljava/nio/ByteBuffer;
            7   23     8  chunkHeaderLen  I
           10   23     9             pos  J
    MethodParameters:
          Name  Flags
      c         
      toTheEnd  

  private long allocateFileSpace(int, boolean);
    descriptor: (IZ)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // int length
        start local 2 // boolean atTheEnd
         0: .line 1985
            iload 2 /* atTheEnd */
            ifeq 4
         1: .line 1986
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.getFileLengthInUse:()J
            lstore 3 /* filePos */
        start local 3 // long filePos
         2: .line 1987
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            lload 3 /* filePos */
            iload 1 /* length */
            invokevirtual org.h2.mvstore.FileStore.markUsed:(JI)V
         3: .line 1988
            goto 5
        end local 3 // long filePos
         4: .line 1989
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            iload 1 /* length */
            invokevirtual org.h2.mvstore.FileStore.allocate:(I)J
            lstore 3 /* filePos */
        start local 3 // long filePos
         5: .line 1991
      StackMap locals: long
      StackMap stack:
            lload 3 /* filePos */
            lreturn
        end local 3 // long filePos
        end local 2 // boolean atTheEnd
        end local 1 // int length
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/h2/mvstore/MVStore;
            0    6     1    length  I
            0    6     2  atTheEnd  Z
            2    4     3   filePos  J
            5    6     3   filePos  J
    MethodParameters:
          Name  Flags
      length    
      atTheEnd  

  public void sync();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 1999
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
         1: .line 2000
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            astore 1 /* f */
        start local 1 // org.h2.mvstore.FileStore f
         2: .line 2001
            aload 1 /* f */
            ifnull 4
         3: .line 2002
            aload 1 /* f */
            invokevirtual org.h2.mvstore.FileStore.sync:()V
         4: .line 2004
      StackMap locals: org.h2.mvstore.FileStore
      StackMap stack:
            return
        end local 1 // org.h2.mvstore.FileStore f
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/h2/mvstore/MVStore;
            2    5     1     f  Lorg/h2/mvstore/FileStore;

  public boolean compact(int, int);
    descriptor: (II)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // int targetFillRate
        start local 2 // int write
         0: .line 2025
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.reuseSpace:Z
            ifne 2
         1: .line 2026
            iconst_0
            ireturn
         2: .line 2028
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
         3: .line 2034
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
            ifne 15
         4: .line 2035
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            ldc 10
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:(JLjava/util/concurrent/TimeUnit;)Z
            ifeq 15
         5: .line 2037
            aload 0 /* this */
            iload 1 /* targetFillRate */
            iload 2 /* write */
            invokevirtual org.h2.mvstore.MVStore.findOldChunks:(II)Ljava/util/ArrayList;
            astore 3 /* old */
        start local 3 // java.util.ArrayList old
         6: .line 2038
            aload 3 /* old */
            ifnull 7
            aload 3 /* old */
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 9
         7: .line 2044
      StackMap locals: java.util.ArrayList
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         8: .line 2039
            iconst_0
            ireturn
         9: .line 2041
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* old */
            invokevirtual org.h2.mvstore.MVStore.compactRewrite:(Ljava/lang/Iterable;)V
        10: .line 2044
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        11: .line 2042
            iconst_1
            ireturn
        end local 3 // java.util.ArrayList old
        12: .line 2043
      StackMap locals: org.h2.mvstore.MVStore int int
      StackMap stack: java.lang.Throwable
            astore 4
        13: .line 2044
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        14: .line 2045
            aload 4
            athrow
        15: .line 2047
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        16: .line 2048
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            astore 3 /* e */
        start local 3 // java.lang.InterruptedException e
        17: .line 2049
            new java.lang.RuntimeException
            dup
            aload 3 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.InterruptedException e
        end local 2 // int write
        end local 1 // int targetFillRate
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0            this  Lorg/h2/mvstore/MVStore;
            0   18     1  targetFillRate  I
            0   18     2           write  I
            6   12     3             old  Ljava/util/ArrayList<Lorg/h2/mvstore/Chunk;>;
           17   18     3               e  Ljava/lang/InterruptedException;
      Exception table:
        from    to  target  type
           5     7      12  any
           9    10      12  any
           3     8      16  Class java.lang.InterruptedException
           9    11      16  Class java.lang.InterruptedException
          12    15      16  Class java.lang.InterruptedException
    MethodParameters:
                Name  Flags
      targetFillRate  
      write           

  public int getCurrentFillRate();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2062
            lconst_1
            lstore 1 /* maxLengthSum */
        start local 1 // long maxLengthSum
         1: .line 2063
            lconst_1
            lstore 3 /* maxLengthLiveSum */
        start local 3 // long maxLengthLiveSum
         2: .line 2064
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.getTimeSinceCreation:()J
            lstore 5 /* time */
        start local 5 // long time
         3: .line 2065
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 8
            goto 10
      StackMap locals: org.h2.mvstore.MVStore long long long top java.util.Iterator
      StackMap stack:
         4: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 7 /* c */
        start local 7 // org.h2.mvstore.Chunk c
         5: .line 2066
            lload 1 /* maxLengthSum */
            aload 7 /* c */
            getfield org.h2.mvstore.Chunk.maxLen:J
            ladd
            lstore 1 /* maxLengthSum */
         6: .line 2067
            aload 7 /* c */
            getfield org.h2.mvstore.Chunk.time:J
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.retentionTime:I
            i2l
            ladd
            lload 5 /* time */
            lcmp
            ifle 9
         7: .line 2072
            lload 3 /* maxLengthLiveSum */
            aload 7 /* c */
            getfield org.h2.mvstore.Chunk.maxLen:J
            ladd
            lstore 3 /* maxLengthLiveSum */
         8: .line 2073
            goto 10
         9: .line 2074
      StackMap locals: org.h2.mvstore.MVStore long long long org.h2.mvstore.Chunk java.util.Iterator
      StackMap stack:
            lload 3 /* maxLengthLiveSum */
            aload 7 /* c */
            getfield org.h2.mvstore.Chunk.maxLenLive:J
            ladd
            lstore 3 /* maxLengthLiveSum */
        end local 7 // org.h2.mvstore.Chunk c
        10: .line 2065
      StackMap locals: org.h2.mvstore.MVStore long long long top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        11: .line 2078
            lload 1 /* maxLengthSum */
            lconst_0
            lcmp
            ifgt 13
        12: .line 2080
            lconst_1
            lstore 1 /* maxLengthSum */
        13: .line 2082
      StackMap locals: org.h2.mvstore.MVStore long long long
      StackMap stack:
            ldc 100
            lload 3 /* maxLengthLiveSum */
            lmul
            lload 1 /* maxLengthSum */
            ldiv
            l2i
            istore 7 /* fillRate */
        start local 7 // int fillRate
        14: .line 2083
            iload 7 /* fillRate */
            ireturn
        end local 7 // int fillRate
        end local 5 // long time
        end local 3 // long maxLengthLiveSum
        end local 1 // long maxLengthSum
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   15     0              this  Lorg/h2/mvstore/MVStore;
            1   15     1      maxLengthSum  J
            2   15     3  maxLengthLiveSum  J
            3   15     5              time  J
            5   10     7                 c  Lorg/h2/mvstore/Chunk;
           14   15     7          fillRate  I

  private java.util.ArrayList<org.h2.mvstore.Chunk> findOldChunks(int, int);
    descriptor: (II)Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=15, args_size=3
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // int targetFillRate
        start local 2 // int write
         0: .line 2087
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            ifnonnull 2
         1: .line 2089
            aconst_null
            areturn
         2: .line 2091
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.getTimeSinceCreation:()J
            lstore 3 /* time */
        start local 3 // long time
         3: .line 2092
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.getCurrentFillRate:()I
            istore 5 /* fillRate */
        start local 5 // int fillRate
         4: .line 2093
            iload 5 /* fillRate */
            iload 1 /* targetFillRate */
            if_icmplt 6
         5: .line 2094
            aconst_null
            areturn
         6: .line 2098
      StackMap locals: long int
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* old */
        start local 6 // java.util.ArrayList old
         7: .line 2099
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
            getfield org.h2.mvstore.Chunk.id:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 7 /* last */
        start local 7 // org.h2.mvstore.Chunk last
         8: .line 2100
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 9
            goto 14
      StackMap locals: org.h2.mvstore.MVStore int int long int java.util.ArrayList org.h2.mvstore.Chunk top java.util.Iterator
      StackMap stack:
         9: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 8 /* c */
        start local 8 // org.h2.mvstore.Chunk c
        10: .line 2104
            aload 8 /* c */
            getfield org.h2.mvstore.Chunk.time:J
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.retentionTime:I
            i2l
            ladd
            lload 3 /* time */
            lcmp
            ifgt 14
        11: .line 2105
            aload 7 /* last */
            getfield org.h2.mvstore.Chunk.version:J
            aload 8 /* c */
            getfield org.h2.mvstore.Chunk.version:J
            lsub
            lconst_1
            ladd
            lstore 10 /* age */
        start local 10 // long age
        12: .line 2106
            aload 8 /* c */
            aload 8 /* c */
            invokevirtual org.h2.mvstore.Chunk.getFillRate:()I
            sipush 1000
            imul
            i2l
            lconst_1
            lload 10 /* age */
            invokestatic java.lang.Math.max:(JJ)J
            ldiv
            l2i
            putfield org.h2.mvstore.Chunk.collectPriority:I
        13: .line 2107
            aload 6 /* old */
            aload 8 /* c */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // long age
        end local 8 // org.h2.mvstore.Chunk c
        14: .line 2100
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        15: .line 2110
            aload 6 /* old */
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 17
        16: .line 2111
            aconst_null
            areturn
        17: .line 2115
      StackMap locals: org.h2.mvstore.MVStore int int long int java.util.ArrayList org.h2.mvstore.Chunk
      StackMap stack:
            aload 6 /* old */
            new org.h2.mvstore.MVStore$3
            dup
            aload 0 /* this */
            invokespecial org.h2.mvstore.MVStore$3.<init>:(Lorg/h2/mvstore/MVStore;)V
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
        18: .line 2126
            lconst_0
            lstore 8 /* written */
        start local 8 // long written
        19: .line 2127
            iconst_0
            istore 10 /* chunkCount */
        start local 10 // int chunkCount
        20: .line 2128
            aconst_null
            astore 11 /* move */
        start local 11 // org.h2.mvstore.Chunk move
        21: .line 2129
            aload 6 /* old */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 13
            goto 29
      StackMap locals: org.h2.mvstore.MVStore int int long int java.util.ArrayList org.h2.mvstore.Chunk long int org.h2.mvstore.Chunk top java.util.Iterator
      StackMap stack:
        22: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 12 /* c */
        start local 12 // org.h2.mvstore.Chunk c
        23: .line 2130
            aload 11 /* move */
            ifnull 26
        24: .line 2131
            aload 12 /* c */
            getfield org.h2.mvstore.Chunk.collectPriority:I
            ifle 26
            lload 8 /* written */
            iload 2 /* write */
            i2l
            lcmp
            ifle 26
        25: .line 2132
            goto 30
        26: .line 2135
      StackMap locals: org.h2.mvstore.MVStore int int long int java.util.ArrayList org.h2.mvstore.Chunk long int org.h2.mvstore.Chunk org.h2.mvstore.Chunk java.util.Iterator
      StackMap stack:
            lload 8 /* written */
            aload 12 /* c */
            getfield org.h2.mvstore.Chunk.maxLenLive:J
            ladd
            lstore 8 /* written */
        27: .line 2136
            iinc 10 /* chunkCount */ 1
        28: .line 2137
            aload 12 /* c */
            astore 11 /* move */
        end local 12 // org.h2.mvstore.Chunk c
        29: .line 2129
      StackMap locals: org.h2.mvstore.MVStore int int long int java.util.ArrayList org.h2.mvstore.Chunk long int org.h2.mvstore.Chunk top java.util.Iterator
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        30: .line 2139
      StackMap locals: org.h2.mvstore.MVStore int int long int java.util.ArrayList org.h2.mvstore.Chunk long int org.h2.mvstore.Chunk
      StackMap stack:
            iload 10 /* chunkCount */
            iconst_1
            if_icmpge 32
        31: .line 2140
            aconst_null
            areturn
        32: .line 2143
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 12 /* remove */
        start local 12 // boolean remove
        33: .line 2144
            aload 6 /* old */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 13 /* it */
        start local 13 // java.util.Iterator it
        34: goto 41
        35: .line 2145
      StackMap locals: int java.util.Iterator
      StackMap stack:
            aload 13 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 14 /* c */
        start local 14 // org.h2.mvstore.Chunk c
        36: .line 2146
            aload 11 /* move */
            aload 14 /* c */
            if_acmpne 39
        37: .line 2147
            iconst_1
            istore 12 /* remove */
        38: .line 2148
            goto 41
      StackMap locals: org.h2.mvstore.Chunk
      StackMap stack:
        39: iload 12 /* remove */
            ifeq 41
        40: .line 2149
            aload 13 /* it */
            invokeinterface java.util.Iterator.remove:()V
        end local 14 // org.h2.mvstore.Chunk c
        41: .line 2144
      StackMap locals:
      StackMap stack:
            aload 13 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 35
        end local 13 // java.util.Iterator it
        42: .line 2152
            aload 6 /* old */
            areturn
        end local 12 // boolean remove
        end local 11 // org.h2.mvstore.Chunk move
        end local 10 // int chunkCount
        end local 8 // long written
        end local 7 // org.h2.mvstore.Chunk last
        end local 6 // java.util.ArrayList old
        end local 5 // int fillRate
        end local 3 // long time
        end local 2 // int write
        end local 1 // int targetFillRate
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   43     0            this  Lorg/h2/mvstore/MVStore;
            0   43     1  targetFillRate  I
            0   43     2           write  I
            3   43     3            time  J
            4   43     5        fillRate  I
            7   43     6             old  Ljava/util/ArrayList<Lorg/h2/mvstore/Chunk;>;
            8   43     7            last  Lorg/h2/mvstore/Chunk;
           10   14     8               c  Lorg/h2/mvstore/Chunk;
           12   14    10             age  J
           19   43     8         written  J
           20   43    10      chunkCount  I
           21   43    11            move  Lorg/h2/mvstore/Chunk;
           23   29    12               c  Lorg/h2/mvstore/Chunk;
           33   43    12          remove  Z
           34   42    13              it  Ljava/util/Iterator<Lorg/h2/mvstore/Chunk;>;
           36   41    14               c  Lorg/h2/mvstore/Chunk;
    Signature: (II)Ljava/util/ArrayList<Lorg/h2/mvstore/Chunk;>;
    MethodParameters:
                Name  Flags
      targetFillRate  
      write           

  private void compactRewrite(java.lang.Iterable<org.h2.mvstore.Chunk>);
    descriptor: (Ljava/lang/Iterable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // java.lang.Iterable old
         0: .line 2156
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* set */
        start local 2 // java.util.HashSet set
         1: .line 2157
            aload 1 /* old */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.h2.mvstore.MVStore java.lang.Iterable java.util.HashSet top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 3 /* c */
        start local 3 // org.h2.mvstore.Chunk c
         3: .line 2158
            aload 2 /* set */
            aload 3 /* c */
            getfield org.h2.mvstore.Chunk.id:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // org.h2.mvstore.Chunk c
         4: .line 2157
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 2160
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 10
      StackMap locals:
      StackMap stack:
         6: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.MVMap
            astore 3 /* m */
        start local 3 // org.h2.mvstore.MVMap m
         7: .line 2162
            aload 3 /* m */
            astore 5 /* map */
        start local 5 // org.h2.mvstore.MVMap map
         8: .line 2163
            aload 5 /* map */
            invokevirtual org.h2.mvstore.MVMap.isClosed:()Z
            ifne 10
         9: .line 2164
            aload 5 /* map */
            aload 2 /* set */
            invokevirtual org.h2.mvstore.MVMap.rewrite:(Ljava/util/Set;)V
        end local 5 // org.h2.mvstore.MVMap map
        end local 3 // org.h2.mvstore.MVMap m
        10: .line 2160
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        11: .line 2167
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            aload 2 /* set */
            invokevirtual org.h2.mvstore.MVMap.rewrite:(Ljava/util/Set;)V
        12: .line 2168
            aload 0 /* this */
            iconst_0
            invokevirtual org.h2.mvstore.MVStore.freeUnusedChunks:(Z)V
        13: .line 2169
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.commit:()J
            pop2
        14: .line 2170
            return
        end local 2 // java.util.HashSet set
        end local 1 // java.lang.Iterable old
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lorg/h2/mvstore/MVStore;
            0   15     1   old  Ljava/lang/Iterable<Lorg/h2/mvstore/Chunk;>;
            1   15     2   set  Ljava/util/HashSet<Ljava/lang/Integer;>;
            3    4     3     c  Lorg/h2/mvstore/Chunk;
            7   10     3     m  Lorg/h2/mvstore/MVMap<**>;
            8   10     5   map  Lorg/h2/mvstore/MVMap<Ljava/lang/Object;Ljava/lang/Object;>;
    Signature: (Ljava/lang/Iterable<Lorg/h2/mvstore/Chunk;>;)V
    MethodParameters:
      Name  Flags
      old   

  org.h2.mvstore.Page readPage(org.h2.mvstore.MVMap<?, ?>, long);
    descriptor: (Lorg/h2/mvstore/MVMap;J)Lorg/h2/mvstore/Page;
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // org.h2.mvstore.MVMap map
        start local 2 // long pos
         0: .line 2180
            lload 2 /* pos */
            invokestatic org.h2.mvstore.DataUtils.isPageSaved:(J)Z
            ifne 3
         1: .line 2182
            bipush 6
            ldc "Position 0"
            iconst_0
            anewarray java.lang.Object
         2: .line 2181
            invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
            athrow
         3: .line 2184
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            ifnonnull 4
            aconst_null
            goto 5
      StackMap locals:
      StackMap stack:
         4: aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            lload 2 /* pos */
            invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.get:(J)Ljava/lang/Object;
            checkcast org.h2.mvstore.Page
      StackMap locals:
      StackMap stack: org.h2.mvstore.Page
         5: astore 4 /* p */
        start local 4 // org.h2.mvstore.Page p
         6: .line 2185
            aload 4 /* p */
            ifnonnull 10
         7: .line 2186
            aload 0 /* this */
            lload 2 /* pos */
            aload 1 /* map */
            invokevirtual org.h2.mvstore.MVMap.getId:()I
            invokevirtual org.h2.mvstore.MVStore.readBufferForPage:(JI)Ljava/nio/ByteBuffer;
            astore 5 /* buff */
        start local 5 // java.nio.ByteBuffer buff
         8: .line 2187
            aload 5 /* buff */
            lload 2 /* pos */
            aload 1 /* map */
            invokestatic org.h2.mvstore.Page.read:(Ljava/nio/ByteBuffer;JLorg/h2/mvstore/MVMap;)Lorg/h2/mvstore/Page;
            astore 4 /* p */
         9: .line 2188
            aload 0 /* this */
            aload 4 /* p */
            invokevirtual org.h2.mvstore.MVStore.cachePage:(Lorg/h2/mvstore/Page;)V
        end local 5 // java.nio.ByteBuffer buff
        10: .line 2190
      StackMap locals: org.h2.mvstore.Page
      StackMap stack:
            aload 4 /* p */
            areturn
        end local 4 // org.h2.mvstore.Page p
        end local 2 // long pos
        end local 1 // org.h2.mvstore.MVMap map
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/h2/mvstore/MVStore;
            0   11     1   map  Lorg/h2/mvstore/MVMap<**>;
            0   11     2   pos  J
            6   11     4     p  Lorg/h2/mvstore/Page;
            8   10     5  buff  Ljava/nio/ByteBuffer;
    Signature: (Lorg/h2/mvstore/MVMap<**>;J)Lorg/h2/mvstore/Page;
    MethodParameters:
      Name  Flags
      map   
      pos   

  void removePage(long, int);
    descriptor: (JI)V
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // long pos
        start local 3 // int memory
         0: .line 2202
            lload 1 /* pos */
            invokestatic org.h2.mvstore.DataUtils.isPageSaved:(J)Z
            ifne 3
         1: .line 2207
            aload 0 /* this */
            iconst_0
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.unsavedMemory:I
            iload 3 /* memory */
            isub
            invokestatic java.lang.Math.max:(II)I
            putfield org.h2.mvstore.MVStore.unsavedMemory:I
         2: .line 2208
            return
         3: .line 2211
      StackMap locals:
      StackMap stack:
            lload 1 /* pos */
            invokestatic org.h2.mvstore.DataUtils.getPageChunkId:(J)I
            istore 4 /* chunkId */
        start local 4 // int chunkId
         4: .line 2213
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.freedPageSpace:Ljava/util/Map;
            dup
            astore 5
            monitorenter
         5: .line 2214
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.freedPageSpace:Ljava/util/Map;
            iload 4 /* chunkId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 6 /* chunk */
        start local 6 // org.h2.mvstore.Chunk chunk
         6: .line 2215
            aload 6 /* chunk */
            ifnonnull 9
         7: .line 2216
            new org.h2.mvstore.Chunk
            dup
            iload 4 /* chunkId */
            invokespecial org.h2.mvstore.Chunk.<init>:(I)V
            astore 6 /* chunk */
         8: .line 2217
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.freedPageSpace:Ljava/util/Map;
            iload 4 /* chunkId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 6 /* chunk */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 2219
      StackMap locals: int java.util.Map org.h2.mvstore.Chunk
      StackMap stack:
            aload 6 /* chunk */
            dup
            getfield org.h2.mvstore.Chunk.maxLenLive:J
            lload 1 /* pos */
            invokestatic org.h2.mvstore.DataUtils.getPageMaxLength:(J)I
            i2l
            lsub
            putfield org.h2.mvstore.Chunk.maxLenLive:J
        10: .line 2220
            aload 6 /* chunk */
            dup
            getfield org.h2.mvstore.Chunk.pageCountLive:I
            iconst_1
            isub
            putfield org.h2.mvstore.Chunk.pageCountLive:I
        end local 6 // org.h2.mvstore.Chunk chunk
        11: .line 2213
            aload 5
            monitorexit
        12: goto 15
      StackMap locals: org.h2.mvstore.MVStore long int int java.util.Map
      StackMap stack: java.lang.Throwable
        13: aload 5
            monitorexit
        14: athrow
        15: .line 2222
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int chunkId
        end local 3 // int memory
        end local 1 // long pos
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lorg/h2/mvstore/MVStore;
            0   16     1      pos  J
            0   16     3   memory  I
            4   16     4  chunkId  I
            6   11     6    chunk  Lorg/h2/mvstore/Chunk;
      Exception table:
        from    to  target  type
           5    12      13  any
          13    14      13  any
    MethodParameters:
        Name  Flags
      pos     
      memory  

  org.h2.compress.Compressor getCompressorFast();
    descriptor: ()Lorg/h2/compress/Compressor;
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2225
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.compressorFast:Lorg/h2/compress/Compressor;
            ifnonnull 2
         1: .line 2226
            aload 0 /* this */
            new org.h2.compress.CompressLZF
            dup
            invokespecial org.h2.compress.CompressLZF.<init>:()V
            putfield org.h2.mvstore.MVStore.compressorFast:Lorg/h2/compress/Compressor;
         2: .line 2228
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.compressorFast:Lorg/h2/compress/Compressor;
            areturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/mvstore/MVStore;

  org.h2.compress.Compressor getCompressorHigh();
    descriptor: ()Lorg/h2/compress/Compressor;
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2232
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.compressorHigh:Lorg/h2/compress/Compressor;
            ifnonnull 2
         1: .line 2233
            aload 0 /* this */
            new org.h2.compress.CompressDeflate
            dup
            invokespecial org.h2.compress.CompressDeflate.<init>:()V
            putfield org.h2.mvstore.MVStore.compressorHigh:Lorg/h2/compress/Compressor;
         2: .line 2235
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.compressorHigh:Lorg/h2/compress/Compressor;
            areturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/mvstore/MVStore;

  int getCompressionLevel();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2239
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.compressionLevel:I
            ireturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/MVStore;

  public int getPageSplitSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2243
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.pageSplitSize:I
            ireturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/MVStore;

  public int getKeysPerPage();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2247
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.keysPerPage:I
            ireturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/MVStore;

  public long getMaxPageSize();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2251
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            ifnonnull 1
            ldc 9223372036854775807
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.getMaxItemSize:()J
            iconst_4
            lshr
      StackMap locals:
      StackMap stack: long
         2: lreturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/mvstore/MVStore;

  public boolean getReuseSpace();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2255
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.reuseSpace:Z
            ireturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/MVStore;

  public void setReuseSpace(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // boolean reuseSpace
         0: .line 2272
            aload 0 /* this */
            iload 1 /* reuseSpace */
            putfield org.h2.mvstore.MVStore.reuseSpace:Z
         1: .line 2273
            return
        end local 1 // boolean reuseSpace
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/h2/mvstore/MVStore;
            0    2     1  reuseSpace  Z
    MethodParameters:
            Name  Flags
      reuseSpace  

  public int getRetentionTime();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2276
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.retentionTime:I
            ireturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/MVStore;

  public void setRetentionTime(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // int ms
         0: .line 2301
            aload 0 /* this */
            iload 1 /* ms */
            putfield org.h2.mvstore.MVStore.retentionTime:I
         1: .line 2302
            return
        end local 1 // int ms
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/mvstore/MVStore;
            0    2     1    ms  I
    MethodParameters:
      Name  Flags
      ms    

  public void setVersionsToKeep(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // int count
         0: .line 2311
            aload 0 /* this */
            iload 1 /* count */
            putfield org.h2.mvstore.MVStore.versionsToKeep:I
         1: .line 2312
            return
        end local 1 // int count
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/h2/mvstore/MVStore;
            0    2     1  count  I
    MethodParameters:
       Name  Flags
      count  

  public long getVersionsToKeep();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2320
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.versionsToKeep:I
            i2l
            lreturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/MVStore;

  public long getOldestVersionToKeep();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2330
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.oldestVersionToKeep:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
            lstore 1 /* v */
        start local 1 // long v
         1: .line 2331
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            ifnonnull 4
         2: .line 2332
            lload 1 /* v */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.versionsToKeep:I
            i2l
            lsub
            lconst_1
            ladd
            ldc -1
            invokestatic java.lang.Math.max:(JJ)J
            lstore 1 /* v */
         3: .line 2333
            lload 1 /* v */
            lreturn
         4: .line 2336
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentStoreVersion:J
            lstore 3 /* storeVersion */
        start local 3 // long storeVersion
         5: .line 2337
            lload 3 /* storeVersion */
            ldc -1
            lcmp
            ifeq 7
            lload 3 /* storeVersion */
            lload 1 /* v */
            lcmp
            ifge 7
         6: .line 2338
            lload 3 /* storeVersion */
            lstore 1 /* v */
         7: .line 2340
      StackMap locals: long
      StackMap stack:
            lload 1 /* v */
            lreturn
        end local 3 // long storeVersion
        end local 1 // long v
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lorg/h2/mvstore/MVStore;
            1    8     1             v  J
            5    8     3  storeVersion  J

  private void setOldestVersionToKeep(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // long oldestVersionToKeep
         0: .line 2346
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.oldestVersionToKeep:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
            lstore 4 /* current */
        start local 4 // long current
         1: .line 2348
            lload 1 /* oldestVersionToKeep */
            lload 4 /* current */
            lcmp
            ifle 4
         2: .line 2349
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.oldestVersionToKeep:Ljava/util/concurrent/atomic/AtomicLong;
            lload 4 /* current */
            lload 1 /* oldestVersionToKeep */
            invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
            ifne 4
         3: .line 2348
            iconst_0
            goto 5
      StackMap locals: org.h2.mvstore.MVStore long top long
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: istore 3 /* success */
        end local 4 // long current
        start local 3 // boolean success
         6: .line 2350
            iload 3 /* success */
            ifeq 0
         7: .line 2351
            return
        end local 3 // boolean success
        end local 1 // long oldestVersionToKeep
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    8     0                 this  Lorg/h2/mvstore/MVStore;
            0    8     1  oldestVersionToKeep  J
            6    8     3              success  Z
            1    6     4              current  J
    MethodParameters:
                     Name  Flags
      oldestVersionToKeep  

  private boolean isKnownVersion(long);
    descriptor: (J)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // long version
         0: .line 2362
            lload 1 /* version */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentVersion:J
            lcmp
            ifgt 1
            lload 1 /* version */
            lconst_0
            lcmp
            ifge 2
         1: .line 2363
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 2365
      StackMap locals:
      StackMap stack:
            lload 1 /* version */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentVersion:J
            lcmp
            ifeq 3
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.isEmpty:()Z
            ifeq 4
         3: .line 2367
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         4: .line 2370
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* version */
            invokevirtual org.h2.mvstore.MVStore.getChunkForVersion:(J)Lorg/h2/mvstore/Chunk;
            astore 3 /* c */
        start local 3 // org.h2.mvstore.Chunk c
         5: .line 2371
            aload 3 /* c */
            ifnonnull 7
         6: .line 2372
            iconst_0
            ireturn
         7: .line 2376
      StackMap locals: org.h2.mvstore.Chunk
      StackMap stack:
            aload 0 /* this */
            lload 1 /* version */
            invokevirtual org.h2.mvstore.MVStore.getMetaMap:(J)Lorg/h2/mvstore/MVMap;
            astore 4 /* oldMeta */
        start local 4 // org.h2.mvstore.MVMap oldMeta
         8: .line 2377
            aload 4 /* oldMeta */
            ifnonnull 10
         9: .line 2378
            iconst_0
            ireturn
        10: .line 2381
      StackMap locals: org.h2.mvstore.MVMap
      StackMap stack:
            aload 4 /* oldMeta */
            ldc "chunk."
            invokevirtual org.h2.mvstore.MVMap.keyIterator:(Ljava/lang/Object;)Ljava/util/Iterator;
            astore 5 /* it */
        start local 5 // java.util.Iterator it
        11: .line 2382
            goto 21
        12: .line 2383
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 5 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* chunkKey */
        start local 6 // java.lang.String chunkKey
        13: .line 2384
            aload 6 /* chunkKey */
            ldc "chunk."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 15
        14: .line 2385
            goto 25
        15: .line 2387
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            aload 6 /* chunkKey */
            invokevirtual org.h2.mvstore.MVMap.containsKey:(Ljava/lang/Object;)Z
            ifne 21
        16: .line 2388
            aload 4 /* oldMeta */
            aload 6 /* chunkKey */
            invokevirtual org.h2.mvstore.MVMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* s */
        start local 7 // java.lang.String s
        17: .line 2389
            aload 7 /* s */
            invokestatic org.h2.mvstore.Chunk.fromString:(Ljava/lang/String;)Lorg/h2/mvstore/Chunk;
            astore 8 /* c2 */
        start local 8 // org.h2.mvstore.Chunk c2
        18: .line 2390
            aload 0 /* this */
            aload 8 /* c2 */
            getfield org.h2.mvstore.Chunk.block:J
            invokevirtual org.h2.mvstore.MVStore.readChunkHeaderAndFooter:(J)Lorg/h2/mvstore/Chunk;
            astore 9 /* test */
        start local 9 // org.h2.mvstore.Chunk test
        19: .line 2391
            aload 9 /* test */
            ifnull 20
            aload 9 /* test */
            getfield org.h2.mvstore.Chunk.id:I
            aload 8 /* c2 */
            getfield org.h2.mvstore.Chunk.id:I
            if_icmpeq 21
        20: .line 2392
      StackMap locals: java.lang.String org.h2.mvstore.Chunk org.h2.mvstore.Chunk
      StackMap stack:
            iconst_0
            ireturn
        end local 9 // org.h2.mvstore.Chunk test
        end local 8 // org.h2.mvstore.Chunk c2
        end local 7 // java.lang.String s
        end local 6 // java.lang.String chunkKey
        21: .line 2382
      StackMap locals: org.h2.mvstore.MVStore long org.h2.mvstore.Chunk org.h2.mvstore.MVMap java.util.Iterator
      StackMap stack:
            aload 5 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 5 // java.util.Iterator it
        22: .line 2396
            goto 25
      StackMap locals: org.h2.mvstore.MVStore long org.h2.mvstore.Chunk org.h2.mvstore.MVMap
      StackMap stack: java.lang.IllegalStateException
        23: pop
        24: .line 2398
            iconst_0
            ireturn
        25: .line 2400
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // org.h2.mvstore.MVMap oldMeta
        end local 3 // org.h2.mvstore.Chunk c
        end local 1 // long version
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   26     0      this  Lorg/h2/mvstore/MVStore;
            0   26     1   version  J
            5   26     3         c  Lorg/h2/mvstore/Chunk;
            8   26     4   oldMeta  Lorg/h2/mvstore/MVMap<Ljava/lang/String;Ljava/lang/String;>;
           11   22     5        it  Ljava/util/Iterator<Ljava/lang/String;>;
           13   21     6  chunkKey  Ljava/lang/String;
           17   21     7         s  Ljava/lang/String;
           18   21     8        c2  Lorg/h2/mvstore/Chunk;
           19   21     9      test  Lorg/h2/mvstore/Chunk;
      Exception table:
        from    to  target  type
          10    20      23  Class java.lang.IllegalStateException
          21    22      23  Class java.lang.IllegalStateException
    MethodParameters:
         Name  Flags
      version  

  public void registerUnsavedPage(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // int memory
         0: .line 2409
            aload 0 /* this */
            dup
            getfield org.h2.mvstore.MVStore.unsavedMemory:I
            iload 1 /* memory */
            iadd
            putfield org.h2.mvstore.MVStore.unsavedMemory:I
         1: .line 2410
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.unsavedMemory:I
            istore 2 /* newValue */
        start local 2 // int newValue
         2: .line 2411
            iload 2 /* newValue */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.autoCommitMemory:I
            if_icmple 4
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.autoCommitMemory:I
            ifle 4
         3: .line 2412
            aload 0 /* this */
            iconst_1
            putfield org.h2.mvstore.MVStore.saveNeeded:Z
         4: .line 2414
      StackMap locals: int
      StackMap stack:
            return
        end local 2 // int newValue
        end local 1 // int memory
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/h2/mvstore/MVStore;
            0    5     1    memory  I
            2    5     2  newValue  I
    MethodParameters:
        Name  Flags
      memory  

  public boolean isSaveNeeded();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2417
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.saveNeeded:Z
            ireturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/MVStore;

  void beforeWrite(org.h2.mvstore.MVMap<?, ?>);
    descriptor: (Lorg/h2/mvstore/MVMap;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // org.h2.mvstore.MVMap map
         0: .line 2426
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.saveNeeded:Z
            ifeq 7
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            ifnull 7
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.isOpenOrStopping:()Z
            ifeq 7
         1: .line 2427
            aload 0 /* this */
            iconst_0
            putfield org.h2.mvstore.MVStore.saveNeeded:Z
         2: .line 2429
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.unsavedMemory:I
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.autoCommitMemory:I
            if_icmple 7
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.autoCommitMemory:I
            ifle 7
         3: .line 2433
            iconst_3
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.unsavedMemory:I
            imul
            iconst_4
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.autoCommitMemory:I
            imul
            if_icmple 6
         4: .line 2434
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.commit:()J
            pop2
         5: .line 2435
            goto 7
         6: .line 2436
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.tryCommit:()J
            pop2
         7: .line 2440
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.h2.mvstore.MVMap map
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/h2/mvstore/MVStore;
            0    8     1   map  Lorg/h2/mvstore/MVMap<**>;
    Signature: (Lorg/h2/mvstore/MVMap<**>;)V
    MethodParameters:
      Name  Flags
      map   

  public int getStoreVersion();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2450
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
         1: .line 2451
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            ldc "setting.storeVersion"
            invokevirtual org.h2.mvstore.MVMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* x */
        start local 1 // java.lang.String x
         2: .line 2452
            aload 1 /* x */
            ifnonnull 3
            iconst_0
            goto 4
      StackMap locals: java.lang.String
      StackMap stack:
         3: aload 1 /* x */
            invokestatic org.h2.mvstore.DataUtils.parseHexInt:(Ljava/lang/String;)I
      StackMap locals:
      StackMap stack: int
         4: ireturn
        end local 1 // java.lang.String x
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/h2/mvstore/MVStore;
            2    5     1     x  Ljava/lang/String;

  public void setStoreVersion(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // int version
         0: .line 2461
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 2463
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
         2: .line 2464
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
         3: .line 2465
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            ldc "setting.storeVersion"
            iload 1 /* version */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 2466
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 2
         6: .line 2467
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 2468
            aload 2
            athrow
         8: .line 2467
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 2469
            return
        end local 1 // int version
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/h2/mvstore/MVStore;
            0   10     1  version  I
      Exception table:
        from    to  target  type
           1     5       5  any
    MethodParameters:
         Name  Flags
      version  

  public void rollback();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2476
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentVersion:J
            invokevirtual org.h2.mvstore.MVStore.rollbackTo:(J)V
         1: .line 2477
            return
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/mvstore/MVStore;

  public void rollbackTo(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=15, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // long version
         0: .line 2488
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 2490
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
         2: .line 2491
            lload 1 /* version */
            lconst_0
            lcmp
            ifne 26
         3: .line 2493
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 6
      StackMap locals: org.h2.mvstore.MVStore long top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.MVMap
            astore 3 /* m */
        start local 3 // org.h2.mvstore.MVMap m
         5: .line 2494
            aload 3 /* m */
            invokevirtual org.h2.mvstore.MVMap.close:()V
        end local 3 // org.h2.mvstore.MVMap m
         6: .line 2493
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 2496
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.createEmptyLeaf:()Lorg/h2/mvstore/Page;
            ldc -1
            invokevirtual org.h2.mvstore.MVMap.setInitialRoot:(Lorg/h2/mvstore/Page;J)V
         8: .line 2498
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
         9: .line 2499
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            ifnull 11
        10: .line 2500
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.clear:()V
        11: .line 2502
      StackMap locals: org.h2.mvstore.MVStore long
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
        12: .line 2503
            aload 0 /* this */
            aconst_null
            putfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
        13: .line 2504
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.freedPageSpace:Ljava/util/Map;
            dup
            astore 3
            monitorenter
        14: .line 2505
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.freedPageSpace:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
        15: .line 2504
            aload 3
            monitorexit
        16: goto 19
      StackMap locals: org.h2.mvstore.MVStore long java.util.Map
      StackMap stack: java.lang.Throwable
        17: aload 3
            monitorexit
        18: athrow
        19: .line 2507
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.versions:Ljava/util/Deque;
            invokeinterface java.util.Deque.clear:()V
        20: .line 2508
            aload 0 /* this */
            lload 1 /* version */
            putfield org.h2.mvstore.MVStore.currentVersion:J
        21: .line 2509
            aload 0 /* this */
            lload 1 /* version */
            invokevirtual org.h2.mvstore.MVStore.setWriteVersion:(J)V
        22: .line 2510
            aload 0 /* this */
            iconst_0
            putfield org.h2.mvstore.MVStore.metaChanged:Z
        23: .line 2511
            aload 0 /* this */
            ldc -1
            putfield org.h2.mvstore.MVStore.lastStoredVersion:J
        24: .line 2589
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        25: .line 2512
            return
        26: .line 2515
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* version */
            invokevirtual org.h2.mvstore.MVStore.isKnownVersion:(J)Z
        27: .line 2516
            ldc "Unknown version {0}"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            lload 1 /* version */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
        28: .line 2514
            invokestatic org.h2.mvstore.DataUtils.checkArgument:(ZLjava/lang/String;[Ljava/lang/Object;)V
        29: .line 2517
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 32
      StackMap locals: org.h2.mvstore.MVStore long top java.util.Iterator
      StackMap stack:
        30: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.MVMap
            astore 3 /* m */
        start local 3 // org.h2.mvstore.MVMap m
        31: .line 2518
            aload 3 /* m */
            lload 1 /* version */
            invokevirtual org.h2.mvstore.MVMap.rollbackTo:(J)V
        end local 3 // org.h2.mvstore.MVMap m
        32: .line 2517
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        33: .line 2522
            goto 35
        start local 3 // org.h2.mvstore.MVStore$TxCounter txCounter
        34: .line 2523
      StackMap locals: org.h2.mvstore.MVStore long org.h2.mvstore.MVStore$TxCounter
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.versions:Ljava/util/Deque;
            invokeinterface java.util.Deque.removeLast:()Ljava/lang/Object;
            pop
        end local 3 // org.h2.mvstore.MVStore$TxCounter txCounter
        35: .line 2522
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.versions:Ljava/util/Deque;
            invokeinterface java.util.Deque.peekLast:()Ljava/lang/Object;
            checkcast org.h2.mvstore.MVStore$TxCounter
            dup
            astore 3 /* txCounter */
        start local 3 // org.h2.mvstore.MVStore$TxCounter txCounter
        36: ifnull 37
            aload 3 /* txCounter */
            getfield org.h2.mvstore.MVStore$TxCounter.version:J
            lload 1 /* version */
            lcmp
            ifge 34
        37: .line 2525
      StackMap locals: org.h2.mvstore.MVStore$TxCounter
      StackMap stack:
            aload 0 /* this */
            new org.h2.mvstore.MVStore$TxCounter
            dup
            lload 1 /* version */
            invokespecial org.h2.mvstore.MVStore$TxCounter.<init>:(J)V
            putfield org.h2.mvstore.MVStore.currentTxCounter:Lorg/h2/mvstore/MVStore$TxCounter;
        38: .line 2527
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            lload 1 /* version */
            invokevirtual org.h2.mvstore.MVMap.rollbackTo:(J)V
        39: .line 2528
            aload 0 /* this */
            iconst_0
            putfield org.h2.mvstore.MVStore.metaChanged:Z
        40: .line 2529
            iconst_0
            istore 4 /* loadFromFile */
        start local 4 // boolean loadFromFile
        41: .line 2533
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* remove */
        start local 5 // java.util.ArrayList remove
        42: .line 2534
            aconst_null
            astore 6 /* keep */
        start local 6 // org.h2.mvstore.Chunk keep
        43: .line 2535
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 8
            goto 50
      StackMap locals: org.h2.mvstore.MVStore long org.h2.mvstore.MVStore$TxCounter int java.util.ArrayList org.h2.mvstore.Chunk top java.util.Iterator
      StackMap stack:
        44: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 7 /* c */
        start local 7 // org.h2.mvstore.Chunk c
        45: .line 2536
            aload 7 /* c */
            getfield org.h2.mvstore.Chunk.version:J
            lload 1 /* version */
            lcmp
            ifle 48
        46: .line 2537
            aload 5 /* remove */
            aload 7 /* c */
            getfield org.h2.mvstore.Chunk.id:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        47: .line 2538
            goto 50
      StackMap locals: org.h2.mvstore.MVStore long org.h2.mvstore.MVStore$TxCounter int java.util.ArrayList org.h2.mvstore.Chunk org.h2.mvstore.Chunk java.util.Iterator
      StackMap stack:
        48: aload 6 /* keep */
            ifnull 49
            aload 6 /* keep */
            getfield org.h2.mvstore.Chunk.id:I
            aload 7 /* c */
            getfield org.h2.mvstore.Chunk.id:I
            if_icmpge 50
        49: .line 2539
      StackMap locals:
      StackMap stack:
            aload 7 /* c */
            astore 6 /* keep */
        end local 7 // org.h2.mvstore.Chunk c
        50: .line 2535
      StackMap locals: org.h2.mvstore.MVStore long org.h2.mvstore.MVStore$TxCounter int java.util.ArrayList org.h2.mvstore.Chunk top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 44
        51: .line 2542
            aload 5 /* remove */
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifne 72
        52: .line 2545
            aload 5 /* remove */
            invokestatic java.util.Collections.reverseOrder:()Ljava/util/Comparator;
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
        53: .line 2546
            iconst_1
            istore 4 /* loadFromFile */
        54: .line 2547
            aload 5 /* remove */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 8
            goto 68
      StackMap locals:
      StackMap stack:
        55: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 7 /* id */
        start local 7 // int id
        56: .line 2548
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
            iload 7 /* id */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.concurrent.ConcurrentHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.h2.mvstore.Chunk
            astore 9 /* c */
        start local 9 // org.h2.mvstore.Chunk c
        57: .line 2549
            aload 9 /* c */
            getfield org.h2.mvstore.Chunk.block:J
            ldc 4096
            lmul
            lstore 10 /* start */
        start local 10 // long start
        58: .line 2550
            aload 9 /* c */
            getfield org.h2.mvstore.Chunk.len:I
            sipush 4096
            imul
            istore 12 /* length */
        start local 12 // int length
        59: .line 2551
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            lload 10 /* start */
            iload 12 /* length */
            invokevirtual org.h2.mvstore.FileStore.free:(JI)V
        60: .line 2552
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 62
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.getFileLengthInUse:()J
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.measureFileLengthInUse:()J
            lcmp
            ifeq 62
            new java.lang.AssertionError
            dup
        61: .line 2553
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.getFileLengthInUse:()J
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.measureFileLengthInUse:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        62: .line 2556
      StackMap locals: org.h2.mvstore.MVStore long org.h2.mvstore.MVStore$TxCounter int java.util.ArrayList org.h2.mvstore.Chunk int java.util.Iterator org.h2.mvstore.Chunk long int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.getWriteBuffer:()Lorg/h2/mvstore/WriteBuffer;
            astore 13 /* buff */
        start local 13 // org.h2.mvstore.WriteBuffer buff
        63: .line 2557
            aload 13 /* buff */
            iload 12 /* length */
            invokevirtual org.h2.mvstore.WriteBuffer.limit:(I)Lorg/h2/mvstore/WriteBuffer;
            pop
        64: .line 2559
            aload 13 /* buff */
            invokevirtual org.h2.mvstore.WriteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.array:()[B
            iconst_0
            invokestatic java.util.Arrays.fill:([BB)V
        65: .line 2560
            aload 0 /* this */
            lload 10 /* start */
            aload 13 /* buff */
            invokevirtual org.h2.mvstore.WriteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual org.h2.mvstore.MVStore.write:(JLjava/nio/ByteBuffer;)V
        66: .line 2561
            aload 0 /* this */
            aload 13 /* buff */
            invokevirtual org.h2.mvstore.MVStore.releaseWriteBuffer:(Lorg/h2/mvstore/WriteBuffer;)V
        67: .line 2565
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.sync:()V
        end local 13 // org.h2.mvstore.WriteBuffer buff
        end local 12 // int length
        end local 10 // long start
        end local 9 // org.h2.mvstore.Chunk c
        end local 7 // int id
        68: .line 2547
      StackMap locals: org.h2.mvstore.MVStore long org.h2.mvstore.MVStore$TxCounter int java.util.ArrayList org.h2.mvstore.Chunk top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 55
        69: .line 2567
            aload 0 /* this */
            aload 6 /* keep */
            putfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
        70: .line 2568
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.writeStoreHeader:()V
        71: .line 2569
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.readStoreHeader:()V
        72: .line 2571
      StackMap locals: org.h2.mvstore.MVStore long org.h2.mvstore.MVStore$TxCounter int java.util.ArrayList org.h2.mvstore.Chunk
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 8
            goto 83
      StackMap locals: org.h2.mvstore.MVStore long org.h2.mvstore.MVStore$TxCounter int java.util.ArrayList org.h2.mvstore.Chunk top java.util.Iterator
      StackMap stack:
        73: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.MVMap
            astore 7 /* m */
        start local 7 // org.h2.mvstore.MVMap m
        74: .line 2572
            aload 7 /* m */
            invokevirtual org.h2.mvstore.MVMap.getId:()I
            istore 9 /* id */
        start local 9 // int id
        75: .line 2573
            aload 7 /* m */
            invokevirtual org.h2.mvstore.MVMap.getCreateVersion:()J
            lload 1 /* version */
            lcmp
            iflt 79
        76: .line 2574
            aload 7 /* m */
            invokevirtual org.h2.mvstore.MVMap.close:()V
        77: .line 2575
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
            iload 9 /* id */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.concurrent.ConcurrentHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        78: .line 2576
            goto 83
        79: .line 2577
      StackMap locals: org.h2.mvstore.MVStore long org.h2.mvstore.MVStore$TxCounter int java.util.ArrayList org.h2.mvstore.Chunk org.h2.mvstore.MVMap java.util.Iterator int
      StackMap stack:
            iload 4 /* loadFromFile */
            ifeq 82
        80: .line 2578
            aload 7 /* m */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            iload 9 /* id */
            invokestatic org.h2.mvstore.MVStore.getRootPos:(Lorg/h2/mvstore/MVMap;I)J
            lload 1 /* version */
            invokevirtual org.h2.mvstore.MVMap.setRootPos:(JJ)V
        81: .line 2579
            goto 83
        82: .line 2580
      StackMap locals:
      StackMap stack:
            aload 7 /* m */
            lload 1 /* version */
            invokevirtual org.h2.mvstore.MVMap.rollbackRoot:(J)V
        end local 9 // int id
        end local 7 // org.h2.mvstore.MVMap m
        83: .line 2571
      StackMap locals: org.h2.mvstore.MVStore long org.h2.mvstore.MVStore$TxCounter int java.util.ArrayList org.h2.mvstore.Chunk top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 73
        84: .line 2584
            aload 0 /* this */
            lload 1 /* version */
            putfield org.h2.mvstore.MVStore.currentVersion:J
        85: .line 2585
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastStoredVersion:J
            ldc -1
            lcmp
            ifne 91
        86: .line 2586
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentVersion:J
            lconst_1
            lsub
            putfield org.h2.mvstore.MVStore.lastStoredVersion:J
        end local 6 // org.h2.mvstore.Chunk keep
        end local 5 // java.util.ArrayList remove
        end local 4 // boolean loadFromFile
        end local 3 // org.h2.mvstore.MVStore$TxCounter txCounter
        87: .line 2588
            goto 91
      StackMap locals: org.h2.mvstore.MVStore long
      StackMap stack: java.lang.Throwable
        88: astore 14
        89: .line 2589
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        90: .line 2590
            aload 14
            athrow
        91: .line 2589
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        92: .line 2591
            return
        end local 1 // long version
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   93     0          this  Lorg/h2/mvstore/MVStore;
            0   93     1       version  J
            5    6     3             m  Lorg/h2/mvstore/MVMap<**>;
           31   32     3             m  Lorg/h2/mvstore/MVMap<**>;
           34   35     3     txCounter  Lorg/h2/mvstore/MVStore$TxCounter;
           36   87     3     txCounter  Lorg/h2/mvstore/MVStore$TxCounter;
           41   87     4  loadFromFile  Z
           42   87     5        remove  Ljava/util/ArrayList<Ljava/lang/Integer;>;
           43   87     6          keep  Lorg/h2/mvstore/Chunk;
           45   50     7             c  Lorg/h2/mvstore/Chunk;
           56   68     7            id  I
           57   68     9             c  Lorg/h2/mvstore/Chunk;
           58   68    10         start  J
           59   68    12        length  I
           63   68    13          buff  Lorg/h2/mvstore/WriteBuffer;
           74   83     7             m  Lorg/h2/mvstore/MVMap<**>;
           75   83     9            id  I
      Exception table:
        from    to  target  type
          14    16      17  any
          17    18      17  any
           1    24      88  any
          26    88      88  any
    MethodParameters:
         Name  Flags
      version  

  private static long getRootPos(org.h2.mvstore.MVMap<java.lang.String, java.lang.String>, );
    descriptor: (Lorg/h2/mvstore/MVMap;I)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.mvstore.MVMap map
        start local 1 // int mapId
         0: .line 2594
            aload 0 /* map */
            iload 1 /* mapId */
            invokestatic org.h2.mvstore.MVMap.getMapRootKey:(I)Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* root */
        start local 2 // java.lang.String root
         1: .line 2595
            aload 2 /* root */
            ifnonnull 2
            lconst_0
            goto 3
      StackMap locals: java.lang.String
      StackMap stack:
         2: aload 2 /* root */
            invokestatic org.h2.mvstore.DataUtils.parseHexLong:(Ljava/lang/String;)J
      StackMap locals:
      StackMap stack: long
         3: lreturn
        end local 2 // java.lang.String root
        end local 1 // int mapId
        end local 0 // org.h2.mvstore.MVMap map
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0    map  Lorg/h2/mvstore/MVMap<Ljava/lang/String;Ljava/lang/String;>;
            0    4     1  mapId  I
            1    4     2   root  Ljava/lang/String;
    Signature: (Lorg/h2/mvstore/MVMap<Ljava/lang/String;Ljava/lang/String;>;I)J
    MethodParameters:
       Name  Flags
      map    
      mapId  

  public long getCurrentVersion();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2605
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentVersion:J
            lreturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/MVStore;

  public long getLastStoredVersion();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2609
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastStoredVersion:J
            lreturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/MVStore;

  public org.h2.mvstore.FileStore getFileStore();
    descriptor: ()Lorg/h2/mvstore/FileStore;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2618
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            areturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/MVStore;

  public java.util.Map<java.lang.String, java.lang.Object> getStoreHeader();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2629
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
            areturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/MVStore;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;

  private void checkOpen();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2633
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.isOpenOrStopping:()Z
            ifne 4
         1: .line 2634
            iconst_4
         2: .line 2635
            ldc "This store is closed"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.panicException:Ljava/lang/IllegalStateException;
            aastore
         3: .line 2634
            invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
            athrow
         4: .line 2637
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/h2/mvstore/MVStore;

  public void renameMap(org.h2.mvstore.MVMap<?, ?>, java.lang.String);
    descriptor: (Lorg/h2/mvstore/MVMap;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // org.h2.mvstore.MVMap map
        start local 2 // java.lang.String newName
         0: .line 2646
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
         1: .line 2647
            aload 1 /* map */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            if_acmpeq 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
         3: .line 2648
      StackMap locals:
      StackMap stack: int
            ldc "Renaming the meta map is not allowed"
            iconst_0
            anewarray java.lang.Object
         4: .line 2647
            invokestatic org.h2.mvstore.DataUtils.checkArgument:(ZLjava/lang/String;[Ljava/lang/Object;)V
         5: .line 2649
            aload 1 /* map */
            invokevirtual org.h2.mvstore.MVMap.getId:()I
            istore 3 /* id */
        start local 3 // int id
         6: .line 2650
            aload 0 /* this */
            iload 3 /* id */
            invokevirtual org.h2.mvstore.MVStore.getMapName:(I)Ljava/lang/String;
            astore 4 /* oldName */
        start local 4 // java.lang.String oldName
         7: .line 2651
            aload 4 /* oldName */
            ifnull 17
            aload 4 /* oldName */
            aload 2 /* newName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
         8: .line 2652
            iload 3 /* id */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            astore 5 /* idHexStr */
        start local 5 // java.lang.String idHexStr
         9: .line 2654
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            new java.lang.StringBuilder
            dup
            ldc "name."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* newName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 5 /* idHexStr */
            invokevirtual org.h2.mvstore.MVMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* existingIdHexStr */
        start local 6 // java.lang.String existingIdHexStr
        10: .line 2657
            aload 6 /* existingIdHexStr */
            ifnull 11
            aload 6 /* existingIdHexStr */
            aload 5 /* idHexStr */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            iconst_0
            goto 12
      StackMap locals: org.h2.mvstore.MVStore org.h2.mvstore.MVMap java.lang.String int java.lang.String java.lang.String java.lang.String
      StackMap stack:
        11: iconst_1
        12: .line 2658
      StackMap locals:
      StackMap stack: int
            ldc "A map named {0} already exists"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* newName */
            aastore
        13: .line 2656
            invokestatic org.h2.mvstore.DataUtils.checkArgument:(ZLjava/lang/String;[Ljava/lang/Object;)V
        14: .line 2660
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            iload 3 /* id */
            invokestatic org.h2.mvstore.MVMap.getMapKey:(I)Ljava/lang/String;
            aload 1 /* map */
            aload 2 /* newName */
            invokevirtual org.h2.mvstore.MVMap.asString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 2662
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            new java.lang.StringBuilder
            dup
            ldc "name."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* oldName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 2663
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
        end local 6 // java.lang.String existingIdHexStr
        end local 5 // java.lang.String idHexStr
        17: .line 2665
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String oldName
        end local 3 // int id
        end local 2 // java.lang.String newName
        end local 1 // org.h2.mvstore.MVMap map
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   18     0              this  Lorg/h2/mvstore/MVStore;
            0   18     1               map  Lorg/h2/mvstore/MVMap<**>;
            0   18     2           newName  Ljava/lang/String;
            6   18     3                id  I
            7   18     4           oldName  Ljava/lang/String;
            9   17     5          idHexStr  Ljava/lang/String;
           10   17     6  existingIdHexStr  Ljava/lang/String;
    Signature: (Lorg/h2/mvstore/MVMap<**>;Ljava/lang/String;)V
    MethodParameters:
         Name  Flags
      map      
      newName  

  public void removeMap(org.h2.mvstore.MVMap<?, ?>);
    descriptor: (Lorg/h2/mvstore/MVMap;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // org.h2.mvstore.MVMap map
         0: .line 2674
            aload 0 /* this */
            aload 1 /* map */
            iconst_1
            invokevirtual org.h2.mvstore.MVStore.removeMap:(Lorg/h2/mvstore/MVMap;Z)V
         1: .line 2675
            return
        end local 1 // org.h2.mvstore.MVMap map
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/mvstore/MVStore;
            0    2     1   map  Lorg/h2/mvstore/MVMap<**>;
    Signature: (Lorg/h2/mvstore/MVMap<**>;)V
    MethodParameters:
      Name  Flags
      map   

  public void removeMap(org.h2.mvstore.MVMap<?, ?>, );
    descriptor: (Lorg/h2/mvstore/MVMap;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // org.h2.mvstore.MVMap map
        start local 2 // boolean delayed
         0: .line 2684
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 2686
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
         2: .line 2687
            aload 1 /* map */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            if_acmpeq 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
         4: .line 2688
      StackMap locals:
      StackMap stack: int
            ldc "Removing the meta map is not allowed"
            iconst_0
            anewarray java.lang.Object
         5: .line 2687
            invokestatic org.h2.mvstore.DataUtils.checkArgument:(ZLjava/lang/String;[Ljava/lang/Object;)V
         6: .line 2689
            aload 1 /* map */
            invokevirtual org.h2.mvstore.MVMap.close:()V
         7: .line 2690
            aload 1 /* map */
            invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
            astore 3 /* rootReference */
        start local 3 // org.h2.mvstore.RootReference rootReference
         8: .line 2691
            aload 0 /* this */
            dup
            getfield org.h2.mvstore.MVStore.updateCounter:J
            aload 3 /* rootReference */
            getfield org.h2.mvstore.RootReference.updateCounter:J
            ladd
            putfield org.h2.mvstore.MVStore.updateCounter:J
         9: .line 2692
            aload 0 /* this */
            dup
            getfield org.h2.mvstore.MVStore.updateAttemptCounter:J
            aload 3 /* rootReference */
            getfield org.h2.mvstore.RootReference.updateAttemptCounter:J
            ladd
            putfield org.h2.mvstore.MVStore.updateAttemptCounter:J
        10: .line 2694
            aload 1 /* map */
            invokevirtual org.h2.mvstore.MVMap.getId:()I
            istore 4 /* id */
        start local 4 // int id
        11: .line 2695
            aload 0 /* this */
            iload 4 /* id */
            invokevirtual org.h2.mvstore.MVStore.getMapName:(I)Ljava/lang/String;
            astore 5 /* name */
        start local 5 // java.lang.String name
        12: .line 2696
            aload 0 /* this */
            aload 5 /* name */
            iload 4 /* id */
            iload 2 /* delayed */
            invokevirtual org.h2.mvstore.MVStore.removeMap:(Ljava/lang/String;IZ)V
        end local 5 // java.lang.String name
        end local 4 // int id
        end local 3 // org.h2.mvstore.RootReference rootReference
        13: .line 2697
            goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 6
        15: .line 2698
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        16: .line 2699
            aload 6
            athrow
        17: .line 2698
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        18: .line 2700
            return
        end local 2 // boolean delayed
        end local 1 // org.h2.mvstore.MVMap map
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0           this  Lorg/h2/mvstore/MVStore;
            0   19     1            map  Lorg/h2/mvstore/MVMap<**>;
            0   19     2        delayed  Z
            8   13     3  rootReference  Lorg/h2/mvstore/RootReference;
           11   13     4             id  I
           12   13     5           name  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1    14      14  any
    Signature: (Lorg/h2/mvstore/MVMap<**>;Z)V
    MethodParameters:
         Name  Flags
      map      
      delayed  

  private void removeMap(java.lang.String, int, boolean);
    descriptor: (Ljava/lang/String;IZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // java.lang.String name
        start local 2 // int id
        start local 3 // boolean delayed
         0: .line 2703
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            iload 2 /* id */
            invokestatic org.h2.mvstore.MVMap.getMapKey:(I)Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 2
         1: .line 2704
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
         2: .line 2706
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            new java.lang.StringBuilder
            dup
            ldc "name."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 4
         3: .line 2707
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
         4: .line 2709
      StackMap locals:
      StackMap stack:
            iload 3 /* delayed */
            ifne 8
         5: .line 2710
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            iload 2 /* id */
            invokestatic org.h2.mvstore.MVMap.getMapRootKey:(I)Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 7
         6: .line 2711
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
         7: .line 2713
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
            iload 2 /* id */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.concurrent.ConcurrentHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 2715
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean delayed
        end local 2 // int id
        end local 1 // java.lang.String name
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lorg/h2/mvstore/MVStore;
            0    9     1     name  Ljava/lang/String;
            0    9     2       id  I
            0    9     3  delayed  Z
    MethodParameters:
         Name  Flags
      name     
      id       
      delayed  

  public void removeMap(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // java.lang.String name
         0: .line 2723
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.h2.mvstore.MVStore.getMapId:(Ljava/lang/String;)I
            istore 2 /* id */
        start local 2 // int id
         1: .line 2724
            iload 2 /* id */
            ifle 3
         2: .line 2725
            aload 0 /* this */
            aload 1 /* name */
            iload 2 /* id */
            iconst_0
            invokevirtual org.h2.mvstore.MVStore.removeMap:(Ljava/lang/String;IZ)V
         3: .line 2727
      StackMap locals: int
      StackMap stack:
            return
        end local 2 // int id
        end local 1 // java.lang.String name
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/h2/mvstore/MVStore;
            0    4     1  name  Ljava/lang/String;
            1    4     2    id  I
    MethodParameters:
      Name  Flags
      name  

  public java.lang.String getMapName(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // int id
         0: .line 2736
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
         1: .line 2737
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            iload 1 /* id */
            invokestatic org.h2.mvstore.MVMap.getMapKey:(I)Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* m */
        start local 2 // java.lang.String m
         2: .line 2738
            aload 2 /* m */
            ifnonnull 3
            aconst_null
            goto 4
      StackMap locals: java.lang.String
      StackMap stack:
         3: aload 2 /* m */
            invokestatic org.h2.mvstore.DataUtils.getMapName:(Ljava/lang/String;)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         4: areturn
        end local 2 // java.lang.String m
        end local 1 // int id
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/h2/mvstore/MVStore;
            0    5     1    id  I
            2    5     2     m  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      id    

  private int getMapId(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // java.lang.String name
         0: .line 2742
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            new java.lang.StringBuilder
            dup
            ldc "name."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.h2.mvstore.MVMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* m */
        start local 2 // java.lang.String m
         1: .line 2743
            aload 2 /* m */
            ifnonnull 2
            iconst_m1
            goto 3
      StackMap locals: java.lang.String
      StackMap stack:
         2: aload 2 /* m */
            invokestatic org.h2.mvstore.DataUtils.parseHexInt:(Ljava/lang/String;)I
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 2 // java.lang.String m
        end local 1 // java.lang.String name
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/h2/mvstore/MVStore;
            0    4     1  name  Ljava/lang/String;
            1    4     2     m  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  void writeInBackground();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2752
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.isOpenOrStopping:()Z
            ifne 2
         1: .line 2753
            return
         2: .line 2759
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.getTimeSinceCreation:()J
            lstore 1 /* time */
        start local 1 // long time
         3: .line 2760
            lload 1 /* time */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.lastCommitTime:J
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.autoCommitDelay:I
            i2l
            ladd
            lcmp
            ifgt 5
         4: .line 2761
            return
         5: .line 2763
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.tryCommit:()J
            pop2
         6: .line 2764
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.autoCompactFillRate:I
            ifle 20
         7: .line 2768
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.getWriteCount:()J
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.getReadCount:()J
            ladd
            lstore 4 /* fileOpCount */
        start local 4 // long fileOpCount
         8: .line 2769
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.autoCompactLastFileOpCount:J
            lload 4 /* fileOpCount */
            lcmp
            ifeq 11
         9: .line 2770
            iconst_1
            istore 3 /* fileOps */
        start local 3 // boolean fileOps
        10: .line 2771
            goto 12
        end local 3 // boolean fileOps
        11: .line 2772
      StackMap locals: org.h2.mvstore.MVStore long top long
      StackMap stack:
            iconst_0
            istore 3 /* fileOps */
        start local 3 // boolean fileOps
        12: .line 2775
      StackMap locals: org.h2.mvstore.MVStore long int long
      StackMap stack:
            iload 3 /* fileOps */
            ifeq 13
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.autoCompactFillRate:I
            iconst_3
            idiv
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 0 /* this */
            getfield org.h2.mvstore.MVStore.autoCompactFillRate:I
      StackMap locals:
      StackMap stack: int
        14: istore 6 /* targetFillRate */
        start local 6 // int targetFillRate
        15: .line 2776
            aload 0 /* this */
            iload 6 /* targetFillRate */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.autoCommitMemory:I
            invokevirtual org.h2.mvstore.MVStore.compact:(II)Z
            pop
        16: .line 2777
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.getWriteCount:()J
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.getReadCount:()J
            ladd
            putfield org.h2.mvstore.MVStore.autoCompactLastFileOpCount:J
        end local 6 // int targetFillRate
        end local 4 // long fileOpCount
        end local 3 // boolean fileOps
        end local 1 // long time
        17: .line 2779
            goto 20
      StackMap locals: org.h2.mvstore.MVStore
      StackMap stack: java.lang.Throwable
        18: astore 1 /* e */
        start local 1 // java.lang.Throwable e
        19: .line 2780
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual org.h2.mvstore.MVStore.handleException:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable e
        20: .line 2782
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   21     0            this  Lorg/h2/mvstore/MVStore;
            3   17     1            time  J
           10   11     3         fileOps  Z
           12   17     3         fileOps  Z
            8   17     4     fileOpCount  J
           15   17     6  targetFillRate  I
           19   20     1               e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1      18  Class java.lang.Throwable
           2     4      18  Class java.lang.Throwable
           5    17      18  Class java.lang.Throwable

  private void handleException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // java.lang.Throwable ex
         0: .line 2785
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.backgroundExceptionHandler:Ljava/lang/Thread$UncaughtExceptionHandler;
            ifnull 6
         1: .line 2787
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.backgroundExceptionHandler:Ljava/lang/Thread$UncaughtExceptionHandler;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 1 /* ex */
            invokeinterface java.lang.Thread$UncaughtExceptionHandler.uncaughtException:(Ljava/lang/Thread;Ljava/lang/Throwable;)V
         2: .line 2788
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2 /* ignore */
        start local 2 // java.lang.Throwable ignore
         4: .line 2789
            aload 1 /* ex */
            aload 2 /* ignore */
            if_acmpeq 6
         5: .line 2790
            aload 1 /* ex */
            aload 2 /* ignore */
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
        end local 2 // java.lang.Throwable ignore
         6: .line 2794
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Throwable ex
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/h2/mvstore/MVStore;
            0    7     1      ex  Ljava/lang/Throwable;
            4    6     2  ignore  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      ex    

  public void setCacheSize(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // int mb
         0: .line 2802
            iload 1 /* mb */
            i2l
            ldc 1024
            lmul
            ldc 1024
            lmul
            lstore 2 /* bytes */
        start local 2 // long bytes
         1: .line 2803
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            ifnull 4
         2: .line 2804
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            lload 2 /* bytes */
            invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.setMaxMemory:(J)V
         3: .line 2805
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.clear:()V
         4: .line 2807
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cacheChunkRef:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            ifnull 7
         5: .line 2808
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cacheChunkRef:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            lload 2 /* bytes */
            ldc 4
            ldiv
            invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.setMaxMemory:(J)V
         6: .line 2809
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cacheChunkRef:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.clear:()V
         7: .line 2811
      StackMap locals:
      StackMap stack:
            return
        end local 2 // long bytes
        end local 1 // int mb
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lorg/h2/mvstore/MVStore;
            0    8     1     mb  I
            1    8     2  bytes  J
    MethodParameters:
      Name  Flags
      mb    

  private boolean isOpen();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2814
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.state:I
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/mvstore/MVStore;

  public boolean isClosed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2822
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.isOpen:()Z
            ifeq 2
         1: .line 2823
            iconst_0
            ireturn
         2: .line 2825
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         3: .line 2827
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 4
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.state:I
            iconst_3
            if_icmpeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 2830
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         5: .line 2828
            iconst_1
            ireturn
         6: .line 2829
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         7: .line 2830
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         8: .line 2831
            aload 1
            athrow
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/h2/mvstore/MVStore;
      Exception table:
        from    to  target  type
           3     4       6  any

  private boolean isOpenOrStopping();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2835
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.state:I
            iconst_1
            if_icmpgt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/mvstore/MVStore;

  private void stopBackgroundThread(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // boolean waitForIt
         0: .line 2843
            goto 14
        start local 2 // org.h2.mvstore.MVStore$BackgroundWriterThread t
         1: .line 2844
      StackMap locals: org.h2.mvstore.MVStore$BackgroundWriterThread
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.backgroundWriterThread:Ljava/util/concurrent/atomic/AtomicReference;
            aload 2 /* t */
            aconst_null
            invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 14
         2: .line 2846
            aload 2 /* t */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpeq 16
         3: .line 2847
            aload 2 /* t */
            getfield org.h2.mvstore.MVStore$BackgroundWriterThread.sync:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         4: .line 2848
            aload 2 /* t */
            getfield org.h2.mvstore.MVStore$BackgroundWriterThread.sync:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
         5: .line 2847
            aload 3
            monitorexit
         6: goto 9
      StackMap locals: org.h2.mvstore.MVStore int org.h2.mvstore.MVStore$BackgroundWriterThread java.lang.Object
      StackMap stack: java.lang.Throwable
         7: aload 3
            monitorexit
         8: athrow
         9: .line 2851
      StackMap locals:
      StackMap stack:
            iload 1 /* waitForIt */
            ifeq 16
        10: .line 2853
            aload 2 /* t */
            invokevirtual org.h2.mvstore.MVStore$BackgroundWriterThread.join:()V
        11: .line 2854
            goto 16
      StackMap locals:
      StackMap stack: java.lang.Exception
        12: pop
        13: .line 2859
            goto 16
        end local 2 // org.h2.mvstore.MVStore$BackgroundWriterThread t
        14: .line 2843
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.backgroundWriterThread:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast org.h2.mvstore.MVStore$BackgroundWriterThread
            dup
            astore 2 /* t */
        start local 2 // org.h2.mvstore.MVStore$BackgroundWriterThread t
        15: ifnonnull 1
        16: .line 2862
      StackMap locals: org.h2.mvstore.MVStore$BackgroundWriterThread
      StackMap stack:
            return
        end local 2 // org.h2.mvstore.MVStore$BackgroundWriterThread t
        end local 1 // boolean waitForIt
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lorg/h2/mvstore/MVStore;
            0   17     1  waitForIt  Z
            1   14     2          t  Lorg/h2/mvstore/MVStore$BackgroundWriterThread;
           15   17     2          t  Lorg/h2/mvstore/MVStore$BackgroundWriterThread;
      Exception table:
        from    to  target  type
           4     6       7  any
           7     8       7  any
          10    11      12  Class java.lang.Exception
    MethodParameters:
           Name  Flags
      waitForIt  

  public void setAutoCommitDelay(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // int millis
         0: .line 2876
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.autoCommitDelay:I
            iload 1 /* millis */
            if_icmpne 2
         1: .line 2877
            return
         2: .line 2879
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* millis */
            putfield org.h2.mvstore.MVStore.autoCommitDelay:I
         3: .line 2880
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            ifnull 4
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.isReadOnly:()Z
            ifeq 5
         4: .line 2881
      StackMap locals:
      StackMap stack:
            return
         5: .line 2883
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual org.h2.mvstore.MVStore.stopBackgroundThread:(Z)V
         6: .line 2885
            iload 1 /* millis */
            ifle 14
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.isOpen:()Z
            ifeq 14
         7: .line 2886
            iconst_1
            iload 1 /* millis */
            bipush 10
            idiv
            invokestatic java.lang.Math.max:(II)I
            istore 2 /* sleep */
        start local 2 // int sleep
         8: .line 2888
            new org.h2.mvstore.MVStore$BackgroundWriterThread
            dup
            aload 0 /* this */
            iload 2 /* sleep */
         9: .line 2889
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.toString:()Ljava/lang/String;
        10: .line 2888
            invokespecial org.h2.mvstore.MVStore$BackgroundWriterThread.<init>:(Lorg/h2/mvstore/MVStore;ILjava/lang/String;)V
        11: .line 2887
            astore 3 /* t */
        start local 3 // org.h2.mvstore.MVStore$BackgroundWriterThread t
        12: .line 2890
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.backgroundWriterThread:Ljava/util/concurrent/atomic/AtomicReference;
            aconst_null
            aload 3 /* t */
            invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 14
        13: .line 2891
            aload 3 /* t */
            invokevirtual org.h2.mvstore.MVStore$BackgroundWriterThread.start:()V
        end local 3 // org.h2.mvstore.MVStore$BackgroundWriterThread t
        end local 2 // int sleep
        14: .line 2894
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int millis
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0    this  Lorg/h2/mvstore/MVStore;
            0   15     1  millis  I
            8   14     2   sleep  I
           12   14     3       t  Lorg/h2/mvstore/MVStore$BackgroundWriterThread;
    MethodParameters:
        Name  Flags
      millis  

  boolean isBackgroundThread();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2897
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.backgroundWriterThread:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/mvstore/MVStore;

  public int getAutoCommitDelay();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2906
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.autoCommitDelay:I
            ireturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/MVStore;

  public int getAutoCommitMemory();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2916
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.autoCommitMemory:I
            ireturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/MVStore;

  public int getUnsavedMemory();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2928
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.unsavedMemory:I
            ireturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/MVStore;

  void cachePage(org.h2.mvstore.Page);
    descriptor: (Lorg/h2/mvstore/Page;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // org.h2.mvstore.Page page
         0: .line 2936
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            ifnull 2
         1: .line 2937
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            aload 1 /* page */
            invokevirtual org.h2.mvstore.Page.getPos:()J
            aload 1 /* page */
            aload 1 /* page */
            invokevirtual org.h2.mvstore.Page.getMemory:()I
            invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.put:(JLjava/lang/Object;I)Ljava/lang/Object;
            pop
         2: .line 2939
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.h2.mvstore.Page page
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/mvstore/MVStore;
            0    3     1  page  Lorg/h2/mvstore/Page;
    MethodParameters:
      Name  Flags
      page  

  public int getCacheSizeUsed();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2949
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            ifnonnull 2
         1: .line 2950
            iconst_0
            ireturn
         2: .line 2952
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.getUsedMemory:()J
            bipush 20
            lshr
            l2i
            ireturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/mvstore/MVStore;

  public int getCacheSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2963
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            ifnonnull 2
         1: .line 2964
            iconst_0
            ireturn
         2: .line 2966
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.getMaxMemory:()J
            bipush 20
            lshr
            l2i
            ireturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/mvstore/MVStore;

  public org.h2.mvstore.cache.CacheLongKeyLIRS<org.h2.mvstore.Page> getCache();
    descriptor: ()Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2975
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
            areturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/MVStore;
    Signature: ()Lorg/h2/mvstore/cache/CacheLongKeyLIRS<Lorg/h2/mvstore/Page;>;

  public boolean isReadOnly();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2984
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            ifnull 1
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
            invokevirtual org.h2.mvstore.FileStore.isReadOnly:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/mvstore/MVStore;

  public double getUpdateFailureRatio();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 2988
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.updateCounter:J
            lstore 1 /* updateCounter */
        start local 1 // long updateCounter
         1: .line 2989
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.updateAttemptCounter:J
            lstore 3 /* updateAttemptCounter */
        start local 3 // long updateAttemptCounter
         2: .line 2990
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
            astore 5 /* rootReference */
        start local 5 // org.h2.mvstore.RootReference rootReference
         3: .line 2991
            lload 1 /* updateCounter */
            aload 5 /* rootReference */
            getfield org.h2.mvstore.RootReference.updateCounter:J
            ladd
            lstore 1 /* updateCounter */
         4: .line 2992
            lload 3 /* updateAttemptCounter */
            aload 5 /* rootReference */
            getfield org.h2.mvstore.RootReference.updateAttemptCounter:J
            ladd
            lstore 3 /* updateAttemptCounter */
         5: .line 2993
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
            invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 10
      StackMap locals: org.h2.mvstore.MVStore long long org.h2.mvstore.RootReference top java.util.Iterator
      StackMap stack:
         6: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.h2.mvstore.MVMap
            astore 6 /* map */
        start local 6 // org.h2.mvstore.MVMap map
         7: .line 2994
            aload 6 /* map */
            invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
            astore 8 /* root */
        start local 8 // org.h2.mvstore.RootReference root
         8: .line 2995
            lload 1 /* updateCounter */
            aload 8 /* root */
            getfield org.h2.mvstore.RootReference.updateCounter:J
            ladd
            lstore 1 /* updateCounter */
         9: .line 2996
            lload 3 /* updateAttemptCounter */
            aload 8 /* root */
            getfield org.h2.mvstore.RootReference.updateAttemptCounter:J
            ladd
            lstore 3 /* updateAttemptCounter */
        end local 8 // org.h2.mvstore.RootReference root
        end local 6 // org.h2.mvstore.MVMap map
        10: .line 2993
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        11: .line 2998
            lload 3 /* updateAttemptCounter */
            lconst_0
            lcmp
            ifne 12
            dconst_0
            goto 13
      StackMap locals: org.h2.mvstore.MVStore long long org.h2.mvstore.RootReference
      StackMap stack:
        12: dconst_1
            lload 1 /* updateCounter */
            l2d
            lload 3 /* updateAttemptCounter */
            l2d
            ddiv
            dsub
      StackMap locals:
      StackMap stack: double
        13: dreturn
        end local 5 // org.h2.mvstore.RootReference rootReference
        end local 3 // long updateAttemptCounter
        end local 1 // long updateCounter
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   14     0                  this  Lorg/h2/mvstore/MVStore;
            1   14     1         updateCounter  J
            2   14     3  updateAttemptCounter  J
            3   14     5         rootReference  Lorg/h2/mvstore/RootReference;
            7   10     6                   map  Lorg/h2/mvstore/MVMap<**>;
            8   10     8                  root  Lorg/h2/mvstore/RootReference;

  public org.h2.mvstore.MVStore$TxCounter registerVersionUsage();
    descriptor: ()Lorg/h2/mvstore/MVStore$TxCounter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 3011
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentTxCounter:Lorg/h2/mvstore/MVStore$TxCounter;
            astore 1 /* txCounter */
        start local 1 // org.h2.mvstore.MVStore$TxCounter txCounter
         1: .line 3012
            aload 1 /* txCounter */
            getfield org.h2.mvstore.MVStore$TxCounter.counter:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.getAndIncrement:()I
            iflt 3
         2: .line 3013
            goto 6
         3: .line 3022
      StackMap locals: org.h2.mvstore.MVStore$TxCounter
      StackMap stack:
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 4
            aload 1 /* txCounter */
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentTxCounter:Lorg/h2/mvstore/MVStore$TxCounter;
            if_acmpne 4
            new java.lang.AssertionError
            dup
            aload 1 /* txCounter */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         4: .line 3023
      StackMap locals:
      StackMap stack:
            aload 1 /* txCounter */
            getfield org.h2.mvstore.MVStore$TxCounter.counter:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
            pop
        end local 1 // org.h2.mvstore.MVStore$TxCounter txCounter
         5: .line 3010
            goto 0
        start local 1 // org.h2.mvstore.MVStore$TxCounter txCounter
         6: .line 3025
      StackMap locals:
      StackMap stack:
            aload 1 /* txCounter */
            areturn
        end local 1 // org.h2.mvstore.MVStore$TxCounter txCounter
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/h2/mvstore/MVStore;
            1    5     1  txCounter  Lorg/h2/mvstore/MVStore$TxCounter;
            6    7     1  txCounter  Lorg/h2/mvstore/MVStore$TxCounter;

  public void deregisterVersionUsage(org.h2.mvstore.MVStore$TxCounter);
    descriptor: (Lorg/h2/mvstore/MVStore$TxCounter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // org.h2.mvstore.MVStore$TxCounter txCounter
         0: .line 3037
            aload 1 /* txCounter */
            ifnull 9
         1: .line 3038
            aload 1 /* txCounter */
            getfield org.h2.mvstore.MVStore$TxCounter.counter:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
            ifgt 9
         2: .line 3039
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
            ifne 9
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:()Z
            ifeq 9
         3: .line 3041
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.dropUnusedVersions:()V
         4: .line 3042
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 2
         6: .line 3043
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 3044
            aload 2
            athrow
         8: .line 3043
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 3048
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.h2.mvstore.MVStore$TxCounter txCounter
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/h2/mvstore/MVStore;
            0   10     1  txCounter  Lorg/h2/mvstore/MVStore$TxCounter;
      Exception table:
        from    to  target  type
           3     5       5  any
    MethodParameters:
           Name  Flags
      txCounter  

  private void onVersionChange(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.h2.mvstore.MVStore this
        start local 1 // long version
         0: .line 3051
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentTxCounter:Lorg/h2/mvstore/MVStore$TxCounter;
            astore 3 /* txCounter */
        start local 3 // org.h2.mvstore.MVStore$TxCounter txCounter
         1: .line 3052
            getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
            ifne 2
            aload 3 /* txCounter */
            getfield org.h2.mvstore.MVStore$TxCounter.counter:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            ifge 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 3053
      StackMap locals: org.h2.mvstore.MVStore$TxCounter
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.versions:Ljava/util/Deque;
            aload 3 /* txCounter */
            invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
            pop
         3: .line 3054
            aload 0 /* this */
            new org.h2.mvstore.MVStore$TxCounter
            dup
            lload 1 /* version */
            invokespecial org.h2.mvstore.MVStore$TxCounter.<init>:(J)V
            putfield org.h2.mvstore.MVStore.currentTxCounter:Lorg/h2/mvstore/MVStore$TxCounter;
         4: .line 3055
            aload 3 /* txCounter */
            getfield org.h2.mvstore.MVStore$TxCounter.counter:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
            pop
         5: .line 3056
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.dropUnusedVersions:()V
         6: .line 3057
            return
        end local 3 // org.h2.mvstore.MVStore$TxCounter txCounter
        end local 1 // long version
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/h2/mvstore/MVStore;
            0    7     1    version  J
            1    7     3  txCounter  Lorg/h2/mvstore/MVStore$TxCounter;
    MethodParameters:
         Name  Flags
      version  

  private void dropUnusedVersions();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.h2.mvstore.MVStore this
         0: .line 3061
            goto 2
        start local 1 // org.h2.mvstore.MVStore$TxCounter txCounter
         1: .line 3063
      StackMap locals: org.h2.mvstore.MVStore$TxCounter
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.versions:Ljava/util/Deque;
            invokeinterface java.util.Deque.poll:()Ljava/lang/Object;
            pop
        end local 1 // org.h2.mvstore.MVStore$TxCounter txCounter
         2: .line 3061
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.MVStore.versions:Ljava/util/Deque;
            invokeinterface java.util.Deque.peek:()Ljava/lang/Object;
            checkcast org.h2.mvstore.MVStore$TxCounter
            dup
            astore 1 /* txCounter */
        start local 1 // org.h2.mvstore.MVStore$TxCounter txCounter
         3: ifnull 6
         4: .line 3062
            aload 1 /* txCounter */
            getfield org.h2.mvstore.MVStore$TxCounter.counter:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
         5: .line 3061
            iflt 1
         6: .line 3065
      StackMap locals: org.h2.mvstore.MVStore$TxCounter
      StackMap stack:
            aload 0 /* this */
            aload 1 /* txCounter */
            ifnull 7
            aload 1 /* txCounter */
            getfield org.h2.mvstore.MVStore$TxCounter.version:J
            goto 8
      StackMap locals:
      StackMap stack: org.h2.mvstore.MVStore
         7: aload 0 /* this */
            getfield org.h2.mvstore.MVStore.currentTxCounter:Lorg/h2/mvstore/MVStore$TxCounter;
            getfield org.h2.mvstore.MVStore$TxCounter.version:J
      StackMap locals: org.h2.mvstore.MVStore org.h2.mvstore.MVStore$TxCounter
      StackMap stack: org.h2.mvstore.MVStore long
         8: invokevirtual org.h2.mvstore.MVStore.setOldestVersionToKeep:(J)V
         9: .line 3066
            return
        end local 1 // org.h2.mvstore.MVStore$TxCounter txCounter
        end local 0 // org.h2.mvstore.MVStore this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/h2/mvstore/MVStore;
            1    2     1  txCounter  Lorg/h2/mvstore/MVStore$TxCounter;
            3   10     1  txCounter  Lorg/h2/mvstore/MVStore$TxCounter;
}
SourceFile: "MVStore.java"
NestMembers:
  org.h2.mvstore.MVStore$1  org.h2.mvstore.MVStore$2  org.h2.mvstore.MVStore$3  org.h2.mvstore.MVStore$BackgroundWriterThread  org.h2.mvstore.MVStore$Builder  org.h2.mvstore.MVStore$ChunkIdsCollector  org.h2.mvstore.MVStore$TxCounter
InnerClasses:
  public abstract UncaughtExceptionHandler = java.lang.Thread$UncaughtExceptionHandler of java.lang.Thread
  public Builder = org.h2.mvstore.MVMap$Builder of org.h2.mvstore.MVMap
  public abstract MapBuilder = org.h2.mvstore.MVMap$MapBuilder of org.h2.mvstore.MVMap
  org.h2.mvstore.MVStore$1
  org.h2.mvstore.MVStore$2
  org.h2.mvstore.MVStore$3
  private BackgroundWriterThread = org.h2.mvstore.MVStore$BackgroundWriterThread of org.h2.mvstore.MVStore
  public final Builder = org.h2.mvstore.MVStore$Builder of org.h2.mvstore.MVStore
  final ChunkIdsCollector = org.h2.mvstore.MVStore$ChunkIdsCollector of org.h2.mvstore.MVStore
  public final TxCounter = org.h2.mvstore.MVStore$TxCounter of org.h2.mvstore.MVStore
  public Config = org.h2.mvstore.cache.CacheLongKeyLIRS$Config of org.h2.mvstore.cache.CacheLongKeyLIRS