public class org.h2.store.FileStore
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.h2.store.FileStore
super_class: java.lang.Object
{
public static final int ;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 48
private static final java.lang.String ;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean ASSERT;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
protected java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
private final org.h2.store.DataHandler handler;
descriptor: Lorg/h2/store/DataHandler;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.nio.channels.FileChannel file;
descriptor: Ljava/nio/channels/FileChannel;
flags: (0x0002) ACC_PRIVATE
private long filePos;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long fileLength;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private java.lang.ref.Reference<?> autoDeleteReference;
descriptor: Ljava/lang/ref/Reference;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/ref/Reference<*>;
private boolean checkedWriting;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final java.lang.String mode;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.nio.channels.FileLock lock;
descriptor: Ljava/nio/channels/FileLock;
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=5, locals=1, args_size=0
0: ldc Lorg/h2/store/FileStore;
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.store.FileStore.$assertionsDisabled:Z
3: new java.lang.StringBuilder
dup
ldc "-- H2 0.5/B -- "
iconst_0
bipush 15
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: putstatic org.h2.store.FileStore.HEADER:Ljava/lang/String;
5: iconst_0
istore 0
start local 0 6: getstatic org.h2.store.FileStore.$assertionsDisabled:Z
ifne 7
iconst_1
dup
istore 0
ifne 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals: int
StackMap stack:
iload 0
putstatic org.h2.store.FileStore.ASSERT:Z
end local 0 8: return
LocalVariableTable:
Start End Slot Name Signature
6 8 0 a Z
protected void <init>(org.h2.store.DataHandler, java.lang.String, java.lang.String);
descriptor: (Lorg/h2/store/DataHandler;Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_1
putfield org.h2.store.FileStore.checkedWriting:Z
2: aload 0
aload 1
putfield org.h2.store.FileStore.handler:Lorg/h2/store/DataHandler;
3: aload 0
aload 2
putfield org.h2.store.FileStore.name:Ljava/lang/String;
4: aload 2
invokestatic org.h2.store.fs.FileUtils.exists:(Ljava/lang/String;)Z
istore 4
start local 4 5: iload 4
ifeq 8
aload 2
invokestatic org.h2.store.fs.FileUtils.canWrite:(Ljava/lang/String;)Z
ifne 8
6: ldc "r"
astore 3
7: goto 9
8: StackMap locals: org.h2.store.FileStore org.h2.store.DataHandler java.lang.String java.lang.String int
StackMap stack:
aload 2
invokestatic org.h2.store.fs.FileUtils.getParent:(Ljava/lang/String;)Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.createDirectories:(Ljava/lang/String;)V
9: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 3
invokestatic org.h2.store.fs.FileUtils.open:(Ljava/lang/String;Ljava/lang/String;)Ljava/nio/channels/FileChannel;
putfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
10: iload 4
ifeq 16
11: aload 0
aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.size:()J
putfield org.h2.store.FileStore.fileLength:J
end local 4 12: goto 16
StackMap locals: org.h2.store.FileStore org.h2.store.DataHandler java.lang.String java.lang.String
StackMap stack: java.io.IOException
13: astore 4
start local 4 14: aload 4
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;
ldc " mode: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
15: invokestatic org.h2.message.DbException.convertIOException:(Ljava/io/IOException;Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 4 16: StackMap locals:
StackMap stack:
aload 0
aload 3
putfield org.h2.store.FileStore.mode:Ljava/lang/String;
17: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/h2/store/FileStore;
0 18 1 handler Lorg/h2/store/DataHandler;
0 18 2 name Ljava/lang/String;
0 18 3 mode Ljava/lang/String;
5 12 4 exists Z
14 16 4 e Ljava/io/IOException;
Exception table:
from to target type
4 12 13 Class java.io.IOException
MethodParameters:
Name Flags
handler
name
mode
public static org.h2.store.FileStore open(org.h2.store.DataHandler, java.lang.String, java.lang.String);
descriptor: (Lorg/h2/store/DataHandler;Ljava/lang/String;Ljava/lang/String;)Lorg/h2/store/FileStore;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
aconst_null
aconst_null
iconst_0
invokestatic org.h2.store.FileStore.open:(Lorg/h2/store/DataHandler;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[BI)Lorg/h2/store/FileStore;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 handler Lorg/h2/store/DataHandler;
0 1 1 name Ljava/lang/String;
0 1 2 mode Ljava/lang/String;
MethodParameters:
Name Flags
handler
name
mode
public static org.h2.store.FileStore open(org.h2.store.DataHandler, java.lang.String, java.lang.String, java.lang.String, byte[]);
descriptor: (Lorg/h2/store/DataHandler;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[B)Lorg/h2/store/FileStore;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
aload 3
aload 4
1: sipush 1024
2: invokestatic org.h2.store.FileStore.open:(Lorg/h2/store/DataHandler;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[BI)Lorg/h2/store/FileStore;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 handler Lorg/h2/store/DataHandler;
0 3 1 name Ljava/lang/String;
0 3 2 mode Ljava/lang/String;
0 3 3 cipher Ljava/lang/String;
0 3 4 key [B
MethodParameters:
Name Flags
handler
name
mode
cipher
key
public static org.h2.store.FileStore open(org.h2.store.DataHandler, java.lang.String, java.lang.String, java.lang.String, byte[], int);
descriptor: (Lorg/h2/store/DataHandler;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[BI)Lorg/h2/store/FileStore;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 3
ifnonnull 3
1: new org.h2.store.FileStore
dup
aload 0
aload 1
aload 2
invokespecial org.h2.store.FileStore.<init>:(Lorg/h2/store/DataHandler;Ljava/lang/String;Ljava/lang/String;)V
astore 6
start local 6 2: goto 6
end local 6 3: StackMap locals:
StackMap stack:
new org.h2.security.SecureFileStore
dup
aload 0
aload 1
aload 2
4: aload 3
aload 4
iload 5
5: invokespecial org.h2.security.SecureFileStore.<init>:(Lorg/h2/store/DataHandler;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[BI)V
astore 6
start local 6 6: StackMap locals: org.h2.store.FileStore
StackMap stack:
aload 6
areturn
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 7 0 handler Lorg/h2/store/DataHandler;
0 7 1 name Ljava/lang/String;
0 7 2 mode Ljava/lang/String;
0 7 3 cipher Ljava/lang/String;
0 7 4 key [B
0 7 5 keyIterations I
2 3 6 store Lorg/h2/store/FileStore;
6 7 6 store Lorg/h2/store/FileStore;
MethodParameters:
Name Flags
handler
name
mode
cipher
key
keyIterations
protected byte[] generateSalt();
descriptor: ()[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.h2.store.FileStore.HEADER:Ljava/lang/String;
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/store/FileStore;
protected void initKey(byte[]);
descriptor: ([B)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/store/FileStore;
0 1 1 salt [B
MethodParameters:
Name Flags
salt
public void setCheckedWriting(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.store.FileStore.checkedWriting:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/store/FileStore;
0 2 1 value Z
MethodParameters:
Name Flags
value
private void checkWritingAllowed();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.store.FileStore.handler:Lorg/h2/store/DataHandler;
ifnull 2
aload 0
getfield org.h2.store.FileStore.checkedWriting:Z
ifeq 2
1: aload 0
getfield org.h2.store.FileStore.handler:Lorg/h2/store/DataHandler;
invokeinterface org.h2.store.DataHandler.checkWritingAllowed:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/store/FileStore;
private void checkPowerOff();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.store.FileStore.handler:Lorg/h2/store/DataHandler;
ifnull 2
1: aload 0
getfield org.h2.store.FileStore.handler:Lorg/h2/store/DataHandler;
invokeinterface org.h2.store.DataHandler.checkPowerOff:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/store/FileStore;
public void init();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: bipush 16
istore 1
start local 1 1: getstatic org.h2.store.FileStore.HEADER:Ljava/lang/String;
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
astore 3
start local 3 2: aload 0
invokevirtual org.h2.store.FileStore.length:()J
ldc 48
lcmp
ifge 11
3: aload 0
iconst_0
putfield org.h2.store.FileStore.checkedWriting:Z
4: aload 0
aload 3
iconst_0
iload 1
invokevirtual org.h2.store.FileStore.writeDirect:([BII)V
5: aload 0
invokevirtual org.h2.store.FileStore.generateSalt:()[B
astore 2
start local 2 6: aload 0
aload 2
iconst_0
iload 1
invokevirtual org.h2.store.FileStore.writeDirect:([BII)V
7: aload 0
aload 2
invokevirtual org.h2.store.FileStore.initKey:([B)V
8: aload 0
aload 3
iconst_0
iload 1
invokevirtual org.h2.store.FileStore.write:([BII)V
9: aload 0
iconst_1
putfield org.h2.store.FileStore.checkedWriting:Z
10: goto 22
end local 2 11: StackMap locals: org.h2.store.FileStore int top byte[]
StackMap stack:
aload 0
lconst_0
invokevirtual org.h2.store.FileStore.seek:(J)V
12: iload 1
newarray 8
astore 4
start local 4 13: aload 0
aload 4
iconst_0
iload 1
invokevirtual org.h2.store.FileStore.readFullyDirect:([BII)V
14: aload 4
aload 3
invokestatic java.util.Arrays.equals:([B[B)Z
ifne 16
15: ldc 90048
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
16: StackMap locals: byte[]
StackMap stack:
iload 1
newarray 8
astore 2
start local 2 17: aload 0
aload 2
iconst_0
iload 1
invokevirtual org.h2.store.FileStore.readFullyDirect:([BII)V
18: aload 0
aload 2
invokevirtual org.h2.store.FileStore.initKey:([B)V
19: aload 0
aload 4
iconst_0
bipush 16
invokevirtual org.h2.store.FileStore.readFully:([BII)V
20: aload 4
aload 3
invokestatic java.util.Arrays.equals:([B[B)Z
ifne 22
21: ldc 90049
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 4 22: StackMap locals: org.h2.store.FileStore int byte[] byte[]
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/h2/store/FileStore;
1 23 1 len I
6 11 2 salt [B
17 23 2 salt [B
2 23 3 magic [B
13 22 4 buff [B
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
ifnull 10
1: ldc "close"
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
invokestatic org.h2.store.FileStore.trace:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
2: aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.close:()V
3: goto 9
StackMap locals:
StackMap stack: java.io.IOException
4: astore 1
start local 1 5: aload 1
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
invokestatic org.h2.message.DbException.convertIOException:(Ljava/io/IOException;Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 1 6: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
7: aload 0
aconst_null
putfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
8: aload 2
athrow
9: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/h2/store/FileStore;
5 6 1 e Ljava/io/IOException;
Exception table:
from to target type
1 3 4 Class java.io.IOException
1 6 6 any
public void closeSilently();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.store.FileStore.close:()V
1: goto 3
StackMap locals:
StackMap stack: java.lang.Exception
2: pop
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/store/FileStore;
Exception table:
from to target type
0 1 2 Class java.lang.Exception
public void closeAndDeleteSilently();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
ifnull 4
1: aload 0
invokevirtual org.h2.store.FileStore.closeSilently:()V
2: aload 0
getfield org.h2.store.FileStore.handler:Lorg/h2/store/DataHandler;
invokeinterface org.h2.store.DataHandler.getTempFileDeleter:()Lorg/h2/util/TempFileDeleter;
aload 0
getfield org.h2.store.FileStore.autoDeleteReference:Ljava/lang/ref/Reference;
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
invokevirtual org.h2.util.TempFileDeleter.deleteFile:(Ljava/lang/ref/Reference;Ljava/lang/Object;)V
3: aload 0
aconst_null
putfield org.h2.store.FileStore.name:Ljava/lang/String;
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/store/FileStore;
protected void readFullyDirect(byte[], int, int);
descriptor: ([BII)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
iload 3
invokevirtual org.h2.store.FileStore.readFully:([BII)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/store/FileStore;
0 2 1 b [B
0 2 2 off I
0 2 3 len I
MethodParameters:
Name Flags
b
off
len
public void readFully(byte[], int, int);
descriptor: ([BII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
iflt 1
iload 3
bipush 16
irem
ifeq 3
1: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "unaligned read "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " len "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
2: invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
pop
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.store.FileStore.checkPowerOff:()V
4: aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
aload 1
iload 2
iload 3
invokestatic java.nio.ByteBuffer.wrap:([BII)Ljava/nio/ByteBuffer;
invokestatic org.h2.store.fs.FileUtils.readFully:(Ljava/nio/channels/FileChannel;Ljava/nio/ByteBuffer;)V
5: goto 8
StackMap locals:
StackMap stack: java.io.IOException
6: astore 4
start local 4 7: aload 4
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
invokestatic org.h2.message.DbException.convertIOException:(Ljava/io/IOException;Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 4 8: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.h2.store.FileStore.filePos:J
iload 3
i2l
ladd
putfield org.h2.store.FileStore.filePos:J
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/h2/store/FileStore;
0 10 1 b [B
0 10 2 off I
0 10 3 len I
7 8 4 e Ljava/io/IOException;
Exception table:
from to target type
4 5 6 Class java.io.IOException
MethodParameters:
Name Flags
b
off
len
public void seek(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: lload 1
ldc 16
lrem
lconst_0
lcmp
ifeq 3
1: new java.lang.StringBuilder
dup
ldc "unaligned seek "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " pos "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
2: invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
pop
3: StackMap locals:
StackMap stack:
lload 1
aload 0
getfield org.h2.store.FileStore.filePos:J
lcmp
ifeq 9
4: aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
lload 1
invokevirtual java.nio.channels.FileChannel.position:(J)Ljava/nio/channels/FileChannel;
pop
5: aload 0
lload 1
putfield org.h2.store.FileStore.filePos:J
6: goto 9
StackMap locals:
StackMap stack: java.io.IOException
7: astore 3
start local 3 8: aload 3
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
invokestatic org.h2.message.DbException.convertIOException:(Ljava/io/IOException;Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 3 9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/h2/store/FileStore;
0 10 1 pos J
8 9 3 e Ljava/io/IOException;
Exception table:
from to target type
3 6 7 Class java.io.IOException
MethodParameters:
Name Flags
pos
protected void writeDirect(byte[], int, int);
descriptor: ([BII)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
iload 3
invokevirtual org.h2.store.FileStore.write:([BII)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/store/FileStore;
0 2 1 b [B
0 2 2 off I
0 2 3 len I
MethodParameters:
Name Flags
b
off
len
public void write(byte[], int, int);
descriptor: ([BII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
iflt 1
iload 3
bipush 16
irem
ifeq 3
1: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "unaligned write "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " len "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
2: invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
pop
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.store.FileStore.checkWritingAllowed:()V
4: aload 0
invokevirtual org.h2.store.FileStore.checkPowerOff:()V
5: aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
aload 1
iload 2
iload 3
invokestatic java.nio.ByteBuffer.wrap:([BII)Ljava/nio/ByteBuffer;
invokestatic org.h2.store.fs.FileUtils.writeFully:(Ljava/nio/channels/FileChannel;Ljava/nio/ByteBuffer;)V
6: goto 10
StackMap locals:
StackMap stack: java.io.IOException
7: astore 4
start local 4 8: aload 0
invokevirtual org.h2.store.FileStore.closeFileSilently:()V
9: aload 4
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
invokestatic org.h2.message.DbException.convertIOException:(Ljava/io/IOException;Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 4 10: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.h2.store.FileStore.filePos:J
iload 3
i2l
ladd
putfield org.h2.store.FileStore.filePos:J
11: aload 0
aload 0
getfield org.h2.store.FileStore.filePos:J
aload 0
getfield org.h2.store.FileStore.fileLength:J
invokestatic java.lang.Math.max:(JJ)J
putfield org.h2.store.FileStore.fileLength:J
12: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/h2/store/FileStore;
0 13 1 b [B
0 13 2 off I
0 13 3 len I
8 10 4 e Ljava/io/IOException;
Exception table:
from to target type
5 6 7 Class java.io.IOException
MethodParameters:
Name Flags
b
off
len
public void setLength(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: lload 1
ldc 16
lrem
lconst_0
lcmp
ifeq 3
1: new java.lang.StringBuilder
dup
ldc "unaligned setLength "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " pos "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
2: invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
pop
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.store.FileStore.checkPowerOff:()V
4: aload 0
invokevirtual org.h2.store.FileStore.checkWritingAllowed:()V
5: lload 1
aload 0
getfield org.h2.store.FileStore.fileLength:J
lcmp
ifle 11
6: aload 0
getfield org.h2.store.FileStore.filePos:J
lstore 3
start local 3 7: aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
lload 1
lconst_1
lsub
invokevirtual java.nio.channels.FileChannel.position:(J)Ljava/nio/channels/FileChannel;
pop
8: aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
iconst_1
newarray 8
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
invokestatic org.h2.store.fs.FileUtils.writeFully:(Ljava/nio/channels/FileChannel;Ljava/nio/ByteBuffer;)V
9: aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
lload 3
invokevirtual java.nio.channels.FileChannel.position:(J)Ljava/nio/channels/FileChannel;
pop
end local 3 10: goto 12
11: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
lload 1
invokevirtual java.nio.channels.FileChannel.truncate:(J)Ljava/nio/channels/FileChannel;
pop
12: StackMap locals:
StackMap stack:
aload 0
lload 1
putfield org.h2.store.FileStore.fileLength:J
13: goto 17
StackMap locals:
StackMap stack: java.io.IOException
14: astore 3
start local 3 15: aload 0
invokevirtual org.h2.store.FileStore.closeFileSilently:()V
16: aload 3
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
invokestatic org.h2.message.DbException.convertIOException:(Ljava/io/IOException;Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 3 17: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/h2/store/FileStore;
0 18 1 newLength J
7 10 3 pos J
15 17 3 e Ljava/io/IOException;
Exception table:
from to target type
5 13 14 Class java.io.IOException
MethodParameters:
Name Flags
newLength
public long length();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=1
start local 0 0: aload 0
getfield org.h2.store.FileStore.fileLength:J
lstore 1
start local 1 1: getstatic org.h2.store.FileStore.ASSERT:Z
ifeq 17
2: aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.size:()J
lstore 1
3: lload 1
aload 0
getfield org.h2.store.FileStore.fileLength:J
lcmp
ifeq 6
4: new java.lang.StringBuilder
dup
ldc "file "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " length "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " expected "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.h2.store.FileStore.fileLength:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
pop
6: StackMap locals: long
StackMap stack:
lload 1
ldc 16
lrem
lconst_0
lcmp
ifeq 17
7: lload 1
ldc 16
ladd
8: lload 1
ldc 16
lrem
9: lsub
lstore 3
start local 3 10: aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
lload 3
invokevirtual java.nio.channels.FileChannel.truncate:(J)Ljava/nio/channels/FileChannel;
pop
11: aload 0
lload 3
putfield org.h2.store.FileStore.fileLength:J
12: new java.lang.StringBuilder
dup
ldc "unaligned file length "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " len "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
pop
end local 3 14: goto 17
StackMap locals:
StackMap stack: java.io.IOException
15: astore 3
start local 3 16: aload 3
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
invokestatic org.h2.message.DbException.convertIOException:(Ljava/io/IOException;Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 3 17: StackMap locals:
StackMap stack:
lload 1
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/h2/store/FileStore;
1 18 1 len J
10 14 3 newLength J
16 17 3 e Ljava/io/IOException;
Exception table:
from to target type
2 14 15 Class java.io.IOException
public long getFilePointer();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: getstatic org.h2.store.FileStore.ASSERT:Z
ifeq 6
1: aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.position:()J
aload 0
getfield org.h2.store.FileStore.filePos:J
lcmp
ifeq 6
2: new java.lang.StringBuilder
dup
aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.position:()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
getfield org.h2.store.FileStore.filePos:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
pop
3: goto 6
StackMap locals:
StackMap stack: java.io.IOException
4: astore 1
start local 1 5: aload 1
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
invokestatic org.h2.message.DbException.convertIOException:(Ljava/io/IOException;Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 1 6: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.FileStore.filePos:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/h2/store/FileStore;
5 6 1 e Ljava/io/IOException;
Exception table:
from to target type
1 3 4 Class java.io.IOException
public void sync();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
iconst_1
invokevirtual java.nio.channels.FileChannel.force:(Z)V
1: goto 5
StackMap locals:
StackMap stack: java.io.IOException
2: astore 1
start local 1 3: aload 0
invokevirtual org.h2.store.FileStore.closeFileSilently:()V
4: aload 1
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
invokestatic org.h2.message.DbException.convertIOException:(Ljava/io/IOException;Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 1 5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/store/FileStore;
3 5 1 e Ljava/io/IOException;
Exception table:
from to target type
0 1 2 Class java.io.IOException
public void autoDelete();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.store.FileStore.autoDeleteReference:Ljava/lang/ref/Reference;
ifnonnull 2
1: aload 0
aload 0
getfield org.h2.store.FileStore.handler:Lorg/h2/store/DataHandler;
invokeinterface org.h2.store.DataHandler.getTempFileDeleter:()Lorg/h2/util/TempFileDeleter;
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
aload 0
invokevirtual org.h2.util.TempFileDeleter.addFile:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/ref/Reference;
putfield org.h2.store.FileStore.autoDeleteReference:Ljava/lang/ref/Reference;
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/store/FileStore;
public void stopAutoDelete();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.store.FileStore.handler:Lorg/h2/store/DataHandler;
invokeinterface org.h2.store.DataHandler.getTempFileDeleter:()Lorg/h2/util/TempFileDeleter;
aload 0
getfield org.h2.store.FileStore.autoDeleteReference:Ljava/lang/ref/Reference;
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
invokevirtual org.h2.util.TempFileDeleter.stopAutoDelete:(Ljava/lang/ref/Reference;Ljava/lang/Object;)V
1: aload 0
aconst_null
putfield org.h2.store.FileStore.autoDeleteReference:Ljava/lang/ref/Reference;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/store/FileStore;
public void closeFile();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.close:()V
1: aload 0
aconst_null
putfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/store/FileStore;
Exceptions:
throws java.io.IOException
private void closeFileSilently();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.close:()V
1: goto 3
StackMap locals:
StackMap stack: java.io.IOException
2: pop
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/store/FileStore;
Exception table:
from to target type
0 1 2 Class java.io.IOException
public void openFile();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
ifnonnull 3
1: aload 0
aload 0
getfield org.h2.store.FileStore.name:Ljava/lang/String;
aload 0
getfield org.h2.store.FileStore.mode:Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.open:(Ljava/lang/String;Ljava/lang/String;)Ljava/nio/channels/FileChannel;
putfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
2: aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
aload 0
getfield org.h2.store.FileStore.filePos:J
invokevirtual java.nio.channels.FileChannel.position:(J)Ljava/nio/channels/FileChannel;
pop
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/store/FileStore;
Exceptions:
throws java.io.IOException
private static void trace(java.lang.String, java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic org.h2.engine.SysProperties.TRACE_IO:Z
ifeq 2
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "FileStore."
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 method Ljava/lang/String;
0 3 1 fileName Ljava/lang/String;
0 3 2 o Ljava/lang/Object;
MethodParameters:
Name Flags
method
fileName
o
public synchronized boolean tryLock();
descriptor: ()Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.tryLock:()Ljava/nio/channels/FileLock;
putfield org.h2.store.FileStore.lock:Ljava/nio/channels/FileLock;
1: aload 0
getfield org.h2.store.FileStore.lock:Ljava/nio/channels/FileLock;
ifnull 2
iconst_1
ireturn
StackMap locals:
StackMap stack:
2: iconst_0
3: ireturn
4: StackMap locals:
StackMap stack: java.lang.Exception
pop
5: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/store/FileStore;
Exception table:
from to target type
0 3 4 Class java.lang.Exception
public synchronized void releaseLock();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.store.FileStore.file:Ljava/nio/channels/FileChannel;
ifnull 5
aload 0
getfield org.h2.store.FileStore.lock:Ljava/nio/channels/FileLock;
ifnull 5
1: aload 0
getfield org.h2.store.FileStore.lock:Ljava/nio/channels/FileLock;
invokevirtual java.nio.channels.FileLock.release:()V
2: goto 4
StackMap locals:
StackMap stack: java.lang.Exception
3: pop
4: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.h2.store.FileStore.lock:Ljava/nio/channels/FileLock;
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/store/FileStore;
Exception table:
from to target type
1 2 3 Class java.lang.Exception
}
SourceFile: "FileStore.java"