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> ;
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: 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: 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 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
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: aload 0
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: aload 0
iconst_1
putfield org.h2.mvstore.MVStore.reuseSpace:Z
4: aload 0
5: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
6: aload 0
lconst_0
putfield org.h2.mvstore.MVStore.updateCounter:J
7: aload 0
lconst_0
putfield org.h2.mvstore.MVStore.updateAttemptCounter:J
8: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.h2.mvstore.MVStore.freedPageSpace:Ljava/util/Map;
9: aload 0
10: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
11: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
12: aload 0
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: aload 0
iconst_5
putfield org.h2.mvstore.MVStore.versionsToKeep:I
14: aload 0
ldc -1
putfield org.h2.mvstore.MVStore.lastStoredVersion:J
15: aload 0
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: aload 0
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield org.h2.mvstore.MVStore.versions:Ljava/util/Deque;
17: aload 0
new org.h2.mvstore.MVStore$TxCounter
dup
aload 0
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: aload 0
ldc -1
putfield org.h2.mvstore.MVStore.currentStoreVersion:J
19: aload 0
aload 1
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: aload 1
ldc "fileName"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 21: aload 1
ldc "fileStore"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.h2.mvstore.FileStore
astore 3
start local 3 22: aload 0
aload 3
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: aload 3
ifnonnull 27
aload 2
ifnull 27
26: new org.h2.mvstore.FileStore
dup
invokespecial org.h2.mvstore.FileStore.<init>:()V
astore 3
27: StackMap locals:
StackMap stack:
aload 0
aload 3
putfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
28: bipush 48
istore 4
start local 4 29: aconst_null
astore 5
start local 5 30: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
ifnull 39
31: aload 1
ldc "cacheSize"
bipush 16
invokestatic org.h2.mvstore.DataUtils.getConfigParam:(Ljava/util/Map;Ljava/lang/String;I)I
istore 6
start local 6 32: iload 6
ifle 38
33: new org.h2.mvstore.cache.CacheLongKeyLIRS$Config
dup
invokespecial org.h2.mvstore.cache.CacheLongKeyLIRS$Config.<init>:()V
astore 5
34: aload 5
iload 6
i2l
ldc 1024
lmul
ldc 1024
lmul
putfield org.h2.mvstore.cache.CacheLongKeyLIRS$Config.maxMemory:J
35: aload 1
ldc "cacheConcurrency"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 7
start local 7 36: aload 7
ifnull 38
37: aload 5
aload 7
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
putfield org.h2.mvstore.cache.CacheLongKeyLIRS$Config.segmentCount:I
end local 7 38: StackMap locals: int org.h2.mvstore.cache.CacheLongKeyLIRS$Config int
StackMap stack:
sipush 16384
istore 4
end local 6 39: StackMap locals:
StackMap stack:
aload 5
ifnull 44
40: aload 0
new org.h2.mvstore.cache.CacheLongKeyLIRS
dup
aload 5
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: aload 5
dup
getfield org.h2.mvstore.cache.CacheLongKeyLIRS$Config.maxMemory:J
ldc 4
ldiv
putfield org.h2.mvstore.cache.CacheLongKeyLIRS$Config.maxMemory:J
42: aload 0
new org.h2.mvstore.cache.CacheLongKeyLIRS
dup
aload 5
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: goto 46
44: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
45: aload 0
aconst_null
putfield org.h2.mvstore.MVStore.cacheChunkRef:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
46: StackMap locals:
StackMap stack:
aload 1
ldc "pageSplitSize"
iload 4
invokestatic org.h2.mvstore.DataUtils.getConfigParam:(Ljava/util/Map;Ljava/lang/String;I)I
istore 4
47: aload 0
getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
ifnull 49
iload 4
i2l
aload 0
getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.getMaxItemSize:()J
lcmp
ifle 49
48: aload 0
getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.getMaxItemSize:()J
l2i
istore 4
49: StackMap locals:
StackMap stack:
aload 0
iload 4
putfield org.h2.mvstore.MVStore.pageSplitSize:I
50: aload 0
aload 1
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: aload 0
52: aload 1
ldc "backgroundExceptionHandler"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Thread$UncaughtExceptionHandler
53: putfield org.h2.mvstore.MVStore.backgroundExceptionHandler:Ljava/lang/Thread$UncaughtExceptionHandler;
54: aload 0
new org.h2.mvstore.MVMap
dup
aload 0
invokespecial org.h2.mvstore.MVMap.<init>:(Lorg/h2/mvstore/MVStore;)V
putfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
55: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
ifnull 105
56: aload 0
aload 0
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: 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
start local 6 58: aload 1
ldc "autoCommitBufferSize"
iload 6
invokestatic org.h2.mvstore.DataUtils.getConfigParam:(Ljava/util/Map;Ljava/lang/String;I)I
istore 6
59: aload 0
iload 6
sipush 1024
imul
putfield org.h2.mvstore.MVStore.autoCommitMemory:I
60: aload 0
aload 1
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: aload 1
ldc "encryptionKey"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast char[]
astore 7
start local 7 62: aload 0
getfield org.h2.mvstore.MVStore.fileStoreIsProvided:Z
ifne 65
63: aload 1
ldc "readOnly"
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
istore 8
start local 8 64: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
aload 2
iload 8
aload 7
invokevirtual org.h2.mvstore.FileStore.open:(Ljava/lang/String;Z[C)V
end local 8 65: StackMap locals: int char[]
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.size:()J
lconst_0
lcmp
ifne 74
66: aload 0
aload 0
invokevirtual org.h2.mvstore.MVStore.getTimeAbsolute:()J
putfield org.h2.mvstore.MVStore.creationTime:J
67: aload 0
aload 0
getfield org.h2.mvstore.MVStore.creationTime:J
putfield org.h2.mvstore.MVStore.lastCommitTime:J
68: aload 0
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: aload 0
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: aload 0
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: aload 0
getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
ldc "created"
aload 0
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: aload 0
invokevirtual org.h2.mvstore.MVStore.writeStoreHeader:()V
73: goto 84
74: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVStore.readStoreHeader:()V
75: goto 84
StackMap locals:
StackMap stack: java.lang.IllegalStateException
76: astore 8
start local 8 77: aload 0
aload 8
invokevirtual org.h2.mvstore.MVStore.panic:(Ljava/lang/IllegalStateException;)V
end local 8 78: aload 7
ifnull 86
79: aload 7
iconst_0
invokestatic java.util.Arrays.fill:([CC)V
goto 86
80: StackMap locals:
StackMap stack: java.lang.Throwable
astore 9
81: aload 7
ifnull 83
82: aload 7
iconst_0
invokestatic java.util.Arrays.fill:([CC)V
83: 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: 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
ifnull 86
85: aload 7
iconst_0
invokestatic java.util.Arrays.fill:([CC)V
86: StackMap locals:
StackMap stack:
aload 0
aload 0
invokevirtual org.h2.mvstore.MVStore.getTimeSinceCreation:()J
putfield org.h2.mvstore.MVStore.lastCommitTime:J
87: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 8
start local 8 88: aload 0
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
start local 9 89: goto 96
90: StackMap locals: java.util.Set java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 10
start local 10 91: aload 10
ldc "root."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 93
92: goto 97
93: StackMap locals: java.lang.String
StackMap stack:
aload 10
aload 10
bipush 46
invokevirtual java.lang.String.lastIndexOf:(I)I
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 11
start local 11 94: aload 0
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
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: aload 8
aload 10
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 11 end local 10 96: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 90
end local 9 97: StackMap locals:
StackMap stack:
aload 8
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
start local 9 99: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
aload 9
invokevirtual org.h2.mvstore.MVMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
100: aload 0
invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
end local 9 101: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 98
102: aload 1
ldc "autoCommitDelay"
sipush 1000
invokestatic org.h2.mvstore.DataUtils.getConfigParam:(Ljava/util/Map;Ljava/lang/String;I)I
istore 9
start local 9 103: aload 0
iload 9
invokevirtual org.h2.mvstore.MVStore.setAutoCommitDelay:(I)V
end local 9 end local 8 end local 7 end local 6 104: goto 107
105: 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
iconst_0
putfield org.h2.mvstore.MVStore.autoCommitMemory:I
106: aload 0
iconst_0
putfield org.h2.mvstore.MVStore.autoCompactFillRate:I
107: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 0: aload 0
invokevirtual org.h2.mvstore.MVStore.isOpen:()Z
ifeq 4
1: aload 0
aload 1
invokevirtual org.h2.mvstore.MVStore.handleException:(Ljava/lang/Throwable;)V
2: aload 0
aload 1
putfield org.h2.mvstore.MVStore.panicException:Ljava/lang/IllegalStateException;
3: aload 0
invokevirtual org.h2.mvstore.MVStore.closeImmediately:()V
4: StackMap locals:
StackMap stack:
aload 1
athrow
end local 1 end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.panicException:Ljava/lang/IllegalStateException;
areturn
end local 0 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 0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 1
start local 1 1: aload 1
ldc "fileName"
aload 0
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: new org.h2.mvstore.MVStore
dup
aload 1
invokespecial org.h2.mvstore.MVStore.<init>:(Ljava/util/Map;)V
areturn
end local 1 end local 0 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 start local 1 start local 2 0: aload 0
lload 2
invokevirtual org.h2.mvstore.MVStore.getMetaMap:(J)Lorg/h2/mvstore/MVMap;
astore 4
start local 4 1: aload 4
iload 1
invokestatic org.h2.mvstore.MVStore.getRootPos:(Lorg/h2/mvstore/MVMap;I)J
lreturn
end local 4 end local 2 end local 1 end local 0 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 start local 1 0: aload 0
aload 1
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 end local 0 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 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.h2.mvstore.MVStore.getMapId:(Ljava/lang/String;)I
istore 3
start local 3 1: iload 3
iflt 8
2: aload 0
iload 3
aload 2
invokevirtual org.h2.mvstore.MVStore.openMap:(ILorg/h2/mvstore/MVMap$MapBuilder;)Lorg/h2/mvstore/MVMap;
astore 4
start local 4 3: getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 4
aload 2
invokeinterface org.h2.mvstore.MVMap$MapBuilder.getKeyType:()Lorg/h2/mvstore/type/DataType;
ifnull 4
aload 4
invokevirtual org.h2.mvstore.MVMap.getKeyType:()Lorg/h2/mvstore/type/DataType;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 2
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: StackMap locals: int org.h2.mvstore.MVMap
StackMap stack:
getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 22
aload 2
invokeinterface org.h2.mvstore.MVMap$MapBuilder.getValueType:()Lorg/h2/mvstore/type/DataType;
ifnull 22
aload 4
invokevirtual org.h2.mvstore.MVMap.getValueType:()Lorg/h2/mvstore/type/DataType;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 2
invokeinterface org.h2.mvstore.MVMap$MapBuilder.getValueType:()Lorg/h2/mvstore/type/DataType;
5: invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
6: invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
7: ifne 22
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 4 8: StackMap locals:
StackMap stack:
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 5
start local 5 9: aload 0
getfield org.h2.mvstore.MVStore.lastMapId:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
istore 3
10: getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 11
aload 0
iload 3
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: StackMap locals: org.h2.mvstore.MVStore java.lang.String org.h2.mvstore.MVMap$MapBuilder int top java.util.HashMap
StackMap stack:
aload 5
ldc "id"
iload 3
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: aload 5
ldc "createVersion"
aload 0
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: aload 2
aload 0
aload 5
invokeinterface org.h2.mvstore.MVMap$MapBuilder.create:(Lorg/h2/mvstore/MVStore;Ljava/util/Map;)Lorg/h2/mvstore/MVMap;
astore 4
start local 4 14: iload 3
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
astore 6
start local 6 15: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
iload 3
invokestatic org.h2.mvstore.MVMap.getMapKey:(I)Ljava/lang/String;
aload 4
aload 1
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: aload 0
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
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 6
invokevirtual org.h2.mvstore.MVMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
17: aload 4
lconst_0
aload 0
getfield org.h2.mvstore.MVStore.lastStoredVersion:J
invokevirtual org.h2.mvstore.MVMap.setRootPos:(JJ)V
18: aload 0
invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
19: aload 0
getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 4
invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.h2.mvstore.MVMap
astore 7
start local 7 20: aload 7
ifnull 22
21: aload 7
astore 4
end local 7 end local 6 end local 5 22: StackMap locals: org.h2.mvstore.MVStore java.lang.String org.h2.mvstore.MVMap$MapBuilder int org.h2.mvstore.MVMap
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 0: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
iload 1
invokevirtual org.h2.mvstore.MVStore.getMap:(I)Lorg/h2/mvstore/MVMap;
astore 3
start local 3 2: aload 3
ifnonnull 13
3: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
iload 1
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
start local 4 4: aload 4
ifnull 7
5: new java.util.HashMap
dup
aload 4
invokestatic org.h2.mvstore.DataUtils.parseMap:(Ljava/lang/String;)Ljava/util/HashMap;
invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
astore 5
start local 5 6: goto 8
end local 5 7: StackMap locals: org.h2.mvstore.MVMap java.lang.String
StackMap stack:
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 5
start local 5 8: StackMap locals: java.util.HashMap
StackMap stack:
aload 5
ldc "id"
iload 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
9: aload 2
aload 0
aload 5
invokeinterface org.h2.mvstore.MVMap$MapBuilder.create:(Lorg/h2/mvstore/MVStore;Ljava/util/Map;)Lorg/h2/mvstore/MVMap;
astore 3
10: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
iload 1
invokestatic org.h2.mvstore.MVStore.getRootPos:(Lorg/h2/mvstore/MVMap;I)J
lstore 6
start local 6 11: aload 3
lload 6
aload 0
getfield org.h2.mvstore.MVStore.lastStoredVersion:J
invokevirtual org.h2.mvstore.MVMap.setRootPos:(JJ)V
12: aload 0
getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 3
invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 end local 5 end local 4 13: StackMap locals:
StackMap stack:
aload 3
astore 9
14: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
15: aload 9
areturn
end local 3 16: StackMap locals: org.h2.mvstore.MVStore int org.h2.mvstore.MVMap$MapBuilder
StackMap stack: java.lang.Throwable
astore 8
17: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
18: aload 8
athrow
end local 2 end local 1 end local 0 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 start local 1 0: aload 0
invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
1: aload 0
getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
iload 1
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
start local 2 2: aload 2
areturn
end local 2 end local 1 end local 0 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 0: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 1
start local 1 1: aload 0
invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
2: aload 0
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
start local 2 3: goto 9
4: StackMap locals: java.util.HashSet java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 5: aload 3
ldc "name."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 7
6: goto 10
7: StackMap locals: java.lang.String
StackMap stack:
aload 3
ldc "name."
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 4
start local 4 8: aload 1
aload 4
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
end local 4 end local 3 9: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
end local 2 10: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 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 0: aload 0
invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
1: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
areturn
end local 0 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 start local 1 0: aload 0
lload 1
invokevirtual org.h2.mvstore.MVStore.getChunkForVersion:(J)Lorg/h2/mvstore/Chunk;
astore 3
start local 3 1: aload 3
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
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic org.h2.mvstore.DataUtils.checkArgument:(ZLjava/lang/String;[Ljava/lang/Object;)V
4: aload 0
aload 3
getfield org.h2.mvstore.Chunk.block:J
invokevirtual org.h2.mvstore.MVStore.readChunkHeader:(J)Lorg/h2/mvstore/Chunk;
astore 3
5: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
aload 3
getfield org.h2.mvstore.Chunk.metaRootPos:J
lload 1
invokevirtual org.h2.mvstore.MVMap.openReadOnly:(JJ)Lorg/h2/mvstore/MVMap;
astore 4
start local 4 6: aload 4
areturn
end local 4 end local 3 end local 1 end local 0 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 start local 1 0: aconst_null
astore 3
start local 3 1: aload 0
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
start local 4 3: aload 4
getfield org.h2.mvstore.Chunk.version:J
lload 1
lcmp
ifgt 6
4: aload 3
ifnull 5
aload 4
getfield org.h2.mvstore.Chunk.id:I
aload 3
getfield org.h2.mvstore.Chunk.id:I
if_icmple 6
5: StackMap locals: org.h2.mvstore.MVStore long org.h2.mvstore.Chunk org.h2.mvstore.Chunk java.util.Iterator
StackMap stack:
aload 4
astore 3
end local 4 6: 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: aload 3
areturn
end local 3 end local 1 end local 0 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 start local 1 0: aload 0
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
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 end local 0 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 start local 1 0: aload 0
aload 1
invokevirtual org.h2.mvstore.MVStore.hasMap:(Ljava/lang/String;)Z
ifeq 1
aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
aload 0
aload 1
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 end local 0 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 0: aload 0
iconst_1
putfield org.h2.mvstore.MVStore.metaChanged:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/mvstore/MVStore;
private void ();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=21, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: aload 0
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
start local 3 3: sipush 4096
newarray 8
astore 4
start local 4 4: iconst_0
istore 5
start local 5 5: goto 30
6: StackMap locals: org.h2.mvstore.MVStore org.h2.mvstore.Chunk int java.nio.ByteBuffer byte[] int
StackMap stack:
aload 3
aload 4
invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
pop
7: aload 4
invokestatic org.h2.mvstore.DataUtils.parseChecksummedMap:([B)Ljava/util/HashMap;
astore 6
start local 6 8: aload 6
ifnonnull 10
9: goto 29
10: StackMap locals: java.util.HashMap
StackMap stack:
aload 6
ldc "blockSize"
sipush 4096
11: invokestatic org.h2.mvstore.DataUtils.readHexInt:(Ljava/util/Map;Ljava/lang/String;I)I
istore 7
start local 7 12: iload 7
sipush 4096
if_icmpeq 17
13: iconst_5
14: ldc "Block size {0} is currently not supported"
iconst_1
anewarray java.lang.Object
dup
iconst_0
15: iload 7
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
16: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
17: StackMap locals: int
StackMap stack:
aload 6
ldc "version"
lconst_0
invokestatic org.h2.mvstore.DataUtils.readHexLong:(Ljava/util/Map;Ljava/lang/String;J)J
lstore 8
start local 8 18: aload 1
ifnull 19
lload 8
aload 1
getfield org.h2.mvstore.Chunk.version:J
lcmp
ifle 29
19: StackMap locals: long
StackMap stack:
iconst_1
istore 2
20: aload 0
getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
aload 6
invokevirtual java.util.HashMap.putAll:(Ljava/util/Map;)V
21: aload 0
aload 6
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: aload 6
ldc "chunk"
iconst_0
invokestatic org.h2.mvstore.DataUtils.readHexInt:(Ljava/util/Map;Ljava/lang/String;I)I
istore 10
start local 10 23: aload 6
ldc "block"
lconst_0
invokestatic org.h2.mvstore.DataUtils.readHexLong:(Ljava/util/Map;Ljava/lang/String;J)J
lstore 11
start local 11 24: aload 0
lload 11
invokevirtual org.h2.mvstore.MVStore.readChunkHeaderAndFooter:(J)Lorg/h2/mvstore/Chunk;
astore 13
start local 13 25: aload 13
ifnull 29
aload 13
getfield org.h2.mvstore.Chunk.id:I
iload 10
if_icmpne 29
26: aload 13
astore 1
end local 13 end local 11 end local 10 end local 8 end local 7 end local 6 27: 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: StackMap locals:
StackMap stack:
iinc 5 4096
StackMap locals:
StackMap stack:
30: iload 5
sipush 4096
if_icmple 6
end local 5 31: iload 2
ifne 35
32: bipush 6
33: ldc "Store header is corrupt: {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
aastore
34: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
35: StackMap locals:
StackMap stack:
aload 0
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
start local 5 36: lload 5
lconst_1
lcmp
ifle 41
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.isReadOnly:()Z
ifne 41
37: iconst_5
38: 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: lload 5
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: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
41: StackMap locals: long
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
ldc "formatRead"
lload 5
invokestatic org.h2.mvstore.DataUtils.readHexLong:(Ljava/util/Map;Ljava/lang/String;J)J
lstore 5
42: lload 5
lconst_1
lcmp
ifle 47
43: iconst_5
44: ldc "The read format {0} is larger than the supported format {1}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
45: lload 5
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: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
47: StackMap locals:
StackMap stack:
aload 0
ldc -1
putfield org.h2.mvstore.MVStore.lastStoredVersion:J
48: aload 0
getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
49: invokestatic java.lang.System.currentTimeMillis:()J
lstore 7
start local 7 50: sipush 1970
lload 7
ldc 31557600000
ldiv
l2i
iadd
istore 9
start local 9 51: iload 9
sipush 2014
if_icmpge 54
52: aload 0
lload 7
aload 0
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: goto 57
StackMap locals: long int
StackMap stack:
54: lload 7
aload 0
getfield org.h2.mvstore.MVStore.creationTime:J
lcmp
ifge 57
55: aload 0
lload 7
putfield org.h2.mvstore.MVStore.creationTime:J
56: aload 0
getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
ldc "created"
aload 0
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: StackMap locals:
StackMap stack:
aload 0
aload 0
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
start local 10 58: aload 10
ifnull 63
59: aload 0
aload 10
getfield org.h2.mvstore.Chunk.block:J
invokevirtual org.h2.mvstore.MVStore.readChunkHeaderAndFooter:(J)Lorg/h2/mvstore/Chunk;
astore 10
60: aload 10
ifnull 63
61: aload 1
ifnull 62
aload 10
getfield org.h2.mvstore.Chunk.version:J
aload 1
getfield org.h2.mvstore.Chunk.version:J
lcmp
ifle 63
62: StackMap locals: org.h2.mvstore.Chunk
StackMap stack:
aload 10
astore 1
63: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.size:()J
ldc 4096
ldiv
lstore 11
start local 11 64: new java.util.PriorityQueue
dup
bipush 32
lload 11
ldc 4
ldiv
l2i
invokestatic java.lang.Math.max:(II)I
65: new org.h2.mvstore.MVStore$1
dup
aload 0
invokespecial org.h2.mvstore.MVStore$1.<init>:(Lorg/h2/mvstore/MVStore;)V
66: invokespecial java.util.PriorityQueue.<init>:(ILjava/util/Comparator;)V
astore 13
start local 13 67: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 14
start local 14 68: aload 1
ifnull 79
69: StackMap locals: long java.util.Queue java.util.Map
StackMap stack:
aload 14
aload 1
getfield org.h2.mvstore.Chunk.block:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
70: aload 13
aload 1
invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
pop
71: aload 1
getfield org.h2.mvstore.Chunk.next:J
lconst_0
lcmp
ifeq 79
72: aload 1
getfield org.h2.mvstore.Chunk.next:J
lload 11
lcmp
iflt 74
73: goto 79
74: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.h2.mvstore.Chunk.next:J
invokevirtual org.h2.mvstore.MVStore.readChunkHeaderAndFooter:(J)Lorg/h2/mvstore/Chunk;
astore 10
75: aload 10
ifnull 79
aload 10
getfield org.h2.mvstore.Chunk.id:I
aload 1
getfield org.h2.mvstore.Chunk.id:I
if_icmpgt 77
76: goto 79
77: StackMap locals:
StackMap stack:
aload 10
astore 1
78: goto 69
79: StackMap locals:
StackMap stack:
iconst_0
istore 15
start local 15 80: goto 99
81: StackMap locals: int
StackMap stack:
iconst_1
istore 15
82: aload 0
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
start local 16 83: goto 98
84: StackMap locals: org.h2.mvstore.Cursor
StackMap stack:
aload 16
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
start local 17 85: getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 86
aload 17
getfield org.h2.mvstore.Chunk.version:J
aload 0
getfield org.h2.mvstore.MVStore.currentVersion:J
lcmp
ifle 86
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
86: StackMap locals: org.h2.mvstore.Chunk
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
aload 17
getfield org.h2.mvstore.Chunk.id:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 17
invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
87: aload 17
getfield org.h2.mvstore.Chunk.block:J
lstore 18
start local 18 88: aload 14
lload 18
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
89: aload 10
ifnonnull 95
90: aload 0
lload 18
invokevirtual org.h2.mvstore.MVStore.readChunkHeaderAndFooter:(J)Lorg/h2/mvstore/Chunk;
astore 10
91: aload 10
ifnull 97
aload 10
getfield org.h2.mvstore.Chunk.id:I
aload 17
getfield org.h2.mvstore.Chunk.id:I
if_icmpne 97
92: aload 14
lload 18
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aload 10
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
93: aload 13
aload 10
invokeinterface java.util.Queue.offer:(Ljava/lang/Object;)Z
pop
94: goto 98
95: StackMap locals: long
StackMap stack:
aload 10
getfield org.h2.mvstore.Chunk.id:I
aload 17
getfield org.h2.mvstore.Chunk.id:I
if_icmpne 97
96: goto 98
97: StackMap locals:
StackMap stack:
iconst_0
istore 15
end local 18 end local 17 98: StackMap locals:
StackMap stack:
aload 16
invokevirtual org.h2.mvstore.Cursor.hasNext:()Z
ifeq 99
aload 16
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 99: StackMap locals:
StackMap stack:
iload 15
ifne 100
aload 0
aload 13
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: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.clear:()V
101: aload 0
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
start local 16 103: aload 16
getfield org.h2.mvstore.Chunk.block:J
ldc 4096
lmul
lstore 18
start local 18 104: aload 16
getfield org.h2.mvstore.Chunk.len:I
sipush 4096
imul
istore 20
start local 20 105: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
lload 18
iload 20
invokevirtual org.h2.mvstore.FileStore.markUsed:(JI)V
end local 20 end local 18 end local 16 106: StackMap locals:
StackMap stack:
aload 17
invokeinterface java.util.Iterator.hasNext:()Z
ifne 102
107: getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 109
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.getFileLengthInUse:()J
aload 0
invokevirtual org.h2.mvstore.MVStore.measureFileLengthInUse:()J
lcmp
ifeq 109
new java.lang.AssertionError
dup
108: new java.lang.StringBuilder
dup
aload 0
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
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: 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
aload 0
getfield org.h2.mvstore.MVStore.currentVersion:J
invokevirtual org.h2.mvstore.MVStore.setWriteVersion:(J)V
110: aload 0
getfield org.h2.mvstore.MVStore.lastStoredVersion:J
ldc -1
lcmp
ifne 112
111: aload 0
aload 0
getfield org.h2.mvstore.MVStore.currentVersion:J
lconst_1
lsub
putfield org.h2.mvstore.MVStore.lastStoredVersion:J
112: StackMap locals:
StackMap stack:
return
end local 15 end local 14 end local 13 end local 11 end local 10 end local 9 end local 7 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 0: aload 0
getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
1: aload 0
aload 1
putfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
2: aload 1
ifnonnull 8
3: aload 0
getfield org.h2.mvstore.MVStore.lastMapId:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicInteger.set:(I)V
4: aload 0
lconst_0
putfield org.h2.mvstore.MVStore.currentVersion:J
5: aload 0
ldc -1
putfield org.h2.mvstore.MVStore.lastStoredVersion:J
6: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
lconst_0
ldc -1
invokevirtual org.h2.mvstore.MVMap.setRootPos:(JJ)V
7: goto 13
8: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.lastMapId:Ljava/util/concurrent/atomic/AtomicInteger;
aload 1
getfield org.h2.mvstore.Chunk.mapId:I
invokevirtual java.util.concurrent.atomic.AtomicInteger.set:(I)V
9: aload 0
aload 1
getfield org.h2.mvstore.Chunk.version:J
putfield org.h2.mvstore.MVStore.currentVersion:J
10: aload 0
getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
getfield org.h2.mvstore.Chunk.id:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: aload 0
aload 0
getfield org.h2.mvstore.MVStore.currentVersion:J
lconst_1
lsub
putfield org.h2.mvstore.MVStore.lastStoredVersion:J
12: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
aload 1
getfield org.h2.mvstore.Chunk.metaRootPos:J
aload 0
getfield org.h2.mvstore.MVStore.lastStoredVersion:J
invokevirtual org.h2.mvstore.MVMap.setRootPos:(JJ)V
13: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 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 start local 1 0: aload 0
lload 1
invokevirtual org.h2.mvstore.MVStore.readChunkHeader:(J)Lorg/h2/mvstore/Chunk;
astore 3
start local 3 1: goto 4
end local 3 StackMap locals:
StackMap stack: java.lang.Exception
2: pop
3: aconst_null
areturn
start local 3 4: StackMap locals: org.h2.mvstore.Chunk
StackMap stack:
aload 3
ifnonnull 6
5: aconst_null
areturn
6: StackMap locals:
StackMap stack:
aload 0
lload 1
aload 3
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
start local 4 7: aload 4
ifnull 8
aload 4
getfield org.h2.mvstore.Chunk.id:I
aload 3
getfield org.h2.mvstore.Chunk.id:I
if_icmpeq 9
8: StackMap locals: org.h2.mvstore.Chunk
StackMap stack:
aconst_null
areturn
9: StackMap locals:
StackMap stack:
aload 3
areturn
end local 4 end local 3 end local 1 end local 0 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 (long);
descriptor: (J)Lorg/h2/mvstore/Chunk;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: lload 1
ldc 128
lsub
lstore 3
start local 3 1: lload 3
lconst_0
lcmp
ifge 3
2: aconst_null
areturn
3: StackMap locals: long
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
lload 3
sipush 128
invokevirtual org.h2.mvstore.FileStore.readFully:(JI)Ljava/nio/ByteBuffer;
astore 5
start local 5 4: sipush 128
newarray 8
astore 6
start local 6 5: aload 5
aload 6
invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
pop
6: aload 6
invokestatic org.h2.mvstore.DataUtils.parseChecksummedMap:([B)Ljava/util/HashMap;
astore 7
start local 7 7: aload 7
ifnull 15
8: aload 7
ldc "chunk"
iconst_0
invokestatic org.h2.mvstore.DataUtils.readHexInt:(Ljava/util/Map;Ljava/lang/String;I)I
istore 8
start local 8 9: new org.h2.mvstore.Chunk
dup
iload 8
invokespecial org.h2.mvstore.Chunk.<init>:(I)V
astore 9
start local 9 10: aload 9
aload 7
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: aload 9
aload 7
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: aload 9
13: areturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 3 14: StackMap locals: org.h2.mvstore.MVStore long
StackMap stack: java.lang.Exception
pop
15: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 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 ();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
bipush 112
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 1
start local 1 1: aload 0
getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
ifnull 5
2: aload 0
getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
ldc "block"
aload 0
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: aload 0
getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
ldc "chunk"
aload 0
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: aload 0
getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
ldc "version"
aload 0
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: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 1
aload 0
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: aload 1
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
start local 2 7: aload 2
iconst_0
aload 2
arraylength
invokestatic org.h2.mvstore.DataUtils.getFletcher32:([BII)I
istore 3
start local 3 8: aload 1
ldc "fletcher"
iload 3
invokestatic org.h2.mvstore.DataUtils.appendMap:(Ljava/lang/StringBuilder;Ljava/lang/String;I)V
9: aload 1
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
10: aload 1
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
11: sipush 8192
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 4
start local 4 12: aload 4
aload 2
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
13: aload 4
sipush 4096
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
14: aload 4
aload 2
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
15: aload 4
invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/Buffer;
pop
16: aload 0
lconst_0
aload 4
invokevirtual org.h2.mvstore.MVStore.write:(JLjava/nio/ByteBuffer;)V
17: return
end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 3 0: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
lload 1
aload 3
invokevirtual org.h2.mvstore.FileStore.writeFully:(JLjava/nio/ByteBuffer;)V
1: goto 4
StackMap locals:
StackMap stack: java.lang.IllegalStateException
2: astore 4
start local 4 3: aload 0
aload 4
invokevirtual org.h2.mvstore.MVStore.panic:(Ljava/lang/IllegalStateException;)V
end local 4 4: StackMap locals:
StackMap stack:
return
end local 3 end local 1 end local 0 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 0: aload 0
iconst_1
invokevirtual org.h2.mvstore.MVStore.closeStore:(Z)V
1: return
end local 0 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 0: aload 0
iconst_0
invokevirtual org.h2.mvstore.MVStore.closeStore:(Z)V
1: goto 4
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 1
start local 1 3: aload 0
aload 1
invokevirtual org.h2.mvstore.MVStore.handleException:(Ljava/lang/Throwable;)V
end local 1 4: StackMap locals:
StackMap stack:
return
end local 0 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 start local 1 0: goto 42
1: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual org.h2.mvstore.MVStore.stopBackgroundThread:(Z)V
2: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
3: aload 0
getfield org.h2.mvstore.MVStore.state:I
ifne 41
4: aload 0
iconst_1
putfield org.h2.mvstore.MVStore.state:I
5: iload 1
ifeq 14
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
ifnull 14
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.isReadOnly:()Z
ifne 14
6: aload 0
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
start local 2 8: aload 2
invokevirtual org.h2.mvstore.MVMap.isClosed:()Z
ifeq 11
9: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
aload 2
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: aload 0
invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
end local 2 11: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
12: aload 0
invokevirtual org.h2.mvstore.MVStore.commit:()J
pop2
13: aload 0
iconst_0
invokevirtual org.h2.mvstore.MVStore.shrinkFileIfPossible:(I)V
14: StackMap locals: org.h2.mvstore.MVStore int
StackMap stack:
aload 0
iconst_2
putfield org.h2.mvstore.MVStore.state:I
15: aload 0
getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
ifnull 17
16: aload 0
getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.clear:()V
17: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.cacheChunkRef:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
ifnull 19
18: aload 0
getfield org.h2.mvstore.MVStore.cacheChunkRef:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.clear:()V
19: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
aload 0
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
start local 2 21: aload 2
invokevirtual org.h2.mvstore.MVMap.close:()V
end local 2 22: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 20
23: aload 0
getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
24: aload 0
getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
25: goto 30
StackMap locals: org.h2.mvstore.MVStore int
StackMap stack: java.lang.Throwable
26: astore 4
27: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
ifnull 29
aload 0
getfield org.h2.mvstore.MVStore.fileStoreIsProvided:Z
ifne 29
28: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.close:()V
29: StackMap locals: org.h2.mvstore.MVStore int top top java.lang.Throwable
StackMap stack:
aload 4
athrow
30: StackMap locals: org.h2.mvstore.MVStore int
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
ifnull 36
aload 0
getfield org.h2.mvstore.MVStore.fileStoreIsProvided:Z
ifne 36
31: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.close:()V
32: goto 36
StackMap locals:
StackMap stack: java.lang.Throwable
33: astore 5
34: aload 0
iconst_3
putfield org.h2.mvstore.MVStore.state:I
35: aload 5
athrow
36: StackMap locals:
StackMap stack:
aload 0
iconst_3
putfield org.h2.mvstore.MVStore.state:I
37: goto 41
StackMap locals:
StackMap stack: java.lang.Throwable
38: astore 6
39: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
40: aload 6
athrow
41: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
42: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVStore.isClosed:()Z
ifeq 1
43: return
end local 1 end local 0 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 start local 1 start local 3 0: aload 0
lload 1
invokevirtual org.h2.mvstore.MVStore.getChunk:(J)Lorg/h2/mvstore/Chunk;
astore 4
start local 4 1: aload 4
getfield org.h2.mvstore.Chunk.block:J
ldc 4096
lmul
lstore 5
start local 5 2: lload 5
lload 1
invokestatic org.h2.mvstore.DataUtils.getPageOffset:(J)I
i2l
ladd
lstore 5
3: lload 5
lconst_0
lcmp
ifge 7
4: bipush 6
5: ldc "Negative position {0}; p={1}, c={2}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
lload 5
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_1
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
aload 4
invokevirtual org.h2.mvstore.Chunk.toString:()Ljava/lang/String;
aastore
6: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
7: StackMap locals: org.h2.mvstore.Chunk long
StackMap stack:
aload 4
getfield org.h2.mvstore.Chunk.block:J
aload 4
getfield org.h2.mvstore.Chunk.len:I
i2l
ladd
ldc 4096
lmul
lstore 7
start local 7 8: lload 1
invokestatic org.h2.mvstore.DataUtils.getPageMaxLength:(J)I
istore 10
start local 10 9: iload 10
ldc 2097152
if_icmpne 12
10: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
lload 5
sipush 128
invokevirtual org.h2.mvstore.FileStore.readFully:(JI)Ljava/nio/ByteBuffer;
astore 9
start local 9 11: aload 9
invokevirtual java.nio.ByteBuffer.getInt:()I
istore 10
end local 9 12: StackMap locals: org.h2.mvstore.MVStore long int org.h2.mvstore.Chunk long long top int
StackMap stack:
lload 7
lload 5
lsub
iload 10
i2l
invokestatic java.lang.Math.min:(JJ)J
l2i
istore 10
13: iload 10
istore 11
start local 11 14: iload 11
ifge 18
15: bipush 6
16: ldc "Illegal page length {0} reading at {1}; max pos {2} "
iconst_3
anewarray java.lang.Object
dup
iconst_0
iload 11
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
lload 5
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
lload 7
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
17: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
18: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
lload 5
iload 11
invokevirtual org.h2.mvstore.FileStore.readFully:(JI)Ljava/nio/ByteBuffer;
astore 9
start local 9 19: lload 1
invokestatic org.h2.mvstore.DataUtils.getPageChunkId:(J)I
istore 12
start local 12 20: lload 1
invokestatic org.h2.mvstore.DataUtils.getPageOffset:(J)I
istore 13
start local 13 21: aload 9
invokevirtual java.nio.ByteBuffer.position:()I
istore 14
start local 14 22: aload 9
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 15
start local 15 23: aload 9
invokevirtual java.nio.ByteBuffer.getInt:()I
istore 16
start local 16 24: iload 16
iload 15
if_icmpgt 25
iload 16
iconst_4
if_icmpge 29
25: 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: ldc "File corrupted in chunk {0}, expected page length 4..{1}, got {2}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
iload 12
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 15
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
27: iload 16
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
28: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
29: StackMap locals:
StackMap stack:
aload 9
iload 14
iload 16
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
30: aload 9
invokevirtual java.nio.ByteBuffer.getShort:()S
istore 17
start local 17 31: aload 9
invokestatic org.h2.mvstore.DataUtils.readVarInt:(Ljava/nio/ByteBuffer;)I
istore 18
start local 18 32: iload 18
iload 3
if_icmpeq 36
33: bipush 6
34: ldc "File corrupted in chunk {0}, expected map id {1}, got {2}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
iload 12
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iload 18
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
35: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
36: StackMap locals: int int
StackMap stack:
iload 12
invokestatic org.h2.mvstore.DataUtils.getCheckValue:(I)S
37: iload 13
invokestatic org.h2.mvstore.DataUtils.getCheckValue:(I)S
38: ixor
39: iload 16
invokestatic org.h2.mvstore.DataUtils.getCheckValue:(I)S
40: ixor
istore 19
start local 19 41: iload 17
iload 19
i2s
if_icmpeq 45
42: bipush 6
43: ldc "File corrupted in chunk {0}, expected check value {1}, got {2}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
iload 12
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 19
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iload 17
invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
aastore
44: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
45: StackMap locals: int
StackMap stack:
aload 9
areturn
end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 7 end local 5 end local 4 end local 3 end local 1 end local 0 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 start local 1 0: lload 1
invokestatic org.h2.mvstore.DataUtils.getPageChunkId:(J)I
istore 3
start local 3 1: aload 0
getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
iload 3
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
start local 4 2: aload 4
ifnonnull 15
3: aload 0
invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
4: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
iload 3
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
start local 5 5: aload 5
ifnonnull 9
6: bipush 9
7: ldc "Chunk {0} not found"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
8: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
9: StackMap locals: int org.h2.mvstore.Chunk java.lang.String
StackMap stack:
aload 5
invokestatic org.h2.mvstore.Chunk.fromString:(Ljava/lang/String;)Lorg/h2/mvstore/Chunk;
astore 4
10: aload 4
getfield org.h2.mvstore.Chunk.block:J
ldc 9223372036854775807
lcmp
ifne 14
11: bipush 6
12: ldc "Chunk {0} is invalid"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
13: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
14: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
aload 4
getfield org.h2.mvstore.Chunk.id:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 4
invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 15: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 1 end local 0 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 start local 1 0: aload 0
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
start local 3 1: goto 9
2: StackMap locals: java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.mvstore.MVMap
astore 4
start local 4 3: aload 4
lload 1
invokevirtual org.h2.mvstore.MVMap.setWriteVersion:(J)Lorg/h2/mvstore/RootReference;
ifnonnull 9
4: getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 5
aload 4
invokevirtual org.h2.mvstore.MVMap.isClosed:()Z
ifne 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals: org.h2.mvstore.MVMap
StackMap stack:
getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 6
aload 4
invokevirtual org.h2.mvstore.MVMap.getVersion:()J
aload 0
invokevirtual org.h2.mvstore.MVStore.getOldestVersionToKeep:()J
lcmp
iflt 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
aload 4
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: aload 0
invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
8: aload 3
invokeinterface java.util.Iterator.remove:()V
end local 4 9: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
end local 3 10: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
lload 1
invokevirtual org.h2.mvstore.MVMap.setWriteVersion:(J)Lorg/h2/mvstore/RootReference;
pop
11: aload 0
lload 1
invokevirtual org.h2.mvstore.MVStore.onVersionChange:(J)V
12: return
end local 1 end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ifeq 1
aload 0
getfield org.h2.mvstore.MVStore.currentStoreVersion:J
lconst_0
lcmp
ifge 8
1: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:()Z
ifeq 8
2: aload 0
invokevirtual org.h2.mvstore.MVStore.store:()V
3: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 1
5: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 1
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.currentVersion:J
lreturn
end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ifeq 1
aload 0
getfield org.h2.mvstore.MVStore.currentStoreVersion:J
lconst_0
lcmp
ifge 8
1: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
invokevirtual org.h2.mvstore.MVStore.store:()V
3: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 1
5: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 1
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.currentVersion:J
lreturn
end local 0 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 0: aload 0
invokevirtual org.h2.mvstore.MVStore.isOpenOrStopping:()Z
ifeq 22
aload 0
invokevirtual org.h2.mvstore.MVStore.hasUnsavedChangesInternal:()Z
ifeq 22
1: aload 0
aload 0
getfield org.h2.mvstore.MVStore.currentVersion:J
putfield org.h2.mvstore.MVStore.currentStoreVersion:J
2: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
ifnonnull 8
3: aload 0
aload 0
getfield org.h2.mvstore.MVStore.currentVersion:J
putfield org.h2.mvstore.MVStore.lastStoredVersion:J
4: aload 0
dup
getfield org.h2.mvstore.MVStore.currentVersion:J
lconst_1
ladd
putfield org.h2.mvstore.MVStore.currentVersion:J
5: aload 0
aload 0
getfield org.h2.mvstore.MVStore.currentVersion:J
invokevirtual org.h2.mvstore.MVStore.setWriteVersion:(J)V
6: aload 0
iconst_0
putfield org.h2.mvstore.MVStore.metaChanged:Z
7: goto 22
8: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.isReadOnly:()Z
ifeq 11
9: iconst_2
ldc "This store is read-only"
iconst_0
anewarray java.lang.Object
10: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVStore.storeNow:()V
12: goto 22
StackMap locals:
StackMap stack: java.lang.IllegalStateException
13: astore 1
start local 1 14: aload 0
aload 1
invokevirtual org.h2.mvstore.MVStore.panic:(Ljava/lang/IllegalStateException;)V
end local 1 15: goto 22
16: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 17: aload 0
iconst_3
aload 1
invokevirtual java.lang.Throwable.toString:()Ljava/lang/String;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
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 18: goto 22
StackMap locals:
StackMap stack: java.lang.Throwable
19: astore 2
20: aload 0
ldc -1
putfield org.h2.mvstore.MVStore.currentStoreVersion:J
21: aload 2
athrow
22: StackMap locals:
StackMap stack:
aload 0
ldc -1
putfield org.h2.mvstore.MVStore.currentStoreVersion:J
23: return
end local 0 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 0: getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 1
aload 0
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: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVStore.getTimeSinceCreation:()J
lstore 1
start local 1 2: aload 0
lload 1
invokevirtual org.h2.mvstore.MVStore.freeUnusedIfNeeded:(J)V
3: aload 0
getfield org.h2.mvstore.MVStore.unsavedMemory:I
istore 3
start local 3 4: aload 0
getfield org.h2.mvstore.MVStore.currentStoreVersion:J
lstore 4
start local 4 5: aload 0
dup
getfield org.h2.mvstore.MVStore.currentVersion:J
lconst_1
ladd
dup2_x1
putfield org.h2.mvstore.MVStore.currentVersion:J
lstore 6
start local 6 6: aload 0
lload 1
putfield org.h2.mvstore.MVStore.lastCommitTime:J
7: aload 0
getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
ifnonnull 10
8: iconst_0
istore 8
start local 8 9: goto 14
end local 8 10: StackMap locals: org.h2.mvstore.MVStore long int long long
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
getfield org.h2.mvstore.Chunk.id:I
istore 8
start local 8 11: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
iload 8
invokestatic org.h2.mvstore.Chunk.getMetaKey:(I)Ljava/lang/String;
aload 0
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: aload 0
invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
13: aload 0
getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
getfield org.h2.mvstore.Chunk.time:J
lload 1
invokestatic java.lang.Math.max:(JJ)J
lstore 1
14: StackMap locals: int
StackMap stack:
iload 8
istore 9
start local 9 15: StackMap locals: int
StackMap stack:
iload 9
iconst_1
iadd
ldc 67108863
iand
istore 9
16: aload 0
getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
iload 9
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
start local 10 17: aload 10
ifnonnull 19
18: goto 25
19: StackMap locals: org.h2.mvstore.Chunk
StackMap stack:
aload 10
getfield org.h2.mvstore.Chunk.block:J
ldc 9223372036854775807
lcmp
ifne 15
20: iconst_3
21: ldc "Last block {0} not stored, possibly due to out-of-memory"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 10
aastore
22: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
astore 11
start local 11 23: aload 0
aload 11
invokevirtual org.h2.mvstore.MVStore.panic:(Ljava/lang/IllegalStateException;)V
end local 11 end local 10 24: goto 15
25: StackMap locals:
StackMap stack:
new org.h2.mvstore.Chunk
dup
iload 9
invokespecial org.h2.mvstore.Chunk.<init>:(I)V
astore 10
start local 10 26: aload 10
ldc 2147483647
putfield org.h2.mvstore.Chunk.pageCount:I
27: aload 10
ldc 2147483647
putfield org.h2.mvstore.Chunk.pageCountLive:I
28: aload 10
ldc 9223372036854775807
putfield org.h2.mvstore.Chunk.maxLen:J
29: aload 10
ldc 9223372036854775807
putfield org.h2.mvstore.Chunk.maxLenLive:J
30: aload 10
ldc 9223372036854775807
putfield org.h2.mvstore.Chunk.metaRootPos:J
31: aload 10
ldc 9223372036854775807
putfield org.h2.mvstore.Chunk.block:J
32: aload 10
ldc 2147483647
putfield org.h2.mvstore.Chunk.len:I
33: aload 10
lload 1
putfield org.h2.mvstore.Chunk.time:J
34: aload 10
lload 6
putfield org.h2.mvstore.Chunk.version:J
35: aload 10
aload 0
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: aload 10
ldc 9223372036854775807
putfield org.h2.mvstore.Chunk.next:J
37: aload 0
getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
aload 10
getfield org.h2.mvstore.Chunk.id:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 10
invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
38: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 11
start local 11 39: aload 0
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
start local 12 40: goto 57
41: StackMap locals: org.h2.mvstore.Chunk java.util.ArrayList java.util.Iterator
StackMap stack:
aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.mvstore.MVMap
astore 13
start local 13 42: aload 13
lload 6
invokevirtual org.h2.mvstore.MVMap.setWriteVersion:(J)Lorg/h2/mvstore/RootReference;
astore 14
start local 14 43: aload 14
ifnonnull 49
44: getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 45
aload 13
invokevirtual org.h2.mvstore.MVMap.isClosed:()Z
ifne 45
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
45: StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.RootReference
StackMap stack:
getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 46
aload 13
invokevirtual org.h2.mvstore.MVMap.getVersion:()J
aload 0
invokevirtual org.h2.mvstore.MVStore.getOldestVersionToKeep:()J
lcmp
iflt 46
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
46: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
aload 13
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: aload 12
invokeinterface java.util.Iterator.remove:()V
48: goto 57
StackMap locals:
StackMap stack:
49: aload 13
invokevirtual org.h2.mvstore.MVMap.getCreateVersion:()J
lload 4
lcmp
ifgt 57
50: aload 13
invokevirtual org.h2.mvstore.MVMap.isVolatile:()Z
ifne 57
51: aload 13
aload 0
getfield org.h2.mvstore.MVStore.lastStoredVersion:J
invokevirtual org.h2.mvstore.MVMap.hasChangesSince:(J)Z
ifeq 57
52: getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 53
aload 14
getfield org.h2.mvstore.RootReference.version:J
lload 6
lcmp
ifle 53
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
aload 14
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
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: StackMap locals:
StackMap stack:
aload 14
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
astore 15
start local 15 54: aload 15
invokevirtual org.h2.mvstore.Page.isSaved:()Z
ifeq 56
55: aload 15
invokevirtual org.h2.mvstore.Page.isLeaf:()Z
ifeq 57
56: StackMap locals: org.h2.mvstore.Page
StackMap stack:
aload 11
aload 15
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 15 end local 14 end local 13 57: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 41
end local 12 58: aload 0
invokevirtual org.h2.mvstore.MVStore.getWriteBuffer:()Lorg/h2/mvstore/WriteBuffer;
astore 12
start local 12 59: aload 10
aload 12
iconst_0
invokevirtual org.h2.mvstore.Chunk.writeChunkHeader:(Lorg/h2/mvstore/WriteBuffer;I)V
60: aload 12
invokevirtual org.h2.mvstore.WriteBuffer.position:()I
istore 13
start local 13 61: aload 10
iconst_0
putfield org.h2.mvstore.Chunk.pageCount:I
62: aload 10
iconst_0
putfield org.h2.mvstore.Chunk.pageCountLive:I
63: aload 10
lconst_0
putfield org.h2.mvstore.Chunk.maxLen:J
64: aload 10
lconst_0
putfield org.h2.mvstore.Chunk.maxLenLive:J
65: aload 11
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
start local 14 67: aload 14
invokevirtual org.h2.mvstore.Page.getMapId:()I
invokestatic org.h2.mvstore.MVMap.getMapRootKey:(I)Ljava/lang/String;
astore 16
start local 16 68: aload 14
invokevirtual org.h2.mvstore.Page.getTotalCount:()J
lconst_0
lcmp
ifne 71
69: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
aload 16
invokevirtual org.h2.mvstore.MVMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
70: goto 74
71: 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
aload 10
aload 12
invokevirtual org.h2.mvstore.Page.writeUnsavedRecursive:(Lorg/h2/mvstore/Chunk;Lorg/h2/mvstore/WriteBuffer;)V
72: aload 14
invokevirtual org.h2.mvstore.Page.getPos:()J
lstore 17
start local 17 73: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
aload 16
lload 17
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 end local 16 end local 14 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:
aload 15
invokeinterface java.util.Iterator.hasNext:()Z
ifne 66
75: aload 0
invokevirtual org.h2.mvstore.MVStore.applyFreedSpace:()V
76: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
lload 6
invokevirtual org.h2.mvstore.MVMap.setWriteVersion:(J)Lorg/h2/mvstore/RootReference;
astore 14
start local 14 77: getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 78
aload 14
ifnonnull 78
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
78: 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
getfield org.h2.mvstore.RootReference.version:J
lload 6
lcmp
ifeq 79
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
aload 14
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
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: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield org.h2.mvstore.MVStore.metaChanged:Z
80: aload 0
lload 6
invokevirtual org.h2.mvstore.MVStore.onVersionChange:(J)V
81: aload 14
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
astore 15
start local 15 82: aload 15
aload 10
aload 12
invokevirtual org.h2.mvstore.Page.writeUnsavedRecursive:(Lorg/h2/mvstore/Chunk;Lorg/h2/mvstore/WriteBuffer;)V
83: aload 12
invokevirtual org.h2.mvstore.WriteBuffer.position:()I
istore 16
start local 16 84: iload 16
85: sipush 128
86: iadd
87: sipush 4096
88: invokestatic org.h2.util.MathUtils.roundUpInt:(II)I
istore 17
start local 17 89: aload 12
iload 17
invokevirtual org.h2.mvstore.WriteBuffer.limit:(I)Lorg/h2/mvstore/WriteBuffer;
pop
90: aload 0
iload 17
aload 0
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
start local 18 93: aload 10
lload 18
ldc 4096
ldiv
putfield org.h2.mvstore.Chunk.block:J
94: aload 10
iload 17
sipush 4096
idiv
putfield org.h2.mvstore.Chunk.len:I
95: getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 97
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.getFileLengthInUse:()J
aload 0
invokevirtual org.h2.mvstore.MVStore.measureFileLengthInUse:()J
lcmp
ifeq 97
new java.lang.AssertionError
dup
96: new java.lang.StringBuilder
dup
aload 0
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
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
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: StackMap locals: long
StackMap stack:
aload 10
aload 15
invokevirtual org.h2.mvstore.Page.getPos:()J
putfield org.h2.mvstore.Chunk.metaRootPos:J
98: aload 0
getfield org.h2.mvstore.MVStore.reuseSpace:Z
ifeq 101
99: aload 10
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
aload 10
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: goto 102
101: StackMap locals:
StackMap stack:
aload 10
lconst_0
putfield org.h2.mvstore.Chunk.next:J
102: StackMap locals:
StackMap stack:
aload 12
iconst_0
invokevirtual org.h2.mvstore.WriteBuffer.position:(I)Lorg/h2/mvstore/WriteBuffer;
pop
103: aload 10
aload 12
iload 13
invokevirtual org.h2.mvstore.Chunk.writeChunkHeader:(Lorg/h2/mvstore/WriteBuffer;I)V
104: aload 12
aload 12
invokevirtual org.h2.mvstore.WriteBuffer.limit:()I
sipush 128
isub
invokevirtual org.h2.mvstore.WriteBuffer.position:(I)Lorg/h2/mvstore/WriteBuffer;
pop
105: aload 12
aload 10
invokevirtual org.h2.mvstore.Chunk.getFooterBytes:()[B
invokevirtual org.h2.mvstore.WriteBuffer.put:([B)Lorg/h2/mvstore/WriteBuffer;
pop
106: aload 12
iconst_0
invokevirtual org.h2.mvstore.WriteBuffer.position:(I)Lorg/h2/mvstore/WriteBuffer;
pop
107: aload 0
lload 18
aload 12
invokevirtual org.h2.mvstore.WriteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual org.h2.mvstore.MVStore.write:(JLjava/nio/ByteBuffer;)V
108: aload 0
aload 12
invokevirtual org.h2.mvstore.MVStore.releaseWriteBuffer:(Lorg/h2/mvstore/WriteBuffer;)V
109: iconst_0
istore 20
start local 20 110: lload 18
iload 17
i2l
ladd
aload 0
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
start local 21 113: iload 21
ifne 134
114: aload 0
getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
ifnonnull 117
115: iconst_1
istore 20
116: goto 134
StackMap locals: int
StackMap stack:
117: aload 0
getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
getfield org.h2.mvstore.Chunk.next:J
aload 10
getfield org.h2.mvstore.Chunk.block:J
lcmp
ifeq 120
118: iconst_1
istore 20
119: goto 134
120: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
ldc "version"
lconst_0
121: invokestatic org.h2.mvstore.DataUtils.readHexLong:(Ljava/util/Map;Ljava/lang/String;J)J
lstore 22
start local 22 122: aload 0
getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
getfield org.h2.mvstore.Chunk.version:J
lload 22
lsub
ldc 20
lcmp
ifle 125
123: iconst_1
istore 20
124: goto 134
125: StackMap locals: long
StackMap stack:
aload 0
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
start local 24 126: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
iload 24
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
start local 25 127: aload 25
ifnonnull 130
128: iconst_1
istore 20
129: goto 134
130: StackMap locals: org.h2.mvstore.Chunk
StackMap stack:
iload 24
aload 0
getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
getfield org.h2.mvstore.Chunk.id:I
if_icmpne 132
131: goto 134
132: StackMap locals:
StackMap stack:
iinc 24 1
end local 25 133: goto 126
end local 24 end local 22 134: StackMap locals:
StackMap stack:
aload 0
aload 10
putfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
135: iload 20
ifeq 137
136: aload 0
invokevirtual org.h2.mvstore.MVStore.writeStoreHeader:()V
137: StackMap locals:
StackMap stack:
iload 21
ifne 139
138: aload 0
iconst_1
invokevirtual org.h2.mvstore.MVStore.shrinkFileIfPossible:(I)V
139: StackMap locals:
StackMap stack:
aload 11
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
start local 22 141: aload 22
invokevirtual org.h2.mvstore.Page.writeEnd:()V
end local 22 142: StackMap locals:
StackMap stack:
aload 23
invokeinterface java.util.Iterator.hasNext:()Z
ifne 140
143: aload 15
invokevirtual org.h2.mvstore.Page.writeEnd:()V
144: aload 0
iconst_0
aload 0
getfield org.h2.mvstore.MVStore.unsavedMemory:I
145: iload 3
isub
146: invokestatic java.lang.Math.max:(II)I
putfield org.h2.mvstore.MVStore.unsavedMemory:I
147: aload 0
lload 4
putfield org.h2.mvstore.MVStore.lastStoredVersion:J
148: return
end local 21 end local 20 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 6 end local 4 end local 3 end local 1 end local 0 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 start local 1 0: aload 0
getfield org.h2.mvstore.MVStore.retentionTime:I
iconst_5
idiv
istore 3
start local 3 1: lload 1
aload 0
getfield org.h2.mvstore.MVStore.lastFreeUnusedChunks:J
lsub
iload 3
i2l
lcmp
iflt 4
2: aload 0
lload 1
putfield org.h2.mvstore.MVStore.lastFreeUnusedChunks:J
3: aload 0
iconst_1
invokevirtual org.h2.mvstore.MVStore.freeUnusedChunks:(Z)V
4: StackMap locals: int
StackMap stack:
return
end local 3 end local 1 end local 0 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 start local 1 0: getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 1
aload 0
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: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
ifnull 23
aload 0
getfield org.h2.mvstore.MVStore.reuseSpace:Z
ifeq 23
2: aload 0
iload 1
invokevirtual org.h2.mvstore.MVStore.collectReferencedChunks:(Z)Ljava/util/Set;
astore 2
start local 2 3: aload 0
invokevirtual org.h2.mvstore.MVStore.getTimeSinceCreation:()J
lstore 3
start local 3 4: aload 0
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
start local 5 5: goto 21
6: StackMap locals: java.util.Set long java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.mvstore.Chunk
astore 6
start local 6 7: aload 6
getfield org.h2.mvstore.Chunk.block:J
ldc 9223372036854775807
lcmp
ifeq 21
aload 2
aload 6
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: aload 0
aload 6
lload 3
invokevirtual org.h2.mvstore.MVStore.canOverwriteChunk:(Lorg/h2/mvstore/Chunk;J)Z
ifeq 17
9: aload 5
invokeinterface java.util.Iterator.remove:()V
10: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
aload 6
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: aload 0
invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
12: StackMap locals: org.h2.mvstore.Chunk
StackMap stack:
aload 6
getfield org.h2.mvstore.Chunk.block:J
ldc 4096
lmul
lstore 7
start local 7 13: aload 6
getfield org.h2.mvstore.Chunk.len:I
sipush 4096
imul
istore 9
start local 9 14: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
lload 7
iload 9
invokevirtual org.h2.mvstore.FileStore.free:(JI)V
15: getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 21
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.getFileLengthInUse:()J
aload 0
invokevirtual org.h2.mvstore.MVStore.measureFileLengthInUse:()J
lcmp
ifeq 21
new java.lang.AssertionError
dup
16: new java.lang.StringBuilder
dup
aload 0
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
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 end local 7 17: StackMap locals:
StackMap stack:
aload 6
getfield org.h2.mvstore.Chunk.unused:J
lconst_0
lcmp
ifne 21
18: aload 6
lload 3
putfield org.h2.mvstore.Chunk.unused:J
19: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
aload 6
getfield org.h2.mvstore.Chunk.id:I
invokestatic org.h2.mvstore.Chunk.getMetaKey:(I)Ljava/lang/String;
aload 6
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: aload 0
invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
end local 6 21: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
end local 5 22: aload 0
aload 0
invokevirtual org.h2.mvstore.MVStore.getTimeSinceCreation:()J
putfield org.h2.mvstore.MVStore.lastFreeUnusedChunks:J
end local 3 end local 2 23: StackMap locals:
StackMap stack:
return
end local 1 end local 0 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 start local 1 0: getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 1
aload 0
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: 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: new java.util.concurrent.ArrayBlockingQueue
dup
aload 0
getfield org.h2.mvstore.MVStore.keysPerPage:I
iconst_1
iadd
invokespecial java.util.concurrent.ArrayBlockingQueue.<init>:(I)V
3: invokespecial java.util.concurrent.ThreadPoolExecutor.<init>:(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;)V
astore 2
start local 2 4: new java.util.concurrent.atomic.AtomicInteger
dup
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
astore 3
start local 3 5: new org.h2.mvstore.MVStore$ChunkIdsCollector
dup
aload 0
aload 0
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
start local 4 6: aload 0
invokevirtual org.h2.mvstore.MVStore.getOldestVersionToKeep:()J
lstore 5
start local 5 7: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
invokevirtual org.h2.mvstore.MVMap.flushAndGetRoot:()Lorg/h2/mvstore/RootReference;
astore 7
start local 7 8: iload 1
ifeq 22
9: goto 11
start local 8 10: 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
astore 7
end local 8 11: StackMap locals:
StackMap stack:
aload 7
getfield org.h2.mvstore.RootReference.version:J
lload 5
lcmp
iflt 13
aload 7
getfield org.h2.mvstore.RootReference.previous:Lorg/h2/mvstore/RootReference;
dup
astore 8
start local 8 12: ifnonnull 10
end local 8 13: StackMap locals:
StackMap stack:
aload 0
aload 7
aload 4
aload 2
aload 3
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: aload 7
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
astore 9
start local 9 15: aload 9
invokevirtual org.h2.mvstore.Page.getPos:()J
lstore 10
start local 10 16: getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 17
aload 9
invokevirtual org.h2.mvstore.Page.isSaved:()Z
ifne 17
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
17: 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
invokestatic org.h2.mvstore.DataUtils.getPageChunkId:(J)I
istore 12
start local 12 18: goto 20
19: StackMap locals: int
StackMap stack:
aload 4
iload 12
invokevirtual org.h2.mvstore.MVStore$ChunkIdsCollector.registerChunk:(I)V
20: StackMap locals:
StackMap stack:
iinc 12 1
iload 12
aload 0
getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
getfield org.h2.mvstore.Chunk.id:I
if_icmple 19
end local 12 end local 10 end local 9 21: goto 26
22: 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
start local 8 23: StackMap locals: java.util.Set
StackMap stack:
aload 0
aload 7
aload 4
aload 2
aload 3
aload 8
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: aload 7
getfield org.h2.mvstore.RootReference.version:J
lload 5
lcmp
iflt 26
25: aload 7
getfield org.h2.mvstore.RootReference.previous:Lorg/h2/mvstore/RootReference;
dup
astore 7
ifnonnull 23
end local 8 26: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.h2.mvstore.MVStore$ChunkIdsCollector.getReferenced:()Ljava/util/Set;
astore 14
27: aload 2
invokevirtual java.util.concurrent.ThreadPoolExecutor.shutdownNow:()Ljava/util/List;
pop
28: aload 14
areturn
end local 7 end local 5 end local 4 29: StackMap locals: org.h2.mvstore.MVStore int java.util.concurrent.ThreadPoolExecutor java.util.concurrent.atomic.AtomicInteger
StackMap stack: java.lang.Throwable
astore 13
30: aload 2
invokevirtual java.util.concurrent.ThreadPoolExecutor.shutdownNow:()Ljava/util/List;
pop
31: aload 13
athrow
end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 1
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
astore 6
start local 6 1: aload 6
invokevirtual org.h2.mvstore.Page.getPos:()J
lstore 7
start local 7 2: aload 6
invokevirtual org.h2.mvstore.Page.isSaved:()Z
ifeq 7
3: aload 5
ifnull 5
aload 5
lload 7
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
ifne 5
4: return
5: StackMap locals: org.h2.mvstore.Page long
StackMap stack:
aload 2
aload 0
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: aload 2
lload 7
aload 3
aload 4
invokevirtual org.h2.mvstore.MVStore$ChunkIdsCollector.visit:(JLjava/util/concurrent/ThreadPoolExecutor;Ljava/util/concurrent/atomic/AtomicInteger;)V
7: StackMap locals:
StackMap stack:
new org.h2.mvstore.Cursor
dup
aload 6
ldc "root."
invokespecial org.h2.mvstore.Cursor.<init>:(Lorg/h2/mvstore/Page;Ljava/lang/Object;)V
astore 9
start local 9 8: goto 18
9: StackMap locals: org.h2.mvstore.Cursor
StackMap stack:
aload 9
invokevirtual org.h2.mvstore.Cursor.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 10
start local 10 10: aload 10
ldc "root."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 12
11: goto 19
12: StackMap locals: java.lang.String
StackMap stack:
aload 9
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
13: lload 7
invokestatic org.h2.mvstore.DataUtils.isPageSaved:(J)Z
ifeq 18
14: aload 5
ifnull 15
aload 5
lload 7
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
ifeq 18
15: StackMap locals:
StackMap stack:
aload 10
aload 10
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
start local 11 16: aload 2
iload 11
invokevirtual org.h2.mvstore.MVStore$ChunkIdsCollector.setMapId:(I)V
17: aload 2
lload 7
aload 3
aload 4
invokevirtual org.h2.mvstore.MVStore$ChunkIdsCollector.visit:(JLjava/util/concurrent/ThreadPoolExecutor;Ljava/util/concurrent/atomic/AtomicInteger;)V
end local 11 end local 10 18: StackMap locals:
StackMap stack:
aload 9
invokevirtual org.h2.mvstore.Cursor.hasNext:()Z
ifne 9
end local 9 19: StackMap locals:
StackMap stack:
return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.writeBuffer:Lorg/h2/mvstore/WriteBuffer;
ifnull 4
1: aload 0
getfield org.h2.mvstore.MVStore.writeBuffer:Lorg/h2/mvstore/WriteBuffer;
astore 1
start local 1 2: aload 1
invokevirtual org.h2.mvstore.WriteBuffer.clear:()Lorg/h2/mvstore/WriteBuffer;
pop
3: goto 5
end local 1 4: StackMap locals:
StackMap stack:
new org.h2.mvstore.WriteBuffer
dup
invokespecial org.h2.mvstore.WriteBuffer.<init>:()V
astore 1
start local 1 5: StackMap locals: org.h2.mvstore.WriteBuffer
StackMap stack:
aload 1
areturn
end local 1 end local 0 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 start local 1 0: aload 1
invokevirtual org.h2.mvstore.WriteBuffer.capacity:()I
ldc 4194304
if_icmpgt 2
1: aload 0
aload 1
putfield org.h2.mvstore.MVStore.writeBuffer:Lorg/h2/mvstore/WriteBuffer;
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 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 start local 1 start local 2 0: aload 0
getfield org.h2.mvstore.MVStore.retentionTime:I
iflt 5
1: aload 1
getfield org.h2.mvstore.Chunk.time:J
aload 0
getfield org.h2.mvstore.MVStore.retentionTime:I
i2l
ladd
lload 2
lcmp
ifle 3
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 1
getfield org.h2.mvstore.Chunk.unused:J
lconst_0
lcmp
ifeq 4
aload 1
getfield org.h2.mvstore.Chunk.unused:J
aload 0
getfield org.h2.mvstore.MVStore.retentionTime:I
iconst_2
idiv
i2l
ladd
lload 2
lcmp
ifle 5
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
5: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 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 0: lconst_0
aload 0
invokevirtual org.h2.mvstore.MVStore.getTimeAbsolute:()J
aload 0
getfield org.h2.mvstore.MVStore.creationTime:J
lsub
invokestatic java.lang.Math.max:(JJ)J
lreturn
end local 0 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 0: invokestatic java.lang.System.currentTimeMillis:()J
lstore 1
start local 1 1: aload 0
getfield org.h2.mvstore.MVStore.lastTimeAbsolute:J
lconst_0
lcmp
ifeq 4
lload 1
aload 0
getfield org.h2.mvstore.MVStore.lastTimeAbsolute:J
lcmp
ifge 4
2: aload 0
getfield org.h2.mvstore.MVStore.lastTimeAbsolute:J
lstore 1
3: goto 5
4: StackMap locals: long
StackMap stack:
aload 0
lload 1
putfield org.h2.mvstore.MVStore.lastTimeAbsolute:J
5: StackMap locals:
StackMap stack:
lload 1
lreturn
end local 1 end local 0 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 0: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 0
getfield org.h2.mvstore.MVStore.freedPageSpace:Ljava/util/Map;
dup
astore 2
monitorenter
2: aload 0
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
start local 3 4: aload 0
getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
aload 3
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
start local 5 5: aload 5
ifnull 13
6: aload 5
dup
getfield org.h2.mvstore.Chunk.maxLenLive:J
aload 3
getfield org.h2.mvstore.Chunk.maxLenLive:J
ladd
putfield org.h2.mvstore.Chunk.maxLenLive:J
7: aload 5
dup
getfield org.h2.mvstore.Chunk.pageCountLive:I
aload 3
getfield org.h2.mvstore.Chunk.pageCountLive:I
iadd
putfield org.h2.mvstore.Chunk.pageCountLive:I
8: aload 5
getfield org.h2.mvstore.Chunk.pageCountLive:I
ifge 10
aload 5
getfield org.h2.mvstore.Chunk.pageCountLive:I
ldc -10000000
if_icmple 10
9: aload 5
iconst_0
putfield org.h2.mvstore.Chunk.pageCountLive:I
10: 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
getfield org.h2.mvstore.Chunk.maxLenLive:J
lconst_0
lcmp
ifge 12
aload 5
getfield org.h2.mvstore.Chunk.maxLenLive:J
ldc -10000000
lcmp
ifle 12
11: aload 5
lconst_0
putfield org.h2.mvstore.Chunk.maxLenLive:J
12: StackMap locals:
StackMap stack:
aload 1
aload 5
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 5 end local 3 13: 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: aload 0
getfield org.h2.mvstore.MVStore.freedPageSpace:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
15: 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: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.util.ArrayList.isEmpty:()Z
ifeq 21
20: goto 27
21: StackMap locals:
StackMap stack:
aload 1
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
start local 2 23: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
aload 2
getfield org.h2.mvstore.Chunk.id:I
invokestatic org.h2.mvstore.Chunk.getMetaKey:(I)Ljava/lang/String;
aload 2
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 24: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 22
25: aload 0
invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
end local 1 26: goto 0
27: StackMap locals: org.h2.mvstore.MVStore
StackMap stack:
return
end local 0 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 start local 1 0: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.isReadOnly:()Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVStore.getFileLengthInUse:()J
lstore 2
start local 2 3: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.size:()J
lstore 4
start local 4 4: lload 2
lload 4
lcmp
iflt 6
5: return
6: StackMap locals: long long
StackMap stack:
iload 1
ifle 8
lload 4
lload 2
lsub
ldc 4096
lcmp
ifge 8
7: return
8: StackMap locals:
StackMap stack:
ldc 100
lload 2
ldc 100
lmul
lload 4
ldiv
lsub
l2i
istore 6
start local 6 9: iload 6
iload 1
if_icmpge 11
10: return
11: StackMap locals: int
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVStore.isOpenOrStopping:()Z
ifeq 13
12: aload 0
invokevirtual org.h2.mvstore.MVStore.sync:()V
13: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
lload 2
invokevirtual org.h2.mvstore.FileStore.truncate:(J)V
14: return
end local 6 end local 4 end local 2 end local 1 end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.getFileLengthInUse:()J
lstore 1
start local 1 1: getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 2
lload 1
aload 0
invokevirtual org.h2.mvstore.MVStore.measureFileLengthInUse:()J
lcmp
ifeq 2
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
lload 1
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
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: StackMap locals: long
StackMap stack:
lload 1
lreturn
end local 1 end local 0 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 0: ldc 2
lstore 1
start local 1 1: aload 0
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
start local 3 3: aload 3
getfield org.h2.mvstore.Chunk.len:I
ldc 2147483647
if_icmpeq 5
4: lload 1
aload 3
getfield org.h2.mvstore.Chunk.block:J
aload 3
getfield org.h2.mvstore.Chunk.len:I
i2l
ladd
invokestatic java.lang.Math.max:(JJ)J
lstore 1
end local 3 5: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: lload 1
ldc 4096
lmul
lreturn
end local 1 end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.metaChanged:Z
ifeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
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
start local 1 4: aload 1
invokevirtual org.h2.mvstore.MVMap.isClosed:()Z
ifne 7
5: aload 1
aload 0
getfield org.h2.mvstore.MVStore.lastStoredVersion:J
invokevirtual org.h2.mvstore.MVMap.hasChangesSince:(J)Z
ifeq 7
6: iconst_1
ireturn
end local 1 7: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
8: iconst_0
ireturn
end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
aload 0
getfield org.h2.mvstore.MVStore.lastStoredVersion:J
invokevirtual org.h2.mvstore.MVMap.hasChangesSince:(J)Z
ifeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVStore.hasUnsavedChanges:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/mvstore/MVStore;
private org.h2.mvstore.Chunk (long);
descriptor: (J)Lorg/h2/mvstore/Chunk;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: lload 1
ldc 4096
lmul
lstore 3
start local 3 1: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
lload 3
sipush 1024
invokevirtual org.h2.mvstore.FileStore.readFully:(JI)Ljava/nio/ByteBuffer;
astore 5
start local 5 2: aload 5
lload 3
invokestatic org.h2.mvstore.Chunk.readChunkHeader:(Ljava/nio/ByteBuffer;J)Lorg/h2/mvstore/Chunk;
areturn
end local 5 end local 3 end local 1 end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
2: aload 0
getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
ifnonnull 5
3: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
aload 0
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
start local 1 7: aload 1
astore 3
start local 3 8: aload 3
aconst_null
invokevirtual org.h2.mvstore.MVMap.cursor:(Ljava/lang/Object;)Lorg/h2/mvstore/Cursor;
astore 4
start local 4 9: aconst_null
astore 5
start local 5 10: goto 19
11: 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
invokevirtual org.h2.mvstore.Cursor.next:()Ljava/lang/Object;
pop
12: aload 4
invokevirtual org.h2.mvstore.Cursor.getPage:()Lorg/h2/mvstore/Page;
astore 6
start local 6 13: aload 6
aload 5
if_acmpne 15
14: goto 19
15: StackMap locals: org.h2.mvstore.Page
StackMap stack:
aload 6
iconst_0
invokevirtual org.h2.mvstore.Page.getKey:(I)Ljava/lang/Object;
astore 7
start local 7 16: aload 6
iconst_0
invokevirtual org.h2.mvstore.Page.getValue:(I)Ljava/lang/Object;
astore 8
start local 8 17: aload 3
aload 7
aload 8
invokevirtual org.h2.mvstore.MVMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: aload 6
astore 5
end local 8 end local 7 end local 6 19: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.h2.mvstore.Cursor.hasNext:()Z
ifne 11
end local 5 end local 4 end local 3 end local 1 20: StackMap locals: org.h2.mvstore.MVStore top java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
21: aload 0
invokevirtual org.h2.mvstore.MVStore.commit:()J
pop2
22: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
23: iconst_1
ireturn
24: StackMap locals: org.h2.mvstore.MVStore
StackMap stack: java.lang.Throwable
astore 9
25: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
26: aload 9
athrow
end local 0 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 0: aload 0
bipush 100
ldc 9223372036854775807
invokevirtual org.h2.mvstore.MVStore.compactMoveChunks:(IJ)V
1: return
end local 0 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 start local 1 start local 2 0: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
2: aload 0
getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
ifnull 22
aload 0
getfield org.h2.mvstore.MVStore.reuseSpace:Z
ifeq 22
3: aload 0
getfield org.h2.mvstore.MVStore.retentionTime:I
istore 4
start local 4 4: aload 0
getfield org.h2.mvstore.MVStore.reuseSpace:Z
istore 5
start local 5 5: aload 0
iconst_m1
putfield org.h2.mvstore.MVStore.retentionTime:I
6: aload 0
iconst_0
invokevirtual org.h2.mvstore.MVStore.freeUnusedChunks:(Z)V
7: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.getFillRate:()I
iload 1
if_icmpgt 16
8: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.getFirstFree:()J
ldc 4096
ldiv
lstore 6
start local 6 9: aload 0
lload 6
lload 2
invokevirtual org.h2.mvstore.MVStore.findChunksToMove:(JJ)Ljava/util/ArrayList;
astore 8
start local 8 10: aload 0
aload 8
invokevirtual org.h2.mvstore.MVStore.compactMoveChunks:(Ljava/util/ArrayList;)V
end local 8 end local 6 11: goto 16
StackMap locals: org.h2.mvstore.MVStore int long int int
StackMap stack: java.lang.Throwable
12: astore 9
13: aload 0
iload 5
putfield org.h2.mvstore.MVStore.reuseSpace:Z
14: aload 0
iload 4
putfield org.h2.mvstore.MVStore.retentionTime:I
15: aload 9
athrow
16: StackMap locals:
StackMap stack:
aload 0
iload 5
putfield org.h2.mvstore.MVStore.reuseSpace:Z
17: aload 0
iload 4
putfield org.h2.mvstore.MVStore.retentionTime:I
end local 5 end local 4 18: goto 22
StackMap locals: org.h2.mvstore.MVStore int long
StackMap stack: java.lang.Throwable
19: astore 10
20: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
21: aload 10
athrow
22: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
23: return
end local 2 end local 1 end local 0 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 start local 1 start local 3 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 5
start local 5 1: aload 0
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
start local 6 3: aload 6
getfield org.h2.mvstore.Chunk.block:J
lload 1
lcmp
ifle 5
4: aload 5
aload 6
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 6 5: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: aload 5
new org.h2.mvstore.MVStore$2
dup
aload 0
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: iconst_0
istore 6
start local 6 8: lconst_0
lstore 7
start local 7 9: aload 5
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
start local 9 11: aload 9
getfield org.h2.mvstore.Chunk.len:I
i2l
ldc 4096
lmul
lstore 11
start local 11 12: lload 7
lload 11
ladd
lstore 7
13: lload 7
lload 3
lcmp
ifle 15
14: goto 19
15: 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 1
end local 11 end local 9 16: 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: goto 19
18: StackMap locals: org.h2.mvstore.MVStore long long java.util.ArrayList int long
StackMap stack:
aload 5
iconst_1
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
pop
19: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.util.ArrayList.size:()I
iload 6
if_icmple 20
aload 5
invokevirtual java.util.ArrayList.size:()I
iconst_1
if_icmpgt 18
20: StackMap locals:
StackMap stack:
aload 5
areturn
end local 7 end local 6 end local 5 end local 3 end local 1 end local 0 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 start local 1 0: aload 1
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
start local 2 2: aload 0
aload 2
iconst_1
invokevirtual org.h2.mvstore.MVStore.moveChunk:(Lorg/h2/mvstore/Chunk;Z)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: aload 0
iconst_0
putfield org.h2.mvstore.MVStore.reuseSpace:Z
5: aload 0
invokevirtual org.h2.mvstore.MVStore.commit:()J
pop2
6: aload 0
invokevirtual org.h2.mvstore.MVStore.sync:()V
7: aload 0
getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
astore 2
start local 2 8: aload 0
iconst_1
putfield org.h2.mvstore.MVStore.reuseSpace:Z
9: aload 1
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
start local 3 11: aload 0
getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
aload 3
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: aload 0
aload 3
iconst_0
invokevirtual org.h2.mvstore.MVStore.moveChunk:(Lorg/h2/mvstore/Chunk;Z)V
end local 3 13: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
14: aload 0
invokevirtual org.h2.mvstore.MVStore.commit:()J
pop2
15: aload 0
invokevirtual org.h2.mvstore.MVStore.sync:()V
16: aload 0
getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
aload 2
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: aload 0
aload 2
iconst_0
invokevirtual org.h2.mvstore.MVStore.moveChunk:(Lorg/h2/mvstore/Chunk;Z)V
18: aload 0
invokevirtual org.h2.mvstore.MVStore.commit:()J
pop2
19: StackMap locals: org.h2.mvstore.MVStore java.util.ArrayList org.h2.mvstore.Chunk
StackMap stack:
aload 0
iconst_0
invokevirtual org.h2.mvstore.MVStore.shrinkFileIfPossible:(I)V
20: aload 0
invokevirtual org.h2.mvstore.MVStore.sync:()V
21: return
end local 2 end local 1 end local 0 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 start local 1 start local 2 0: aload 0
invokevirtual org.h2.mvstore.MVStore.getWriteBuffer:()Lorg/h2/mvstore/WriteBuffer;
astore 3
start local 3 1: aload 1
getfield org.h2.mvstore.Chunk.block:J
ldc 4096
lmul
lstore 4
start local 4 2: aload 1
getfield org.h2.mvstore.Chunk.len:I
sipush 4096
imul
istore 6
start local 6 3: aload 3
iload 6
invokevirtual org.h2.mvstore.WriteBuffer.limit:(I)Lorg/h2/mvstore/WriteBuffer;
pop
4: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
lload 4
iload 6
invokevirtual org.h2.mvstore.FileStore.readFully:(JI)Ljava/nio/ByteBuffer;
astore 7
start local 7 5: aload 7
lload 4
invokestatic org.h2.mvstore.Chunk.readChunkHeader:(Ljava/nio/ByteBuffer;J)Lorg/h2/mvstore/Chunk;
pop
6: aload 7
invokevirtual java.nio.ByteBuffer.position:()I
istore 8
start local 8 7: aload 3
iload 8
invokevirtual org.h2.mvstore.WriteBuffer.position:(I)Lorg/h2/mvstore/WriteBuffer;
pop
8: aload 3
aload 7
invokevirtual org.h2.mvstore.WriteBuffer.put:(Ljava/nio/ByteBuffer;)Lorg/h2/mvstore/WriteBuffer;
pop
9: aload 0
iload 6
iload 2
invokevirtual org.h2.mvstore.MVStore.allocateFileSpace:(IZ)J
lstore 9
start local 9 10: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
lload 4
iload 6
invokevirtual org.h2.mvstore.FileStore.free:(JI)V
11: aload 1
lload 9
ldc 4096
ldiv
putfield org.h2.mvstore.Chunk.block:J
12: aload 1
lconst_0
putfield org.h2.mvstore.Chunk.next:J
13: aload 3
iconst_0
invokevirtual org.h2.mvstore.WriteBuffer.position:(I)Lorg/h2/mvstore/WriteBuffer;
pop
14: aload 1
aload 3
iload 8
invokevirtual org.h2.mvstore.Chunk.writeChunkHeader:(Lorg/h2/mvstore/WriteBuffer;I)V
15: aload 3
iload 6
sipush 128
isub
invokevirtual org.h2.mvstore.WriteBuffer.position:(I)Lorg/h2/mvstore/WriteBuffer;
pop
16: aload 3
aload 1
invokevirtual org.h2.mvstore.Chunk.getFooterBytes:()[B
invokevirtual org.h2.mvstore.WriteBuffer.put:([B)Lorg/h2/mvstore/WriteBuffer;
pop
17: aload 3
iconst_0
invokevirtual org.h2.mvstore.WriteBuffer.position:(I)Lorg/h2/mvstore/WriteBuffer;
pop
18: aload 0
lload 9
aload 3
invokevirtual org.h2.mvstore.WriteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual org.h2.mvstore.MVStore.write:(JLjava/nio/ByteBuffer;)V
19: aload 0
aload 3
invokevirtual org.h2.mvstore.MVStore.releaseWriteBuffer:(Lorg/h2/mvstore/WriteBuffer;)V
20: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
aload 1
getfield org.h2.mvstore.Chunk.id:I
invokestatic org.h2.mvstore.Chunk.getMetaKey:(I)Ljava/lang/String;
aload 1
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: aload 0
invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
22: return
end local 9 end local 8 end local 7 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 0: iload 2
ifeq 4
1: aload 0
invokevirtual org.h2.mvstore.MVStore.getFileLengthInUse:()J
lstore 3
start local 3 2: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
lload 3
iload 1
invokevirtual org.h2.mvstore.FileStore.markUsed:(JI)V
3: goto 5
end local 3 4: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
iload 1
invokevirtual org.h2.mvstore.FileStore.allocate:(I)J
lstore 3
start local 3 5: StackMap locals: long
StackMap stack:
lload 3
lreturn
end local 3 end local 2 end local 1 end local 0 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 0: aload 0
invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
1: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
astore 1
start local 1 2: aload 1
ifnull 4
3: aload 1
invokevirtual org.h2.mvstore.FileStore.sync:()V
4: StackMap locals: org.h2.mvstore.FileStore
StackMap stack:
return
end local 1 end local 0 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 start local 1 start local 2 0: aload 0
getfield org.h2.mvstore.MVStore.reuseSpace:Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
3: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ifne 15
4: aload 0
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: aload 0
iload 1
iload 2
invokevirtual org.h2.mvstore.MVStore.findOldChunks:(II)Ljava/util/ArrayList;
astore 3
start local 3 6: aload 3
ifnull 7
aload 3
invokevirtual java.util.ArrayList.isEmpty:()Z
ifeq 9
7: StackMap locals: java.util.ArrayList
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: iconst_0
ireturn
9: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual org.h2.mvstore.MVStore.compactRewrite:(Ljava/lang/Iterable;)V
10: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
11: iconst_1
ireturn
end local 3 12: StackMap locals: org.h2.mvstore.MVStore int int
StackMap stack: java.lang.Throwable
astore 4
13: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
14: aload 4
athrow
15: StackMap locals:
StackMap stack:
iconst_0
ireturn
16: StackMap locals:
StackMap stack: java.lang.InterruptedException
astore 3
start local 3 17: new java.lang.RuntimeException
dup
aload 3
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 end local 1 end local 0 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 0: lconst_1
lstore 1
start local 1 1: lconst_1
lstore 3
start local 3 2: aload 0
invokevirtual org.h2.mvstore.MVStore.getTimeSinceCreation:()J
lstore 5
start local 5 3: aload 0
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
start local 7 5: lload 1
aload 7
getfield org.h2.mvstore.Chunk.maxLen:J
ladd
lstore 1
6: aload 7
getfield org.h2.mvstore.Chunk.time:J
aload 0
getfield org.h2.mvstore.MVStore.retentionTime:I
i2l
ladd
lload 5
lcmp
ifle 9
7: lload 3
aload 7
getfield org.h2.mvstore.Chunk.maxLen:J
ladd
lstore 3
8: goto 10
9: StackMap locals: org.h2.mvstore.MVStore long long long org.h2.mvstore.Chunk java.util.Iterator
StackMap stack:
lload 3
aload 7
getfield org.h2.mvstore.Chunk.maxLenLive:J
ladd
lstore 3
end local 7 10: 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: lload 1
lconst_0
lcmp
ifgt 13
12: lconst_1
lstore 1
13: StackMap locals: org.h2.mvstore.MVStore long long long
StackMap stack:
ldc 100
lload 3
lmul
lload 1
ldiv
l2i
istore 7
start local 7 14: iload 7
ireturn
end local 7 end local 5 end local 3 end local 1 end local 0 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 start local 1 start local 2 0: aload 0
getfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVStore.getTimeSinceCreation:()J
lstore 3
start local 3 3: aload 0
invokevirtual org.h2.mvstore.MVStore.getCurrentFillRate:()I
istore 5
start local 5 4: iload 5
iload 1
if_icmplt 6
5: aconst_null
areturn
6: StackMap locals: long int
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 6
start local 6 7: aload 0
getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
aload 0
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
start local 7 8: aload 0
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
start local 8 10: aload 8
getfield org.h2.mvstore.Chunk.time:J
aload 0
getfield org.h2.mvstore.MVStore.retentionTime:I
i2l
ladd
lload 3
lcmp
ifgt 14
11: aload 7
getfield org.h2.mvstore.Chunk.version:J
aload 8
getfield org.h2.mvstore.Chunk.version:J
lsub
lconst_1
ladd
lstore 10
start local 10 12: aload 8
aload 8
invokevirtual org.h2.mvstore.Chunk.getFillRate:()I
sipush 1000
imul
i2l
lconst_1
lload 10
invokestatic java.lang.Math.max:(JJ)J
ldiv
l2i
putfield org.h2.mvstore.Chunk.collectPriority:I
13: aload 6
aload 8
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 10 end local 8 14: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
15: aload 6
invokevirtual java.util.ArrayList.isEmpty:()Z
ifeq 17
16: aconst_null
areturn
17: StackMap locals: org.h2.mvstore.MVStore int int long int java.util.ArrayList org.h2.mvstore.Chunk
StackMap stack:
aload 6
new org.h2.mvstore.MVStore$3
dup
aload 0
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: lconst_0
lstore 8
start local 8 19: iconst_0
istore 10
start local 10 20: aconst_null
astore 11
start local 11 21: aload 6
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
start local 12 23: aload 11
ifnull 26
24: aload 12
getfield org.h2.mvstore.Chunk.collectPriority:I
ifle 26
lload 8
iload 2
i2l
lcmp
ifle 26
25: goto 30
26: 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
aload 12
getfield org.h2.mvstore.Chunk.maxLenLive:J
ladd
lstore 8
27: iinc 10 1
28: aload 12
astore 11
end local 12 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:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 22
30: 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
iconst_1
if_icmpge 32
31: aconst_null
areturn
32: StackMap locals:
StackMap stack:
iconst_0
istore 12
start local 12 33: aload 6
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 13
start local 13 34: goto 41
35: StackMap locals: int java.util.Iterator
StackMap stack:
aload 13
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.mvstore.Chunk
astore 14
start local 14 36: aload 11
aload 14
if_acmpne 39
37: iconst_1
istore 12
38: goto 41
StackMap locals: org.h2.mvstore.Chunk
StackMap stack:
39: iload 12
ifeq 41
40: aload 13
invokeinterface java.util.Iterator.remove:()V
end local 14 41: StackMap locals:
StackMap stack:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 35
end local 13 42: aload 6
areturn
end local 12 end local 11 end local 10 end local 8 end local 7 end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 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 start local 1 0: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 2
start local 2 1: aload 1
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
start local 3 3: aload 2
aload 3
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 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 0
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
start local 3 7: aload 3
astore 5
start local 5 8: aload 5
invokevirtual org.h2.mvstore.MVMap.isClosed:()Z
ifne 10
9: aload 5
aload 2
invokevirtual org.h2.mvstore.MVMap.rewrite:(Ljava/util/Set;)V
end local 5 end local 3 10: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
11: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
aload 2
invokevirtual org.h2.mvstore.MVMap.rewrite:(Ljava/util/Set;)V
12: aload 0
iconst_0
invokevirtual org.h2.mvstore.MVStore.freeUnusedChunks:(Z)V
13: aload 0
invokevirtual org.h2.mvstore.MVStore.commit:()J
pop2
14: return
end local 2 end local 1 end local 0 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 start local 1 start local 2 0: lload 2
invokestatic org.h2.mvstore.DataUtils.isPageSaved:(J)Z
ifne 3
1: bipush 6
ldc "Position 0"
iconst_0
anewarray java.lang.Object
2: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
ifnonnull 4
aconst_null
goto 5
StackMap locals:
StackMap stack:
4: aload 0
getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
lload 2
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
start local 4 6: aload 4
ifnonnull 10
7: aload 0
lload 2
aload 1
invokevirtual org.h2.mvstore.MVMap.getId:()I
invokevirtual org.h2.mvstore.MVStore.readBufferForPage:(JI)Ljava/nio/ByteBuffer;
astore 5
start local 5 8: aload 5
lload 2
aload 1
invokestatic org.h2.mvstore.Page.read:(Ljava/nio/ByteBuffer;JLorg/h2/mvstore/MVMap;)Lorg/h2/mvstore/Page;
astore 4
9: aload 0
aload 4
invokevirtual org.h2.mvstore.MVStore.cachePage:(Lorg/h2/mvstore/Page;)V
end local 5 10: StackMap locals: org.h2.mvstore.Page
StackMap stack:
aload 4
areturn
end local 4 end local 2 end local 1 end local 0 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 start local 1 start local 3 0: lload 1
invokestatic org.h2.mvstore.DataUtils.isPageSaved:(J)Z
ifne 3
1: aload 0
iconst_0
aload 0
getfield org.h2.mvstore.MVStore.unsavedMemory:I
iload 3
isub
invokestatic java.lang.Math.max:(II)I
putfield org.h2.mvstore.MVStore.unsavedMemory:I
2: return
3: StackMap locals:
StackMap stack:
lload 1
invokestatic org.h2.mvstore.DataUtils.getPageChunkId:(J)I
istore 4
start local 4 4: aload 0
getfield org.h2.mvstore.MVStore.freedPageSpace:Ljava/util/Map;
dup
astore 5
monitorenter
5: aload 0
getfield org.h2.mvstore.MVStore.freedPageSpace:Ljava/util/Map;
iload 4
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
start local 6 6: aload 6
ifnonnull 9
7: new org.h2.mvstore.Chunk
dup
iload 4
invokespecial org.h2.mvstore.Chunk.<init>:(I)V
astore 6
8: aload 0
getfield org.h2.mvstore.MVStore.freedPageSpace:Ljava/util/Map;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: StackMap locals: int java.util.Map org.h2.mvstore.Chunk
StackMap stack:
aload 6
dup
getfield org.h2.mvstore.Chunk.maxLenLive:J
lload 1
invokestatic org.h2.mvstore.DataUtils.getPageMaxLength:(J)I
i2l
lsub
putfield org.h2.mvstore.Chunk.maxLenLive:J
10: aload 6
dup
getfield org.h2.mvstore.Chunk.pageCountLive:I
iconst_1
isub
putfield org.h2.mvstore.Chunk.pageCountLive:I
end local 6 11: 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: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 1 end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.compressorFast:Lorg/h2/compress/Compressor;
ifnonnull 2
1: aload 0
new org.h2.compress.CompressLZF
dup
invokespecial org.h2.compress.CompressLZF.<init>:()V
putfield org.h2.mvstore.MVStore.compressorFast:Lorg/h2/compress/Compressor;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.compressorFast:Lorg/h2/compress/Compressor;
areturn
end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.compressorHigh:Lorg/h2/compress/Compressor;
ifnonnull 2
1: aload 0
new org.h2.compress.CompressDeflate
dup
invokespecial org.h2.compress.CompressDeflate.<init>:()V
putfield org.h2.mvstore.MVStore.compressorHigh:Lorg/h2/compress/Compressor;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.compressorHigh:Lorg/h2/compress/Compressor;
areturn
end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.compressionLevel:I
ireturn
end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.pageSplitSize:I
ireturn
end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.keysPerPage:I
ireturn
end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
ifnonnull 1
ldc 9223372036854775807
goto 2
StackMap locals:
StackMap stack:
1: aload 0
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 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 0: aload 0
getfield org.h2.mvstore.MVStore.reuseSpace:Z
ireturn
end local 0 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 start local 1 0: aload 0
iload 1
putfield org.h2.mvstore.MVStore.reuseSpace:Z
1: return
end local 1 end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.retentionTime:I
ireturn
end local 0 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 start local 1 0: aload 0
iload 1
putfield org.h2.mvstore.MVStore.retentionTime:I
1: return
end local 1 end local 0 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 start local 1 0: aload 0
iload 1
putfield org.h2.mvstore.MVStore.versionsToKeep:I
1: return
end local 1 end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.versionsToKeep:I
i2l
lreturn
end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.oldestVersionToKeep:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lstore 1
start local 1 1: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
ifnonnull 4
2: lload 1
aload 0
getfield org.h2.mvstore.MVStore.versionsToKeep:I
i2l
lsub
lconst_1
ladd
ldc -1
invokestatic java.lang.Math.max:(JJ)J
lstore 1
3: lload 1
lreturn
4: StackMap locals: long
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.currentStoreVersion:J
lstore 3
start local 3 5: lload 3
ldc -1
lcmp
ifeq 7
lload 3
lload 1
lcmp
ifge 7
6: lload 3
lstore 1
7: StackMap locals: long
StackMap stack:
lload 1
lreturn
end local 3 end local 1 end local 0 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 start local 1 0: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.oldestVersionToKeep:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lstore 4
start local 4 1: lload 1
lload 4
lcmp
ifle 4
2: aload 0
getfield org.h2.mvstore.MVStore.oldestVersionToKeep:Ljava/util/concurrent/atomic/AtomicLong;
lload 4
lload 1
invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
ifne 4
3: 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
end local 4 start local 3 6: iload 3
ifeq 0
7: return
end local 3 end local 1 end local 0 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 start local 1 0: lload 1
aload 0
getfield org.h2.mvstore.MVStore.currentVersion:J
lcmp
ifgt 1
lload 1
lconst_0
lcmp
ifge 2
1: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
lload 1
aload 0
getfield org.h2.mvstore.MVStore.currentVersion:J
lcmp
ifeq 3
aload 0
getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.isEmpty:()Z
ifeq 4
3: StackMap locals:
StackMap stack:
iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 0
lload 1
invokevirtual org.h2.mvstore.MVStore.getChunkForVersion:(J)Lorg/h2/mvstore/Chunk;
astore 3
start local 3 5: aload 3
ifnonnull 7
6: iconst_0
ireturn
7: StackMap locals: org.h2.mvstore.Chunk
StackMap stack:
aload 0
lload 1
invokevirtual org.h2.mvstore.MVStore.getMetaMap:(J)Lorg/h2/mvstore/MVMap;
astore 4
start local 4 8: aload 4
ifnonnull 10
9: iconst_0
ireturn
10: StackMap locals: org.h2.mvstore.MVMap
StackMap stack:
aload 4
ldc "chunk."
invokevirtual org.h2.mvstore.MVMap.keyIterator:(Ljava/lang/Object;)Ljava/util/Iterator;
astore 5
start local 5 11: goto 21
12: StackMap locals: java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 13: aload 6
ldc "chunk."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 15
14: goto 25
15: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
aload 6
invokevirtual org.h2.mvstore.MVMap.containsKey:(Ljava/lang/Object;)Z
ifne 21
16: aload 4
aload 6
invokevirtual org.h2.mvstore.MVMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 7
start local 7 17: aload 7
invokestatic org.h2.mvstore.Chunk.fromString:(Ljava/lang/String;)Lorg/h2/mvstore/Chunk;
astore 8
start local 8 18: aload 0
aload 8
getfield org.h2.mvstore.Chunk.block:J
invokevirtual org.h2.mvstore.MVStore.readChunkHeaderAndFooter:(J)Lorg/h2/mvstore/Chunk;
astore 9
start local 9 19: aload 9
ifnull 20
aload 9
getfield org.h2.mvstore.Chunk.id:I
aload 8
getfield org.h2.mvstore.Chunk.id:I
if_icmpeq 21
20: StackMap locals: java.lang.String org.h2.mvstore.Chunk org.h2.mvstore.Chunk
StackMap stack:
iconst_0
ireturn
end local 9 end local 8 end local 7 end local 6 21: StackMap locals: org.h2.mvstore.MVStore long org.h2.mvstore.Chunk org.h2.mvstore.MVMap java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
end local 5 22: 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: iconst_0
ireturn
25: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 4 end local 3 end local 1 end local 0 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 start local 1 0: aload 0
dup
getfield org.h2.mvstore.MVStore.unsavedMemory:I
iload 1
iadd
putfield org.h2.mvstore.MVStore.unsavedMemory:I
1: aload 0
getfield org.h2.mvstore.MVStore.unsavedMemory:I
istore 2
start local 2 2: iload 2
aload 0
getfield org.h2.mvstore.MVStore.autoCommitMemory:I
if_icmple 4
aload 0
getfield org.h2.mvstore.MVStore.autoCommitMemory:I
ifle 4
3: aload 0
iconst_1
putfield org.h2.mvstore.MVStore.saveNeeded:Z
4: StackMap locals: int
StackMap stack:
return
end local 2 end local 1 end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.saveNeeded:Z
ireturn
end local 0 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 start local 1 0: aload 0
getfield org.h2.mvstore.MVStore.saveNeeded:Z
ifeq 7
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
ifnull 7
aload 0
invokevirtual org.h2.mvstore.MVStore.isOpenOrStopping:()Z
ifeq 7
1: aload 0
iconst_0
putfield org.h2.mvstore.MVStore.saveNeeded:Z
2: aload 0
getfield org.h2.mvstore.MVStore.unsavedMemory:I
aload 0
getfield org.h2.mvstore.MVStore.autoCommitMemory:I
if_icmple 7
aload 0
getfield org.h2.mvstore.MVStore.autoCommitMemory:I
ifle 7
3: iconst_3
aload 0
getfield org.h2.mvstore.MVStore.unsavedMemory:I
imul
iconst_4
aload 0
getfield org.h2.mvstore.MVStore.autoCommitMemory:I
imul
if_icmple 6
4: aload 0
invokevirtual org.h2.mvstore.MVStore.commit:()J
pop2
5: goto 7
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVStore.tryCommit:()J
pop2
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 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 0: aload 0
invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
1: aload 0
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
start local 1 2: aload 1
ifnonnull 3
iconst_0
goto 4
StackMap locals: java.lang.String
StackMap stack:
3: aload 1
invokestatic org.h2.mvstore.DataUtils.parseHexInt:(Ljava/lang/String;)I
StackMap locals:
StackMap stack: int
4: ireturn
end local 1 end local 0 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 start local 1 0: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
2: aload 0
invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
3: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
ldc "setting.storeVersion"
iload 1
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: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 2
6: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
7: aload 2
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: return
end local 1 end local 0 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 0: aload 0
aload 0
getfield org.h2.mvstore.MVStore.currentVersion:J
invokevirtual org.h2.mvstore.MVStore.rollbackTo:(J)V
1: return
end local 0 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 start local 1 0: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
2: lload 1
lconst_0
lcmp
ifne 26
3: aload 0
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
start local 3 5: aload 3
invokevirtual org.h2.mvstore.MVMap.close:()V
end local 3 6: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
aload 0
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: aload 0
getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
9: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
ifnull 11
10: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.clear:()V
11: StackMap locals: org.h2.mvstore.MVStore long
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
12: aload 0
aconst_null
putfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
13: aload 0
getfield org.h2.mvstore.MVStore.freedPageSpace:Ljava/util/Map;
dup
astore 3
monitorenter
14: aload 0
getfield org.h2.mvstore.MVStore.freedPageSpace:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
15: 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: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.versions:Ljava/util/Deque;
invokeinterface java.util.Deque.clear:()V
20: aload 0
lload 1
putfield org.h2.mvstore.MVStore.currentVersion:J
21: aload 0
lload 1
invokevirtual org.h2.mvstore.MVStore.setWriteVersion:(J)V
22: aload 0
iconst_0
putfield org.h2.mvstore.MVStore.metaChanged:Z
23: aload 0
ldc -1
putfield org.h2.mvstore.MVStore.lastStoredVersion:J
24: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
25: return
26: StackMap locals:
StackMap stack:
aload 0
lload 1
invokevirtual org.h2.mvstore.MVStore.isKnownVersion:(J)Z
27: ldc "Unknown version {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
28: invokestatic org.h2.mvstore.DataUtils.checkArgument:(ZLjava/lang/String;[Ljava/lang/Object;)V
29: aload 0
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
start local 3 31: aload 3
lload 1
invokevirtual org.h2.mvstore.MVMap.rollbackTo:(J)V
end local 3 32: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 30
33: goto 35
start local 3 34: StackMap locals: org.h2.mvstore.MVStore long org.h2.mvstore.MVStore$TxCounter
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.versions:Ljava/util/Deque;
invokeinterface java.util.Deque.removeLast:()Ljava/lang/Object;
pop
end local 3 35: StackMap locals:
StackMap stack:
aload 0
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
start local 3 36: ifnull 37
aload 3
getfield org.h2.mvstore.MVStore$TxCounter.version:J
lload 1
lcmp
ifge 34
37: StackMap locals: org.h2.mvstore.MVStore$TxCounter
StackMap stack:
aload 0
new org.h2.mvstore.MVStore$TxCounter
dup
lload 1
invokespecial org.h2.mvstore.MVStore$TxCounter.<init>:(J)V
putfield org.h2.mvstore.MVStore.currentTxCounter:Lorg/h2/mvstore/MVStore$TxCounter;
38: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
lload 1
invokevirtual org.h2.mvstore.MVMap.rollbackTo:(J)V
39: aload 0
iconst_0
putfield org.h2.mvstore.MVStore.metaChanged:Z
40: iconst_0
istore 4
start local 4 41: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 5
start local 5 42: aconst_null
astore 6
start local 6 43: aload 0
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
start local 7 45: aload 7
getfield org.h2.mvstore.Chunk.version:J
lload 1
lcmp
ifle 48
46: aload 5
aload 7
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: 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
ifnull 49
aload 6
getfield org.h2.mvstore.Chunk.id:I
aload 7
getfield org.h2.mvstore.Chunk.id:I
if_icmpge 50
49: StackMap locals:
StackMap stack:
aload 7
astore 6
end local 7 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:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 44
51: aload 5
invokevirtual java.util.ArrayList.isEmpty:()Z
ifne 72
52: aload 5
invokestatic java.util.Collections.reverseOrder:()Ljava/util/Comparator;
invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
53: iconst_1
istore 4
54: aload 5
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
start local 7 56: aload 0
getfield org.h2.mvstore.MVStore.chunks:Ljava/util/concurrent/ConcurrentHashMap;
iload 7
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
start local 9 57: aload 9
getfield org.h2.mvstore.Chunk.block:J
ldc 4096
lmul
lstore 10
start local 10 58: aload 9
getfield org.h2.mvstore.Chunk.len:I
sipush 4096
imul
istore 12
start local 12 59: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
lload 10
iload 12
invokevirtual org.h2.mvstore.FileStore.free:(JI)V
60: getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 62
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.getFileLengthInUse:()J
aload 0
invokevirtual org.h2.mvstore.MVStore.measureFileLengthInUse:()J
lcmp
ifeq 62
new java.lang.AssertionError
dup
61: new java.lang.StringBuilder
dup
aload 0
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
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: 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
invokevirtual org.h2.mvstore.MVStore.getWriteBuffer:()Lorg/h2/mvstore/WriteBuffer;
astore 13
start local 13 63: aload 13
iload 12
invokevirtual org.h2.mvstore.WriteBuffer.limit:(I)Lorg/h2/mvstore/WriteBuffer;
pop
64: aload 13
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: aload 0
lload 10
aload 13
invokevirtual org.h2.mvstore.WriteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual org.h2.mvstore.MVStore.write:(JLjava/nio/ByteBuffer;)V
66: aload 0
aload 13
invokevirtual org.h2.mvstore.MVStore.releaseWriteBuffer:(Lorg/h2/mvstore/WriteBuffer;)V
67: aload 0
invokevirtual org.h2.mvstore.MVStore.sync:()V
end local 13 end local 12 end local 10 end local 9 end local 7 68: 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: aload 0
aload 6
putfield org.h2.mvstore.MVStore.lastChunk:Lorg/h2/mvstore/Chunk;
70: aload 0
invokevirtual org.h2.mvstore.MVStore.writeStoreHeader:()V
71: aload 0
invokevirtual org.h2.mvstore.MVStore.readStoreHeader:()V
72: 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
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
start local 7 74: aload 7
invokevirtual org.h2.mvstore.MVMap.getId:()I
istore 9
start local 9 75: aload 7
invokevirtual org.h2.mvstore.MVMap.getCreateVersion:()J
lload 1
lcmp
iflt 79
76: aload 7
invokevirtual org.h2.mvstore.MVMap.close:()V
77: aload 0
getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
iload 9
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.concurrent.ConcurrentHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
78: goto 83
79: 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
ifeq 82
80: aload 7
aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
iload 9
invokestatic org.h2.mvstore.MVStore.getRootPos:(Lorg/h2/mvstore/MVMap;I)J
lload 1
invokevirtual org.h2.mvstore.MVMap.setRootPos:(JJ)V
81: goto 83
82: StackMap locals:
StackMap stack:
aload 7
lload 1
invokevirtual org.h2.mvstore.MVMap.rollbackRoot:(J)V
end local 9 end local 7 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:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 73
84: aload 0
lload 1
putfield org.h2.mvstore.MVStore.currentVersion:J
85: aload 0
getfield org.h2.mvstore.MVStore.lastStoredVersion:J
ldc -1
lcmp
ifne 91
86: aload 0
aload 0
getfield org.h2.mvstore.MVStore.currentVersion:J
lconst_1
lsub
putfield org.h2.mvstore.MVStore.lastStoredVersion:J
end local 6 end local 5 end local 4 end local 3 87: goto 91
StackMap locals: org.h2.mvstore.MVStore long
StackMap stack: java.lang.Throwable
88: astore 14
89: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
90: aload 14
athrow
91: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
92: return
end local 1 end local 0 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 start local 1 0: aload 0
iload 1
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
start local 2 1: aload 2
ifnonnull 2
lconst_0
goto 3
StackMap locals: java.lang.String
StackMap stack:
2: aload 2
invokestatic org.h2.mvstore.DataUtils.parseHexLong:(Ljava/lang/String;)J
StackMap locals:
StackMap stack: long
3: lreturn
end local 2 end local 1 end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.currentVersion:J
lreturn
end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.lastStoredVersion:J
lreturn
end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
areturn
end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.storeHeader:Ljava/util/HashMap;
areturn
end local 0 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 0: aload 0
invokevirtual org.h2.mvstore.MVStore.isOpenOrStopping:()Z
ifne 4
1: iconst_4
2: ldc "This store is closed"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.h2.mvstore.MVStore.panicException:Ljava/lang/IllegalStateException;
aastore
3: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
4: StackMap locals:
StackMap stack:
return
end local 0 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 start local 1 start local 2 0: aload 0
invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
1: aload 1
aload 0
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: StackMap locals:
StackMap stack: int
ldc "Renaming the meta map is not allowed"
iconst_0
anewarray java.lang.Object
4: invokestatic org.h2.mvstore.DataUtils.checkArgument:(ZLjava/lang/String;[Ljava/lang/Object;)V
5: aload 1
invokevirtual org.h2.mvstore.MVMap.getId:()I
istore 3
start local 3 6: aload 0
iload 3
invokevirtual org.h2.mvstore.MVStore.getMapName:(I)Ljava/lang/String;
astore 4
start local 4 7: aload 4
ifnull 17
aload 4
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 17
8: iload 3
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
astore 5
start local 5 9: aload 0
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
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 5
invokevirtual org.h2.mvstore.MVMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 10: aload 6
ifnull 11
aload 6
aload 5
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: StackMap locals:
StackMap stack: int
ldc "A map named {0} already exists"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
13: invokestatic org.h2.mvstore.DataUtils.checkArgument:(ZLjava/lang/String;[Ljava/lang/Object;)V
14: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
iload 3
invokestatic org.h2.mvstore.MVMap.getMapKey:(I)Ljava/lang/String;
aload 1
aload 2
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: aload 0
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
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: aload 0
invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
end local 6 end local 5 17: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 0: aload 0
aload 1
iconst_1
invokevirtual org.h2.mvstore.MVStore.removeMap:(Lorg/h2/mvstore/MVMap;Z)V
1: return
end local 1 end local 0 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 start local 1 start local 2 0: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
2: aload 1
aload 0
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: StackMap locals:
StackMap stack: int
ldc "Removing the meta map is not allowed"
iconst_0
anewarray java.lang.Object
5: invokestatic org.h2.mvstore.DataUtils.checkArgument:(ZLjava/lang/String;[Ljava/lang/Object;)V
6: aload 1
invokevirtual org.h2.mvstore.MVMap.close:()V
7: aload 1
invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
astore 3
start local 3 8: aload 0
dup
getfield org.h2.mvstore.MVStore.updateCounter:J
aload 3
getfield org.h2.mvstore.RootReference.updateCounter:J
ladd
putfield org.h2.mvstore.MVStore.updateCounter:J
9: aload 0
dup
getfield org.h2.mvstore.MVStore.updateAttemptCounter:J
aload 3
getfield org.h2.mvstore.RootReference.updateAttemptCounter:J
ladd
putfield org.h2.mvstore.MVStore.updateAttemptCounter:J
10: aload 1
invokevirtual org.h2.mvstore.MVMap.getId:()I
istore 4
start local 4 11: aload 0
iload 4
invokevirtual org.h2.mvstore.MVStore.getMapName:(I)Ljava/lang/String;
astore 5
start local 5 12: aload 0
aload 5
iload 4
iload 2
invokevirtual org.h2.mvstore.MVStore.removeMap:(Ljava/lang/String;IZ)V
end local 5 end local 4 end local 3 13: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 6
15: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
16: aload 6
athrow
17: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
18: return
end local 2 end local 1 end local 0 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 start local 1 start local 2 start local 3 0: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
iload 2
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: aload 0
invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
2: StackMap locals:
StackMap stack:
aload 0
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
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: aload 0
invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
4: StackMap locals:
StackMap stack:
iload 3
ifne 8
5: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
iload 2
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: aload 0
invokevirtual org.h2.mvstore.MVStore.markMetaChanged:()V
7: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.maps:Ljava/util/concurrent/ConcurrentHashMap;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.concurrent.ConcurrentHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
8: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 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 start local 1 0: aload 0
aload 1
invokevirtual org.h2.mvstore.MVStore.getMapId:(Ljava/lang/String;)I
istore 2
start local 2 1: iload 2
ifle 3
2: aload 0
aload 1
iload 2
iconst_0
invokevirtual org.h2.mvstore.MVStore.removeMap:(Ljava/lang/String;IZ)V
3: StackMap locals: int
StackMap stack:
return
end local 2 end local 1 end local 0 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 start local 1 0: aload 0
invokevirtual org.h2.mvstore.MVStore.checkOpen:()V
1: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
iload 1
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
start local 2 2: aload 2
ifnonnull 3
aconst_null
goto 4
StackMap locals: java.lang.String
StackMap stack:
3: aload 2
invokestatic org.h2.mvstore.DataUtils.getMapName:(Ljava/lang/String;)Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
4: areturn
end local 2 end local 1 end local 0 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 start local 1 0: aload 0
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
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
start local 2 1: aload 2
ifnonnull 2
iconst_m1
goto 3
StackMap locals: java.lang.String
StackMap stack:
2: aload 2
invokestatic org.h2.mvstore.DataUtils.parseHexInt:(Ljava/lang/String;)I
StackMap locals:
StackMap stack: int
3: ireturn
end local 2 end local 1 end local 0 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 0: aload 0
invokevirtual org.h2.mvstore.MVStore.isOpenOrStopping:()Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVStore.getTimeSinceCreation:()J
lstore 1
start local 1 3: lload 1
aload 0
getfield org.h2.mvstore.MVStore.lastCommitTime:J
aload 0
getfield org.h2.mvstore.MVStore.autoCommitDelay:I
i2l
ladd
lcmp
ifgt 5
4: return
5: StackMap locals: long
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVStore.tryCommit:()J
pop2
6: aload 0
getfield org.h2.mvstore.MVStore.autoCompactFillRate:I
ifle 20
7: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.getWriteCount:()J
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.getReadCount:()J
ladd
lstore 4
start local 4 8: aload 0
getfield org.h2.mvstore.MVStore.autoCompactLastFileOpCount:J
lload 4
lcmp
ifeq 11
9: iconst_1
istore 3
start local 3 10: goto 12
end local 3 11: StackMap locals: org.h2.mvstore.MVStore long top long
StackMap stack:
iconst_0
istore 3
start local 3 12: StackMap locals: org.h2.mvstore.MVStore long int long
StackMap stack:
iload 3
ifeq 13
aload 0
getfield org.h2.mvstore.MVStore.autoCompactFillRate:I
iconst_3
idiv
goto 14
StackMap locals:
StackMap stack:
13: aload 0
getfield org.h2.mvstore.MVStore.autoCompactFillRate:I
StackMap locals:
StackMap stack: int
14: istore 6
start local 6 15: aload 0
iload 6
aload 0
getfield org.h2.mvstore.MVStore.autoCommitMemory:I
invokevirtual org.h2.mvstore.MVStore.compact:(II)Z
pop
16: aload 0
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.getWriteCount:()J
aload 0
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 end local 4 end local 3 end local 1 17: goto 20
StackMap locals: org.h2.mvstore.MVStore
StackMap stack: java.lang.Throwable
18: astore 1
start local 1 19: aload 0
aload 1
invokevirtual org.h2.mvstore.MVStore.handleException:(Ljava/lang/Throwable;)V
end local 1 20: StackMap locals:
StackMap stack:
return
end local 0 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 start local 1 0: aload 0
getfield org.h2.mvstore.MVStore.backgroundExceptionHandler:Ljava/lang/Thread$UncaughtExceptionHandler;
ifnull 6
1: aload 0
getfield org.h2.mvstore.MVStore.backgroundExceptionHandler:Ljava/lang/Thread$UncaughtExceptionHandler;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 1
invokeinterface java.lang.Thread$UncaughtExceptionHandler.uncaughtException:(Ljava/lang/Thread;Ljava/lang/Throwable;)V
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 2
start local 2 4: aload 1
aload 2
if_acmpeq 6
5: aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
end local 2 6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 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 start local 1 0: iload 1
i2l
ldc 1024
lmul
ldc 1024
lmul
lstore 2
start local 2 1: aload 0
getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
ifnull 4
2: aload 0
getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
lload 2
invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.setMaxMemory:(J)V
3: aload 0
getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.clear:()V
4: StackMap locals: long
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.cacheChunkRef:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
ifnull 7
5: aload 0
getfield org.h2.mvstore.MVStore.cacheChunkRef:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
lload 2
ldc 4
ldiv
invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.setMaxMemory:(J)V
6: aload 0
getfield org.h2.mvstore.MVStore.cacheChunkRef:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.clear:()V
7: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.state:I
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 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 0: aload 0
invokevirtual org.h2.mvstore.MVStore.isOpen:()Z
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
3: getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 4
aload 0
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: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
7: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: aload 1
athrow
end local 0 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 0: aload 0
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 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 start local 1 0: goto 14
start local 2 1: StackMap locals: org.h2.mvstore.MVStore$BackgroundWriterThread
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.backgroundWriterThread:Ljava/util/concurrent/atomic/AtomicReference;
aload 2
aconst_null
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 14
2: aload 2
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpeq 16
3: aload 2
getfield org.h2.mvstore.MVStore$BackgroundWriterThread.sync:Ljava/lang/Object;
dup
astore 3
monitorenter
4: aload 2
getfield org.h2.mvstore.MVStore$BackgroundWriterThread.sync:Ljava/lang/Object;
invokevirtual java.lang.Object.notifyAll:()V
5: 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: StackMap locals:
StackMap stack:
iload 1
ifeq 16
10: aload 2
invokevirtual org.h2.mvstore.MVStore$BackgroundWriterThread.join:()V
11: goto 16
StackMap locals:
StackMap stack: java.lang.Exception
12: pop
13: goto 16
end local 2 14: StackMap locals:
StackMap stack:
aload 0
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
start local 2 15: ifnonnull 1
16: StackMap locals: org.h2.mvstore.MVStore$BackgroundWriterThread
StackMap stack:
return
end local 2 end local 1 end local 0 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 start local 1 0: aload 0
getfield org.h2.mvstore.MVStore.autoCommitDelay:I
iload 1
if_icmpne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield org.h2.mvstore.MVStore.autoCommitDelay:I
3: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
ifnull 4
aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.isReadOnly:()Z
ifeq 5
4: StackMap locals:
StackMap stack:
return
5: StackMap locals:
StackMap stack:
aload 0
iconst_1
invokevirtual org.h2.mvstore.MVStore.stopBackgroundThread:(Z)V
6: iload 1
ifle 14
aload 0
invokevirtual org.h2.mvstore.MVStore.isOpen:()Z
ifeq 14
7: iconst_1
iload 1
bipush 10
idiv
invokestatic java.lang.Math.max:(II)I
istore 2
start local 2 8: new org.h2.mvstore.MVStore$BackgroundWriterThread
dup
aload 0
iload 2
9: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
invokevirtual org.h2.mvstore.FileStore.toString:()Ljava/lang/String;
10: invokespecial org.h2.mvstore.MVStore$BackgroundWriterThread.<init>:(Lorg/h2/mvstore/MVStore;ILjava/lang/String;)V
11: astore 3
start local 3 12: aload 0
getfield org.h2.mvstore.MVStore.backgroundWriterThread:Ljava/util/concurrent/atomic/AtomicReference;
aconst_null
aload 3
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 14
13: aload 3
invokevirtual org.h2.mvstore.MVStore$BackgroundWriterThread.start:()V
end local 3 end local 2 14: StackMap locals:
StackMap stack:
return
end local 1 end local 0 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 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 0
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 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 0: aload 0
getfield org.h2.mvstore.MVStore.autoCommitDelay:I
ireturn
end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.autoCommitMemory:I
ireturn
end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.unsavedMemory:I
ireturn
end local 0 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 start local 1 0: aload 0
getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
ifnull 2
1: aload 0
getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
aload 1
invokevirtual org.h2.mvstore.Page.getPos:()J
aload 1
aload 1
invokevirtual org.h2.mvstore.Page.getMemory:()I
invokevirtual org.h2.mvstore.cache.CacheLongKeyLIRS.put:(JLjava/lang/Object;I)Ljava/lang/Object;
pop
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
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 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 0: aload 0
getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
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 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 0: aload 0
getfield org.h2.mvstore.MVStore.cache:Lorg/h2/mvstore/cache/CacheLongKeyLIRS;
areturn
end local 0 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 0: aload 0
getfield org.h2.mvstore.MVStore.fileStore:Lorg/h2/mvstore/FileStore;
ifnull 1
aload 0
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 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 0: aload 0
getfield org.h2.mvstore.MVStore.updateCounter:J
lstore 1
start local 1 1: aload 0
getfield org.h2.mvstore.MVStore.updateAttemptCounter:J
lstore 3
start local 3 2: aload 0
getfield org.h2.mvstore.MVStore.meta:Lorg/h2/mvstore/MVMap;
invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
astore 5
start local 5 3: lload 1
aload 5
getfield org.h2.mvstore.RootReference.updateCounter:J
ladd
lstore 1
4: lload 3
aload 5
getfield org.h2.mvstore.RootReference.updateAttemptCounter:J
ladd
lstore 3
5: aload 0
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
start local 6 7: aload 6
invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
astore 8
start local 8 8: lload 1
aload 8
getfield org.h2.mvstore.RootReference.updateCounter:J
ladd
lstore 1
9: lload 3
aload 8
getfield org.h2.mvstore.RootReference.updateAttemptCounter:J
ladd
lstore 3
end local 8 end local 6 10: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
11: lload 3
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
l2d
lload 3
l2d
ddiv
dsub
StackMap locals:
StackMap stack: double
13: dreturn
end local 5 end local 3 end local 1 end local 0 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 0: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.currentTxCounter:Lorg/h2/mvstore/MVStore$TxCounter;
astore 1
start local 1 1: aload 1
getfield org.h2.mvstore.MVStore$TxCounter.counter:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.getAndIncrement:()I
iflt 3
2: goto 6
3: StackMap locals: org.h2.mvstore.MVStore$TxCounter
StackMap stack:
getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 4
aload 1
aload 0
getfield org.h2.mvstore.MVStore.currentTxCounter:Lorg/h2/mvstore/MVStore$TxCounter;
if_acmpne 4
new java.lang.AssertionError
dup
aload 1
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
getfield org.h2.mvstore.MVStore$TxCounter.counter:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
pop
end local 1 5: goto 0
start local 1 6: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 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 start local 1 0: aload 1
ifnull 9
1: aload 1
getfield org.h2.mvstore.MVStore$TxCounter.counter:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
ifgt 9
2: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ifne 9
aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:()Z
ifeq 9
3: aload 0
invokevirtual org.h2.mvstore.MVStore.dropUnusedVersions:()V
4: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 2
6: aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
7: aload 2
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.storeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 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 start local 1 0: aload 0
getfield org.h2.mvstore.MVStore.currentTxCounter:Lorg/h2/mvstore/MVStore$TxCounter;
astore 3
start local 3 1: getstatic org.h2.mvstore.MVStore.$assertionsDisabled:Z
ifne 2
aload 3
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: StackMap locals: org.h2.mvstore.MVStore$TxCounter
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.versions:Ljava/util/Deque;
aload 3
invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
pop
3: aload 0
new org.h2.mvstore.MVStore$TxCounter
dup
lload 1
invokespecial org.h2.mvstore.MVStore$TxCounter.<init>:(J)V
putfield org.h2.mvstore.MVStore.currentTxCounter:Lorg/h2/mvstore/MVStore$TxCounter;
4: aload 3
getfield org.h2.mvstore.MVStore$TxCounter.counter:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
pop
5: aload 0
invokevirtual org.h2.mvstore.MVStore.dropUnusedVersions:()V
6: return
end local 3 end local 1 end local 0 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 0: goto 2
start local 1 1: StackMap locals: org.h2.mvstore.MVStore$TxCounter
StackMap stack:
aload 0
getfield org.h2.mvstore.MVStore.versions:Ljava/util/Deque;
invokeinterface java.util.Deque.poll:()Ljava/lang/Object;
pop
end local 1 2: StackMap locals:
StackMap stack:
aload 0
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
start local 1 3: ifnull 6
4: aload 1
getfield org.h2.mvstore.MVStore$TxCounter.counter:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
5: iflt 1
6: StackMap locals: org.h2.mvstore.MVStore$TxCounter
StackMap stack:
aload 0
aload 1
ifnull 7
aload 1
getfield org.h2.mvstore.MVStore$TxCounter.version:J
goto 8
StackMap locals:
StackMap stack: org.h2.mvstore.MVStore
7: aload 0
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: return
end local 1 end local 0 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