public class org.h2.mvstore.OffHeapStore extends org.h2.mvstore.FileStore
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.h2.mvstore.OffHeapStore
super_class: org.h2.mvstore.FileStore
{
private final java.util.TreeMap<java.lang.Long, java.nio.ByteBuffer> memory;
descriptor: Ljava/util/TreeMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/TreeMap<Ljava/lang/Long;Ljava/nio/ByteBuffer;>;
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.h2.mvstore.FileStore.<init>:()V
1: aload 0
2: new java.util.TreeMap
dup
invokespecial java.util.TreeMap.<init>:()V
putfield org.h2.mvstore.OffHeapStore.memory:Ljava/util/TreeMap;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/mvstore/OffHeapStore;
public void open(java.lang.String, boolean, char[]);
descriptor: (Ljava/lang/String;Z[C)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.h2.mvstore.OffHeapStore.memory:Ljava/util/TreeMap;
invokevirtual java.util.TreeMap.clear:()V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/mvstore/OffHeapStore;
0 2 1 fileName Ljava/lang/String;
0 2 2 readOnly Z
0 2 3 encryptionKey [C
MethodParameters:
Name Flags
fileName
readOnly
encryptionKey
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.OffHeapStore.memory:Ljava/util/TreeMap;
invokevirtual java.util.TreeMap.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/OffHeapStore;
public java.nio.ByteBuffer readFully(long, int);
descriptor: (JI)Ljava/nio/ByteBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=8, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield org.h2.mvstore.OffHeapStore.memory:Ljava/util/TreeMap;
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual java.util.TreeMap.floorEntry:(Ljava/lang/Object;)Ljava/util/Map$Entry;
astore 4
start local 4 1: aload 4
ifnonnull 5
2: iconst_1
3: ldc "Could not read from position {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
4: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
5: StackMap locals: java.util.Map$Entry
StackMap stack:
aload 0
getfield org.h2.mvstore.OffHeapStore.readCount:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
pop2
6: aload 0
getfield org.h2.mvstore.OffHeapStore.readBytes:Ljava/util/concurrent/atomic/AtomicLong;
iload 3
i2l
invokevirtual java.util.concurrent.atomic.AtomicLong.addAndGet:(J)J
pop2
7: aload 4
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.nio.ByteBuffer
astore 5
start local 5 8: aload 5
invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
astore 6
start local 6 9: lload 1
aload 4
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
lsub
l2i
istore 7
start local 7 10: aload 6
iload 7
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
11: aload 6
iload 3
iload 7
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
12: aload 6
invokevirtual java.nio.ByteBuffer.slice:()Ljava/nio/ByteBuffer;
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/h2/mvstore/OffHeapStore;
0 13 1 pos J
0 13 3 len I
1 13 4 memEntry Ljava/util/Map$Entry<Ljava/lang/Long;Ljava/nio/ByteBuffer;>;
8 13 5 buff Ljava/nio/ByteBuffer;
9 13 6 read Ljava/nio/ByteBuffer;
10 13 7 offset I
MethodParameters:
Name Flags
pos
len
public void free(long, int);
descriptor: (JI)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield org.h2.mvstore.OffHeapStore.freeSpace:Lorg/h2/mvstore/FreeSpaceBitSet;
lload 1
iload 3
invokevirtual org.h2.mvstore.FreeSpaceBitSet.free:(JI)V
1: aload 0
getfield org.h2.mvstore.OffHeapStore.memory:Ljava/util/TreeMap;
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual java.util.TreeMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.nio.ByteBuffer
astore 4
start local 4 2: aload 4
ifnull 7
3: aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
iload 3
if_icmpeq 7
4: iconst_1
5: ldc "Partial remove is not supported at position {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
6: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
7: StackMap locals: java.nio.ByteBuffer
StackMap stack:
return
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/h2/mvstore/OffHeapStore;
0 8 1 pos J
0 8 3 length I
2 8 4 buff Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
pos
length
public void writeFully(long, java.nio.ByteBuffer);
descriptor: (JLjava/nio/ByteBuffer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=10, args_size=3
start local 0 start local 1 start local 3 0: aload 0
aload 0
getfield org.h2.mvstore.OffHeapStore.fileSize:J
lload 1
aload 3
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
ladd
invokestatic java.lang.Math.max:(JJ)J
putfield org.h2.mvstore.OffHeapStore.fileSize:J
1: aload 0
getfield org.h2.mvstore.OffHeapStore.memory:Ljava/util/TreeMap;
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual java.util.TreeMap.floorEntry:(Ljava/lang/Object;)Ljava/util/Map$Entry;
astore 4
start local 4 2: aload 4
ifnonnull 5
3: aload 0
lload 1
aload 3
invokevirtual org.h2.mvstore.OffHeapStore.writeNewEntry:(JLjava/nio/ByteBuffer;)V
4: return
5: StackMap locals: java.util.Map$Entry
StackMap stack:
aload 4
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
lstore 5
start local 5 6: aload 4
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.nio.ByteBuffer
astore 7
start local 7 7: aload 7
invokevirtual java.nio.ByteBuffer.capacity:()I
istore 8
start local 8 8: aload 3
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 9
start local 9 9: lload 5
lload 1
lcmp
ifne 20
10: iload 8
iload 9
if_icmpeq 15
11: iconst_1
12: ldc "Could not write to position {0}; partial overwrite is not supported"
iconst_1
anewarray java.lang.Object
dup
iconst_0
13: lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
14: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
15: StackMap locals: org.h2.mvstore.OffHeapStore long java.nio.ByteBuffer java.util.Map$Entry long java.nio.ByteBuffer int int
StackMap stack:
aload 0
getfield org.h2.mvstore.OffHeapStore.writeCount:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
pop2
16: aload 0
getfield org.h2.mvstore.OffHeapStore.writeBytes:Ljava/util/concurrent/atomic/AtomicLong;
iload 9
i2l
invokevirtual java.util.concurrent.atomic.AtomicLong.addAndGet:(J)J
pop2
17: aload 7
invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/Buffer;
pop
18: aload 7
aload 3
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
19: return
20: StackMap locals:
StackMap stack:
lload 5
iload 8
i2l
ladd
lload 1
lcmp
ifle 25
21: iconst_1
22: ldc "Could not write to position {0}; partial overwrite is not supported"
iconst_1
anewarray java.lang.Object
dup
iconst_0
23: lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
24: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
25: StackMap locals:
StackMap stack:
aload 0
lload 1
aload 3
invokevirtual org.h2.mvstore.OffHeapStore.writeNewEntry:(JLjava/nio/ByteBuffer;)V
26: return
end local 9 end local 8 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 27 0 this Lorg/h2/mvstore/OffHeapStore;
0 27 1 pos J
0 27 3 src Ljava/nio/ByteBuffer;
2 27 4 mem Ljava/util/Map$Entry<Ljava/lang/Long;Ljava/nio/ByteBuffer;>;
6 27 5 prevPos J
7 27 7 buff Ljava/nio/ByteBuffer;
8 27 8 prevLength I
9 27 9 length I
MethodParameters:
Name Flags
pos
src
private void writeNewEntry(long, java.nio.ByteBuffer);
descriptor: (JLjava/nio/ByteBuffer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 3 0: aload 3
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 4
start local 4 1: aload 0
getfield org.h2.mvstore.OffHeapStore.writeCount:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
pop2
2: aload 0
getfield org.h2.mvstore.OffHeapStore.writeBytes:Ljava/util/concurrent/atomic/AtomicLong;
iload 4
i2l
invokevirtual java.util.concurrent.atomic.AtomicLong.addAndGet:(J)J
pop2
3: iload 4
invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
astore 5
start local 5 4: aload 5
aload 3
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
5: aload 5
invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/Buffer;
pop
6: aload 0
getfield org.h2.mvstore.OffHeapStore.memory:Ljava/util/TreeMap;
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aload 5
invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: return
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/h2/mvstore/OffHeapStore;
0 8 1 pos J
0 8 3 src Ljava/nio/ByteBuffer;
1 8 4 length I
4 8 5 buff Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
pos
src
public void truncate(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.mvstore.OffHeapStore.writeCount:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
pop2
1: lload 1
lconst_0
lcmp
ifne 5
2: aload 0
lconst_0
putfield org.h2.mvstore.OffHeapStore.fileSize:J
3: aload 0
getfield org.h2.mvstore.OffHeapStore.memory:Ljava/util/TreeMap;
invokevirtual java.util.TreeMap.clear:()V
4: return
5: StackMap locals:
StackMap stack:
aload 0
lload 1
putfield org.h2.mvstore.OffHeapStore.fileSize:J
6: aload 0
getfield org.h2.mvstore.OffHeapStore.memory:Ljava/util/TreeMap;
invokevirtual java.util.TreeMap.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
start local 3 7: goto 18
8: StackMap locals: java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
lstore 4
start local 4 9: lload 4
lload 1
lcmp
ifge 11
10: goto 19
11: StackMap locals: long
StackMap stack:
aload 0
getfield org.h2.mvstore.OffHeapStore.memory:Ljava/util/TreeMap;
lload 4
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual java.util.TreeMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.nio.ByteBuffer
astore 6
start local 6 12: aload 6
invokevirtual java.nio.ByteBuffer.capacity:()I
i2l
lload 1
lcmp
ifle 17
13: iconst_1
14: ldc "Could not truncate to {0}; partial truncate is not supported"
iconst_1
anewarray java.lang.Object
dup
iconst_0
15: lload 4
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
16: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
17: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 3
invokeinterface java.util.Iterator.remove:()V
end local 6 end local 4 18: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
end local 3 19: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/h2/mvstore/OffHeapStore;
0 20 1 size J
7 19 3 it Ljava/util/Iterator<Ljava/lang/Long;>;
9 18 4 pos J
12 18 6 buff Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
size
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.OffHeapStore.memory:Ljava/util/TreeMap;
invokevirtual java.util.TreeMap.clear:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/mvstore/OffHeapStore;
public void sync();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/OffHeapStore;
public int getDefaultRetentionTime();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/OffHeapStore;
}
SourceFile: "OffHeapStore.java"
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map