class org.h2.mvstore.StreamStore$Stream extends java.io.InputStream
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.h2.mvstore.StreamStore$Stream
super_class: java.io.InputStream
{
private final org.h2.mvstore.StreamStore store;
descriptor: Lorg/h2/mvstore/StreamStore;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private byte[] oneByteBuffer;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private java.nio.ByteBuffer idBuffer;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
private java.io.ByteArrayInputStream buffer;
descriptor: Ljava/io/ByteArrayInputStream;
flags: (0x0002) ACC_PRIVATE
private long skip;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final long length;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long pos;
descriptor: J
flags: (0x0002) ACC_PRIVATE
void <init>(org.h2.mvstore.StreamStore, byte[]);
descriptor: (Lorg/h2/mvstore/StreamStore;[B)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.io.InputStream.<init>:()V
1: aload 0
aload 1
putfield org.h2.mvstore.StreamStore$Stream.store:Lorg/h2/mvstore/StreamStore;
2: aload 0
aload 1
aload 2
invokevirtual org.h2.mvstore.StreamStore.length:([B)J
putfield org.h2.mvstore.StreamStore$Stream.length:J
3: aload 0
aload 2
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
putfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/mvstore/StreamStore$Stream;
0 5 1 store Lorg/h2/mvstore/StreamStore;
0 5 2 id [B
MethodParameters:
Name Flags
store
id
public int read();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.StreamStore$Stream.oneByteBuffer:[B
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aload 0
iconst_1
newarray 8
dup_x1
putfield org.h2.mvstore.StreamStore$Stream.oneByteBuffer:[B
astore 1
3: StackMap locals: byte[]
StackMap stack:
aload 0
aload 1
iconst_0
iconst_1
invokevirtual org.h2.mvstore.StreamStore$Stream.read:([BII)I
istore 2
start local 2 4: iload 2
iconst_m1
if_icmpne 5
iconst_m1
goto 6
StackMap locals: int
StackMap stack:
5: aload 1
iconst_0
baload
sipush 255
iand
StackMap locals:
StackMap stack: int
6: ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/h2/mvstore/StreamStore$Stream;
1 7 1 buffer [B
4 7 2 len I
Exceptions:
throws java.io.IOException
public long skip(long);
descriptor: (J)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.mvstore.StreamStore$Stream.length:J
aload 0
getfield org.h2.mvstore.StreamStore$Stream.pos:J
lsub
lload 1
invokestatic java.lang.Math.min:(JJ)J
lstore 1
1: lload 1
lconst_0
lcmp
ifne 3
2: lconst_0
lreturn
3: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.StreamStore$Stream.buffer:Ljava/io/ByteArrayInputStream;
ifnull 11
4: aload 0
getfield org.h2.mvstore.StreamStore$Stream.buffer:Ljava/io/ByteArrayInputStream;
lload 1
invokevirtual java.io.ByteArrayInputStream.skip:(J)J
lstore 3
start local 3 5: lload 3
lconst_0
lcmp
ifle 8
6: lload 3
lstore 1
7: goto 12
8: StackMap locals: long
StackMap stack:
aload 0
aconst_null
putfield org.h2.mvstore.StreamStore$Stream.buffer:Ljava/io/ByteArrayInputStream;
9: aload 0
dup
getfield org.h2.mvstore.StreamStore$Stream.skip:J
lload 1
ladd
putfield org.h2.mvstore.StreamStore$Stream.skip:J
end local 3 10: goto 12
11: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.h2.mvstore.StreamStore$Stream.skip:J
lload 1
ladd
putfield org.h2.mvstore.StreamStore$Stream.skip:J
12: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.h2.mvstore.StreamStore$Stream.pos:J
lload 1
ladd
putfield org.h2.mvstore.StreamStore$Stream.pos:J
13: lload 1
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/h2/mvstore/StreamStore$Stream;
0 14 1 n J
5 10 3 s J
MethodParameters:
Name Flags
n
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
putfield org.h2.mvstore.StreamStore$Stream.buffer:Ljava/io/ByteArrayInputStream;
1: aload 0
getfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
aload 0
getfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
2: aload 0
aload 0
getfield org.h2.mvstore.StreamStore$Stream.length:J
putfield org.h2.mvstore.StreamStore$Stream.pos:J
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/mvstore/StreamStore$Stream;
public int read(byte[], int, int);
descriptor: ([BII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
ifgt 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.StreamStore$Stream.buffer:Ljava/io/ByteArrayInputStream;
ifnonnull 13
3: aload 0
aload 0
invokevirtual org.h2.mvstore.StreamStore$Stream.nextBuffer:()Ljava/io/ByteArrayInputStream;
putfield org.h2.mvstore.StreamStore$Stream.buffer:Ljava/io/ByteArrayInputStream;
4: goto 11
StackMap locals:
StackMap stack: java.lang.IllegalStateException
5: astore 4
start local 4 6: bipush 50
7: ldc "Block not found in id {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
8: aload 0
getfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.array:()[B
invokestatic java.util.Arrays.toString:([B)Ljava/lang/String;
aastore
9: invokestatic org.h2.mvstore.DataUtils.formatMessage:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 5
start local 5 10: new java.io.IOException
dup
aload 5
aload 4
invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 end local 4 11: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.StreamStore$Stream.buffer:Ljava/io/ByteArrayInputStream;
ifnonnull 13
12: iconst_m1
ireturn
13: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.StreamStore$Stream.buffer:Ljava/io/ByteArrayInputStream;
aload 1
iload 2
iload 3
invokevirtual java.io.ByteArrayInputStream.read:([BII)I
istore 4
start local 4 14: iload 4
ifle 17
15: aload 0
dup
getfield org.h2.mvstore.StreamStore$Stream.pos:J
iload 4
i2l
ladd
putfield org.h2.mvstore.StreamStore$Stream.pos:J
16: iload 4
ireturn
17: StackMap locals: int
StackMap stack:
aload 0
aconst_null
putfield org.h2.mvstore.StreamStore$Stream.buffer:Ljava/io/ByteArrayInputStream;
end local 4 18: goto 2
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/h2/mvstore/StreamStore$Stream;
0 19 1 b [B
0 19 2 off I
0 19 3 len I
6 11 4 e Ljava/lang/IllegalStateException;
10 11 5 msg Ljava/lang/String;
14 18 4 result I
Exception table:
from to target type
3 4 5 Class java.lang.IllegalStateException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
len
private java.io.ByteArrayInputStream nextBuffer();
descriptor: ()Ljava/io/ByteArrayInputStream;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=1
start local 0 0: goto 39
1: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.get:()B
tableswitch { // 0 - 2
0: 2
1: 11
2: 20
default: 36
}
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
invokestatic org.h2.mvstore.DataUtils.readVarInt:(Ljava/nio/ByteBuffer;)I
istore 1
start local 1 3: aload 0
getfield org.h2.mvstore.StreamStore$Stream.skip:J
iload 1
i2l
lcmp
iflt 7
4: aload 0
dup
getfield org.h2.mvstore.StreamStore$Stream.skip:J
iload 1
i2l
lsub
putfield org.h2.mvstore.StreamStore$Stream.skip:J
5: aload 0
getfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
aload 0
getfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
iload 1
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
6: goto 39
7: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
i2l
aload 0
getfield org.h2.mvstore.StreamStore$Stream.skip:J
ladd
l2i
istore 2
start local 2 8: iload 1
i2l
aload 0
getfield org.h2.mvstore.StreamStore$Stream.skip:J
lsub
l2i
istore 3
start local 3 9: aload 0
getfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
iload 2
iload 3
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
10: new java.io.ByteArrayInputStream
dup
aload 0
getfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.array:()[B
iload 2
iload 3
invokespecial java.io.ByteArrayInputStream.<init>:([BII)V
areturn
end local 3 end local 2 end local 1 11: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
invokestatic org.h2.mvstore.DataUtils.readVarInt:(Ljava/nio/ByteBuffer;)I
istore 1
start local 1 12: aload 0
getfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
invokestatic org.h2.mvstore.DataUtils.readVarLong:(Ljava/nio/ByteBuffer;)J
lstore 2
start local 2 13: aload 0
getfield org.h2.mvstore.StreamStore$Stream.skip:J
iload 1
i2l
lcmp
iflt 16
14: aload 0
dup
getfield org.h2.mvstore.StreamStore$Stream.skip:J
iload 1
i2l
lsub
putfield org.h2.mvstore.StreamStore$Stream.skip:J
15: goto 39
16: StackMap locals: int long
StackMap stack:
aload 0
getfield org.h2.mvstore.StreamStore$Stream.store:Lorg/h2/mvstore/StreamStore;
lload 2
invokevirtual org.h2.mvstore.StreamStore.getBlock:(J)[B
astore 4
start local 4 17: aload 0
getfield org.h2.mvstore.StreamStore$Stream.skip:J
l2i
istore 5
start local 5 18: aload 0
lconst_0
putfield org.h2.mvstore.StreamStore$Stream.skip:J
19: new java.io.ByteArrayInputStream
dup
aload 4
iload 5
aload 4
arraylength
iload 5
isub
invokespecial java.io.ByteArrayInputStream.<init>:([BII)V
areturn
end local 5 end local 4 end local 2 end local 1 20: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
invokestatic org.h2.mvstore.DataUtils.readVarLong:(Ljava/nio/ByteBuffer;)J
lstore 1
start local 1 21: aload 0
getfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
invokestatic org.h2.mvstore.DataUtils.readVarLong:(Ljava/nio/ByteBuffer;)J
lstore 3
start local 3 22: aload 0
getfield org.h2.mvstore.StreamStore$Stream.skip:J
lload 1
lcmp
iflt 25
23: aload 0
dup
getfield org.h2.mvstore.StreamStore$Stream.skip:J
lload 1
lsub
putfield org.h2.mvstore.StreamStore$Stream.skip:J
24: goto 39
25: StackMap locals: long long
StackMap stack:
aload 0
getfield org.h2.mvstore.StreamStore$Stream.store:Lorg/h2/mvstore/StreamStore;
lload 3
invokevirtual org.h2.mvstore.StreamStore.getBlock:(J)[B
astore 5
start local 5 26: aload 5
arraylength
27: aload 0
getfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
28: iadd
29: aload 0
getfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
30: isub
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 6
start local 6 31: aload 6
aload 5
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
32: aload 6
aload 0
getfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
33: aload 6
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
34: aload 0
aload 6
putfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
35: aload 0
invokevirtual org.h2.mvstore.StreamStore$Stream.nextBuffer:()Ljava/io/ByteArrayInputStream;
areturn
end local 6 end local 5 end local 3 end local 1 36: StackMap locals:
StackMap stack:
ldc "Unsupported id {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
37: aload 0
getfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.array:()[B
invokestatic java.util.Arrays.toString:([B)Ljava/lang/String;
aastore
38: invokestatic org.h2.mvstore.DataUtils.newIllegalArgumentException:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;
athrow
39: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.StreamStore$Stream.idBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 1
40: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Lorg/h2/mvstore/StreamStore$Stream;
3 11 1 len I
8 11 2 p I
9 11 3 l I
12 20 1 len I
13 20 2 key J
17 20 4 data [B
18 20 5 s I
21 36 1 len J
22 36 3 key J
26 36 5 k [B
31 36 6 newBuffer Ljava/nio/ByteBuffer;
}
SourceFile: "StreamStore.java"
NestHost: org.h2.mvstore.StreamStore
InnerClasses:
Stream = org.h2.mvstore.StreamStore$Stream of org.h2.mvstore.StreamStore