public class org.h2.store.FileLock implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.h2.store.FileLock
super_class: java.lang.Object
{
private static final java.lang.String MAGIC;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "FileLock"
private static final java.lang.String FILE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "file"
private static final java.lang.String SOCKET;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "socket"
private static final java.lang.String SERIALIZED;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "serialized"
private static final int RANDOM_BYTES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int SLEEP_GAP;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 25
private static final int TIME_GRANULARITY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2000
private volatile java.lang.String fileName;
descriptor: Ljava/lang/String;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile java.net.ServerSocket serverSocket;
descriptor: Ljava/net/ServerSocket;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean locked;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final int sleep;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.h2.message.Trace trace;
descriptor: Lorg/h2/message/Trace;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long lastWrite;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private java.lang.String method;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.util.Properties properties;
descriptor: Ljava/util/Properties;
flags: (0x0002) ACC_PRIVATE
private java.lang.String uniqueId;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.Thread watchdog;
descriptor: Ljava/lang/Thread;
flags: (0x0002) ACC_PRIVATE
private static volatile int[] $SWITCH_TABLE$org$h2$store$FileLockMethod;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
public void <init>(org.h2.message.TraceSystem, java.lang.String, int);
descriptor: (Lorg/h2/message/TraceSystem;Ljava/lang/String;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, 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
aload 1
ifnonnull 3
2: aconst_null
goto 4
StackMap locals: org.h2.store.FileLock org.h2.message.TraceSystem java.lang.String int
StackMap stack: org.h2.store.FileLock
3: aload 1
iconst_4
invokevirtual org.h2.message.TraceSystem.getTrace:(I)Lorg/h2/message/Trace;
4: StackMap locals: org.h2.store.FileLock org.h2.message.TraceSystem java.lang.String int
StackMap stack: org.h2.store.FileLock org.h2.message.Trace
putfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
5: aload 0
aload 2
putfield org.h2.store.FileLock.fileName:Ljava/lang/String;
6: aload 0
iload 3
putfield org.h2.store.FileLock.sleep:I
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/h2/store/FileLock;
0 8 1 traceSystem Lorg/h2/message/TraceSystem;
0 8 2 fileName Ljava/lang/String;
0 8 3 sleep I
MethodParameters:
Name Flags
traceSystem
fileName
sleep
public synchronized void lock(org.h2.store.FileLockMethod);
descriptor: (Lorg/h2/store/FileLockMethod;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.h2.store.FileLock.checkServer:()V
1: aload 0
getfield org.h2.store.FileLock.locked:Z
ifeq 3
2: ldc "already locked"
invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
pop
3: StackMap locals:
StackMap stack:
invokestatic org.h2.store.FileLock.$SWITCH_TABLE$org$h2$store$FileLockMethod:()[I
aload 1
invokevirtual org.h2.store.FileLockMethod.ordinal:()I
iaload
tableswitch { // 1 - 5
1: 10
2: 4
3: 6
4: 8
5: 10
default: 10
}
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.store.FileLock.lockFile:()V
5: goto 10
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.store.FileLock.lockSocket:()V
7: goto 10
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.store.FileLock.lockSerialized:()V
9: goto 10
10: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.h2.store.FileLock.locked:Z
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/h2/store/FileLock;
0 12 1 fileLockMethod Lorg/h2/store/FileLockMethod;
MethodParameters:
Name Flags
fileLockMethod
public synchronized void unlock();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield org.h2.store.FileLock.locked:Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield org.h2.store.FileLock.locked:Z
3: aload 0
getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
ifnull 8
4: aload 0
getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
5: goto 8
StackMap locals:
StackMap stack: java.lang.Exception
6: astore 1
start local 1 7: aload 0
getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
aload 1
ldc "unlock"
invokevirtual org.h2.message.Trace.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
end local 1 8: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
ifnull 11
9: aload 0
invokevirtual org.h2.store.FileLock.load:()Ljava/util/Properties;
aload 0
getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
invokevirtual java.util.Properties.equals:(Ljava/lang/Object;)Z
ifeq 11
10: aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.delete:(Ljava/lang/String;)V
11: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.FileLock.serverSocket:Ljava/net/ServerSocket;
ifnull 22
12: aload 0
getfield org.h2.store.FileLock.serverSocket:Ljava/net/ServerSocket;
invokevirtual java.net.ServerSocket.close:()V
13: goto 22
StackMap locals:
StackMap stack: java.lang.Exception
14: astore 1
start local 1 15: aload 0
getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
aload 1
ldc "unlock"
invokevirtual org.h2.message.Trace.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
end local 1 16: aload 0
aconst_null
putfield org.h2.store.FileLock.fileName:Ljava/lang/String;
17: aload 0
aconst_null
putfield org.h2.store.FileLock.serverSocket:Ljava/net/ServerSocket;
goto 24
18: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
19: aload 0
aconst_null
putfield org.h2.store.FileLock.fileName:Ljava/lang/String;
20: aload 0
aconst_null
putfield org.h2.store.FileLock.serverSocket:Ljava/net/ServerSocket;
21: aload 2
athrow
22: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.h2.store.FileLock.fileName:Ljava/lang/String;
23: aload 0
aconst_null
putfield org.h2.store.FileLock.serverSocket:Ljava/net/ServerSocket;
24: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
ifnull 33
25: aload 0
getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
invokevirtual java.lang.Thread.join:()V
26: goto 33
StackMap locals:
StackMap stack: java.lang.Exception
27: astore 1
start local 1 28: aload 0
getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
aload 1
ldc "unlock"
invokevirtual org.h2.message.Trace.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
end local 1 29: aload 0
aconst_null
putfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
goto 34
30: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
31: aload 0
aconst_null
putfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
32: aload 2
athrow
33: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
34: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lorg/h2/store/FileLock;
7 8 1 e Ljava/lang/Exception;
15 16 1 e Ljava/lang/Exception;
28 29 1 e Ljava/lang/Exception;
Exception table:
from to target type
3 5 6 Class java.lang.Exception
8 13 14 Class java.lang.Exception
8 16 18 any
24 26 27 Class java.lang.Exception
24 29 30 any
public void setProperty(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 3
1: aload 0
getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
aload 1
invokevirtual java.util.Properties.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
aload 1
aload 2
invokevirtual java.util.Properties.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/store/FileLock;
0 5 1 key Ljava/lang/String;
0 5 2 value Ljava/lang/String;
MethodParameters:
Name Flags
key
value
public java.util.Properties save();
descriptor: ()Ljava/util/Properties;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
iconst_0
invokestatic org.h2.store.fs.FileUtils.newOutputStream:(Ljava/lang/String;Z)Ljava/io/OutputStream;
astore 3
start local 3 2: aload 0
getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
aload 3
ldc "FileLock"
invokevirtual java.util.Properties.store:(Ljava/io/OutputStream;Ljava/lang/String;)V
3: aload 3
ifnull 9
aload 3
invokevirtual java.io.OutputStream.close:()V
goto 9
StackMap locals: org.h2.store.FileLock java.lang.Throwable java.lang.Throwable java.io.OutputStream
StackMap stack: java.lang.Throwable
4: astore 1
aload 3
ifnull 5
aload 3
invokevirtual java.io.OutputStream.close:()V
end local 3 StackMap locals:
StackMap stack:
5: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
6: astore 2
aload 1
ifnonnull 7
aload 2
astore 1
goto 8
StackMap locals:
StackMap stack:
7: aload 1
aload 2
if_acmpeq 8
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
8: aload 1
athrow
9: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.lastModified:(Ljava/lang/String;)J
putfield org.h2.store.FileLock.lastWrite:J
10: aload 0
getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
ifeq 12
11: aload 0
getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
new java.lang.StringBuilder
dup
ldc "save "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
12: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
13: areturn
14: StackMap locals:
StackMap stack: java.io.IOException
astore 1
start local 1 15: new java.lang.StringBuilder
dup
ldc "Could not save properties "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 1
invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/h2/store/FileLock;
2 5 3 out Ljava/io/OutputStream;
15 16 1 e Ljava/io/IOException;
Exception table:
from to target type
2 3 4 any
1 6 6 any
0 13 14 Class java.io.IOException
private void checkServer();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.store.FileLock.load:()Ljava/util/Properties;
astore 1
start local 1 1: aload 1
ldc "server"
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 2: aload 2
ifnonnull 4
3: return
4: StackMap locals: java.util.Properties java.lang.String
StackMap stack:
iconst_0
istore 3
start local 3 5: aload 1
ldc "id"
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 6: aload 2
7: sipush 9092
iconst_0
8: invokestatic org.h2.util.NetUtils.createSocket:(Ljava/lang/String;IZ)Ljava/net/Socket;
astore 5
start local 5 9: new org.h2.value.Transfer
dup
aconst_null
aload 5
invokespecial org.h2.value.Transfer.<init>:(Lorg/h2/engine/SessionInterface;Ljava/net/Socket;)V
astore 6
start local 6 10: aload 6
invokevirtual org.h2.value.Transfer.init:()V
11: aload 6
bipush 9
invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
pop
12: aload 6
bipush 18
invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
pop
13: aload 6
aconst_null
invokevirtual org.h2.value.Transfer.writeString:(Ljava/lang/String;)Lorg/h2/value/Transfer;
pop
14: aload 6
aconst_null
invokevirtual org.h2.value.Transfer.writeString:(Ljava/lang/String;)Lorg/h2/value/Transfer;
pop
15: aload 6
aload 4
invokevirtual org.h2.value.Transfer.writeString:(Ljava/lang/String;)Lorg/h2/value/Transfer;
pop
16: aload 6
bipush 14
invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
pop
17: aload 6
invokevirtual org.h2.value.Transfer.flush:()V
18: aload 6
invokevirtual org.h2.value.Transfer.readInt:()I
istore 7
start local 7 19: iload 7
iconst_1
if_icmpne 21
20: iconst_1
istore 3
21: StackMap locals: org.h2.store.FileLock java.util.Properties java.lang.String int java.lang.String java.net.Socket org.h2.value.Transfer int
StackMap stack:
aload 6
invokevirtual org.h2.value.Transfer.close:()V
22: aload 5
invokevirtual java.net.Socket.close:()V
end local 7 end local 6 end local 5 23: goto 26
StackMap locals: org.h2.store.FileLock java.util.Properties java.lang.String int java.lang.String
StackMap stack: java.io.IOException
24: pop
25: return
26: StackMap locals:
StackMap stack:
iload 3
ifeq 30
27: ldc 90020
ldc "Server is running"
28: invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
astore 5
start local 5 29: aload 5
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)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 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.h2.message.DbException.addSQL:(Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 5 30: 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 31 0 this Lorg/h2/store/FileLock;
1 31 1 prop Ljava/util/Properties;
2 31 2 server Ljava/lang/String;
5 31 3 running Z
6 31 4 id Ljava/lang/String;
9 23 5 socket Ljava/net/Socket;
10 23 6 transfer Lorg/h2/value/Transfer;
19 23 7 state I
29 30 5 e Lorg/h2/message/DbException;
Exception table:
from to target type
6 23 24 Class java.io.IOException
public java.util.Properties load();
descriptor: ()Ljava/util/Properties;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 11
3: StackMap locals: java.io.IOException int
StackMap stack:
aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokestatic org.h2.util.SortedProperties.loadProperties:(Ljava/lang/String;)Lorg/h2/util/SortedProperties;
astore 3
start local 3 4: aload 0
getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
ifeq 6
5: aload 0
getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
new java.lang.StringBuilder
dup
ldc "load "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
6: StackMap locals: java.util.Properties
StackMap stack:
aload 3
7: areturn
end local 3 8: StackMap locals: org.h2.store.FileLock java.io.IOException int
StackMap stack: java.io.IOException
astore 3
start local 3 9: aload 3
astore 1
end local 3 10: iinc 2 1
StackMap locals:
StackMap stack:
11: iload 2
iconst_5
if_icmplt 3
end local 2 12: new java.lang.StringBuilder
dup
ldc "Could not load properties "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 1
13: invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/h2/store/FileLock;
1 14 1 lastException Ljava/io/IOException;
2 12 2 i I
4 8 3 p2 Ljava/util/Properties;
9 10 3 e Ljava/io/IOException;
Exception table:
from to target type
3 7 8 Class java.io.IOException
private void waitUntilOld();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 17
2: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.lastModified:(Ljava/lang/String;)J
lstore 2
start local 2 3: invokestatic java.lang.System.currentTimeMillis:()J
lload 2
lsub
lstore 4
start local 4 4: lload 4
ldc -2000
lcmp
ifge 10
5: ldc 2
aload 0
getfield org.h2.store.FileLock.sleep:I
i2l
lmul
invokestatic java.lang.Thread.sleep:(J)V
6: goto 9
StackMap locals: org.h2.store.FileLock int long long
StackMap stack: java.lang.Exception
7: astore 6
start local 6 8: aload 0
getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
aload 6
ldc "sleep"
invokevirtual org.h2.message.Trace.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
end local 6 9: StackMap locals:
StackMap stack:
return
10: StackMap locals:
StackMap stack:
lload 4
ldc 2000
lcmp
ifle 12
11: return
12: StackMap locals:
StackMap stack:
ldc 25
invokestatic java.lang.Thread.sleep:(J)V
13: goto 16
StackMap locals:
StackMap stack: java.lang.Exception
14: astore 6
start local 6 15: aload 0
getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
aload 6
ldc "sleep"
invokevirtual org.h2.message.Trace.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
end local 6 end local 4 end local 2 16: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
17: iload 1
sipush 160
if_icmplt 2
end local 1 18: ldc "Lock file recently modified"
aconst_null
invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/h2/store/FileLock;
1 18 1 i I
3 16 2 last J
4 16 4 dist J
8 9 6 e Ljava/lang/Exception;
15 16 6 e Ljava/lang/Exception;
Exception table:
from to target type
5 6 7 Class java.lang.Exception
12 13 14 Class java.lang.Exception
private void setUniqueId();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=1
start local 0 0: bipush 16
invokestatic org.h2.util.MathUtils.secureRandomBytes:(I)[B
astore 1
start local 1 1: aload 1
invokestatic org.h2.util.StringUtils.convertBytesToHex:([B)Ljava/lang/String;
astore 2
start local 2 2: aload 0
new java.lang.StringBuilder
dup
invokestatic java.lang.System.currentTimeMillis:()J
invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
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;
putfield org.h2.store.FileLock.uniqueId:Ljava/lang/String;
3: aload 0
getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
ldc "id"
aload 0
getfield org.h2.store.FileLock.uniqueId:Ljava/lang/String;
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/store/FileLock;
1 5 1 bytes [B
2 5 2 random Ljava/lang/String;
private void lockSerialized();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc "serialized"
putfield org.h2.store.FileLock.method:Ljava/lang/String;
1: aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.getParent:(Ljava/lang/String;)Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.createDirectories:(Ljava/lang/String;)V
2: aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.createFile:(Ljava/lang/String;)Z
ifeq 8
3: aload 0
new org.h2.util.SortedProperties
dup
invokespecial org.h2.util.SortedProperties.<init>:()V
putfield org.h2.store.FileLock.properties:Ljava/util/Properties;
4: aload 0
getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
ldc "method"
aload 0
getfield org.h2.store.FileLock.method:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
5: aload 0
invokevirtual org.h2.store.FileLock.setUniqueId:()V
6: aload 0
invokevirtual org.h2.store.FileLock.save:()Ljava/util/Properties;
pop
7: goto 12
8: StackMap locals:
StackMap stack:
aload 0
aload 0
invokevirtual org.h2.store.FileLock.load:()Ljava/util/Properties;
putfield org.h2.store.FileLock.properties:Ljava/util/Properties;
9: goto 11
StackMap locals:
StackMap stack: org.h2.message.DbException
10: pop
11: StackMap locals:
StackMap stack:
return
12: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/h2/store/FileLock;
Exception table:
from to target type
8 9 10 Class org.h2.message.DbException
private void lockFile();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=2, args_size=1
start local 0 0: aload 0
ldc "file"
putfield org.h2.store.FileLock.method:Ljava/lang/String;
1: aload 0
new org.h2.util.SortedProperties
dup
invokespecial org.h2.util.SortedProperties.<init>:()V
putfield org.h2.store.FileLock.properties:Ljava/util/Properties;
2: aload 0
getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
ldc "method"
aload 0
getfield org.h2.store.FileLock.method:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
3: aload 0
invokevirtual org.h2.store.FileLock.setUniqueId:()V
4: aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.getParent:(Ljava/lang/String;)Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.createDirectories:(Ljava/lang/String;)V
5: aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.createFile:(Ljava/lang/String;)Z
ifne 17
6: aload 0
invokevirtual org.h2.store.FileLock.waitUntilOld:()V
7: aload 0
invokevirtual org.h2.store.FileLock.load:()Ljava/util/Properties;
ldc "method"
ldc "file"
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 8: aload 1
ldc "file"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
9: new java.lang.StringBuilder
dup
ldc "Unsupported lock method "
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;
aconst_null
invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
athrow
10: StackMap locals: java.lang.String
StackMap stack:
aload 0
invokevirtual org.h2.store.FileLock.save:()Ljava/util/Properties;
pop
11: iconst_2
aload 0
getfield org.h2.store.FileLock.sleep:I
imul
invokestatic org.h2.store.FileLock.sleep:(I)V
12: aload 0
invokevirtual org.h2.store.FileLock.load:()Ljava/util/Properties;
aload 0
getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
invokevirtual java.util.Properties.equals:(Ljava/lang/Object;)Z
ifne 14
13: aload 0
new java.lang.StringBuilder
dup
ldc "Locked by another process: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.h2.store.FileLock.getExceptionAlreadyInUse:(Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
14: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.delete:(Ljava/lang/String;)V
15: aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.createFile:(Ljava/lang/String;)Z
ifne 17
16: ldc "Another process was faster"
aconst_null
invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
athrow
end local 1 17: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.store.FileLock.save:()Ljava/util/Properties;
pop
18: bipush 25
invokestatic org.h2.store.FileLock.sleep:(I)V
19: aload 0
invokevirtual org.h2.store.FileLock.load:()Ljava/util/Properties;
aload 0
getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
invokevirtual java.util.Properties.equals:(Ljava/lang/Object;)Z
ifne 22
20: aload 0
aconst_null
putfield org.h2.store.FileLock.fileName:Ljava/lang/String;
21: ldc "Concurrent update"
aconst_null
invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
athrow
22: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.h2.store.FileLock.locked:Z
23: aload 0
new java.lang.Thread
dup
aload 0
new java.lang.StringBuilder
dup
ldc "H2 File Lock Watchdog "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;Ljava/lang/String;)V
putfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
24: aload 0
getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
invokestatic org.h2.Driver.setThreadContextClassLoader:(Ljava/lang/Thread;)V
25: aload 0
getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
iconst_1
invokevirtual java.lang.Thread.setDaemon:(Z)V
26: aload 0
getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
bipush 9
invokevirtual java.lang.Thread.setPriority:(I)V
27: aload 0
getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
invokevirtual java.lang.Thread.start:()V
28: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/h2/store/FileLock;
8 17 1 m2 Ljava/lang/String;
private void lockSocket();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=12, args_size=1
start local 0 0: aload 0
ldc "socket"
putfield org.h2.store.FileLock.method:Ljava/lang/String;
1: aload 0
new org.h2.util.SortedProperties
dup
invokespecial org.h2.util.SortedProperties.<init>:()V
putfield org.h2.store.FileLock.properties:Ljava/util/Properties;
2: aload 0
getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
ldc "method"
aload 0
getfield org.h2.store.FileLock.method:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
3: aload 0
invokevirtual org.h2.store.FileLock.setUniqueId:()V
4: invokestatic org.h2.util.NetUtils.getLocalAddress:()Ljava/lang/String;
astore 1
start local 1 5: aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.getParent:(Ljava/lang/String;)Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.createDirectories:(Ljava/lang/String;)V
6: aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.createFile:(Ljava/lang/String;)Z
ifne 44
7: aload 0
invokevirtual org.h2.store.FileLock.waitUntilOld:()V
8: aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.lastModified:(Ljava/lang/String;)J
lstore 2
start local 2 9: aload 0
invokevirtual org.h2.store.FileLock.load:()Ljava/util/Properties;
astore 4
start local 4 10: aload 4
ldc "method"
ldc "socket"
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 5
start local 5 11: aload 5
ldc "file"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 14
12: aload 0
invokevirtual org.h2.store.FileLock.lockFile:()V
13: return
14: StackMap locals: org.h2.store.FileLock java.lang.String long java.util.Properties java.lang.String
StackMap stack:
aload 5
ldc "socket"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 16
15: new java.lang.StringBuilder
dup
ldc "Unsupported lock method "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aconst_null
invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
athrow
16: StackMap locals:
StackMap stack:
aload 4
ldc "ipAddress"
aload 1
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 6
start local 6 17: aload 1
aload 6
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 19
18: aload 0
new java.lang.StringBuilder
dup
ldc "Locked by another computer: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.h2.store.FileLock.getExceptionAlreadyInUse:(Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
19: StackMap locals: java.lang.String
StackMap stack:
aload 4
ldc "port"
ldc "0"
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 7
start local 7 20: aload 7
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 8
start local 8 21: aload 6
invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
astore 9
start local 9 22: goto 25
end local 9 StackMap locals: org.h2.store.FileLock java.lang.String long java.util.Properties java.lang.String java.lang.String java.lang.String int
StackMap stack: java.net.UnknownHostException
23: astore 10
start local 10 24: new java.lang.StringBuilder
dup
ldc "Unknown host "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 10
invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
athrow
end local 10 start local 9 25: StackMap locals: java.net.InetAddress
StackMap stack:
iconst_0
istore 10
start local 10 26: goto 38
27: StackMap locals: int
StackMap stack:
new java.net.Socket
dup
aload 9
iload 8
invokespecial java.net.Socket.<init>:(Ljava/net/InetAddress;I)V
astore 11
start local 11 28: aload 11
invokevirtual java.net.Socket.close:()V
29: aload 0
ldc "Locked by another process"
invokevirtual org.h2.store.FileLock.getExceptionAlreadyInUse:(Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 11 30: StackMap locals:
StackMap stack: java.net.BindException
pop
31: ldc "Bind Exception"
aconst_null
invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
athrow
32: StackMap locals:
StackMap stack: java.net.ConnectException
astore 11
start local 11 33: aload 0
getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
aload 11
new java.lang.StringBuilder
dup
ldc "socket not connected to port "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.h2.message.Trace.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
end local 11 34: goto 37
35: StackMap locals:
StackMap stack: java.io.IOException
pop
36: ldc "IOException"
aconst_null
invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
athrow
37: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
38: iload 10
iconst_3
if_icmplt 27
end local 10 39: lload 2
aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.lastModified:(Ljava/lang/String;)J
lcmp
ifeq 41
40: ldc "Concurrent update"
aconst_null
invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
athrow
41: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.delete:(Ljava/lang/String;)V
42: aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.createFile:(Ljava/lang/String;)Z
ifne 44
43: ldc "Another process was faster"
aconst_null
invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
athrow
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 2 44: StackMap locals: org.h2.store.FileLock java.lang.String
StackMap stack:
aload 0
iconst_0
iconst_0
invokestatic org.h2.util.NetUtils.createServerSocket:(IZ)Ljava/net/ServerSocket;
putfield org.h2.store.FileLock.serverSocket:Ljava/net/ServerSocket;
45: aload 0
getfield org.h2.store.FileLock.serverSocket:Ljava/net/ServerSocket;
invokevirtual java.net.ServerSocket.getLocalPort:()I
istore 2
start local 2 46: aload 0
getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
ldc "ipAddress"
aload 1
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
47: aload 0
getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
ldc "port"
iload 2
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
end local 2 48: goto 54
StackMap locals:
StackMap stack: java.lang.Exception
49: astore 2
start local 2 50: aload 0
getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
aload 2
ldc "lock"
invokevirtual org.h2.message.Trace.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
51: aload 0
aconst_null
putfield org.h2.store.FileLock.serverSocket:Ljava/net/ServerSocket;
52: aload 0
invokevirtual org.h2.store.FileLock.lockFile:()V
53: return
end local 2 54: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.store.FileLock.save:()Ljava/util/Properties;
pop
55: aload 0
iconst_1
putfield org.h2.store.FileLock.locked:Z
56: aload 0
new java.lang.Thread
dup
aload 0
57: new java.lang.StringBuilder
dup
ldc "H2 File Lock Watchdog (Socket) "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;Ljava/lang/String;)V
58: putfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
59: aload 0
getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
iconst_1
invokevirtual java.lang.Thread.setDaemon:(Z)V
60: aload 0
getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
invokevirtual java.lang.Thread.start:()V
61: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 62 0 this Lorg/h2/store/FileLock;
5 62 1 ipAddress Ljava/lang/String;
9 44 2 read J
10 44 4 p2 Ljava/util/Properties;
11 44 5 m2 Ljava/lang/String;
17 44 6 ip Ljava/lang/String;
20 44 7 port Ljava/lang/String;
21 44 8 portId I
22 23 9 address Ljava/net/InetAddress;
25 44 9 address Ljava/net/InetAddress;
24 25 10 e Ljava/net/UnknownHostException;
26 39 10 i I
28 30 11 s Ljava/net/Socket;
33 34 11 e Ljava/net/ConnectException;
46 48 2 port I
50 54 2 e Ljava/lang/Exception;
Exception table:
from to target type
21 22 23 Class java.net.UnknownHostException
27 30 30 Class java.net.BindException
27 30 32 Class java.net.ConnectException
27 30 35 Class java.io.IOException
44 48 49 Class java.lang.Exception
private static void sleep(int);
descriptor: (I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: iload 0
i2l
invokestatic java.lang.Thread.sleep:(J)V
1: goto 4
StackMap locals:
StackMap stack: java.lang.InterruptedException
2: astore 1
start local 1 3: ldc "Sleep interrupted"
aload 1
invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
athrow
end local 1 4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 time I
3 4 1 e Ljava/lang/InterruptedException;
Exception table:
from to target type
0 1 2 Class java.lang.InterruptedException
MethodParameters:
Name Flags
time
private static org.h2.message.DbException getExceptionFatal(java.lang.String, java.lang.Throwable);
descriptor: (Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: sipush 8000
aload 1
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 0
aastore
1: invokestatic org.h2.message.DbException.get:(ILjava/lang/Throwable;[Ljava/lang/String;)Lorg/h2/message/DbException;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 reason Ljava/lang/String;
0 2 1 t Ljava/lang/Throwable;
MethodParameters:
Name Flags
reason
t
private org.h2.message.DbException getExceptionAlreadyInUse(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/h2/message/DbException;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: ldc 90020
aload 1
1: invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
astore 2
start local 2 2: aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
ifnull 10
3: aload 0
invokevirtual org.h2.store.FileLock.load:()Ljava/util/Properties;
astore 3
start local 3 4: aload 3
ldc "server"
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 5: aload 4
ifnull 10
6: new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)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 3
ldc "id"
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
start local 5 7: aload 2
aload 5
invokevirtual org.h2.message.DbException.addSQL:(Ljava/lang/String;)Lorg/h2/message/DbException;
astore 2
end local 5 end local 4 end local 3 8: goto 10
StackMap locals: org.h2.store.FileLock java.lang.String org.h2.message.DbException
StackMap stack: org.h2.message.DbException
9: pop
10: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/h2/store/FileLock;
0 11 1 reason Ljava/lang/String;
2 11 2 e Lorg/h2/message/DbException;
4 8 3 prop Ljava/util/Properties;
5 8 4 server Ljava/lang/String;
7 8 5 serverId Ljava/lang/String;
Exception table:
from to target type
3 8 9 Class org.h2.message.DbException
MethodParameters:
Name Flags
reason
public static org.h2.store.FileLockMethod getFileLockMethod(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/h2/store/FileLockMethod;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ifnull 1
aload 0
ldc "FILE"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 2
1: StackMap locals:
StackMap stack:
getstatic org.h2.store.FileLockMethod.FILE:Lorg/h2/store/FileLockMethod;
areturn
2: StackMap locals:
StackMap stack:
aload 0
ldc "NO"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 4
3: getstatic org.h2.store.FileLockMethod.NO:Lorg/h2/store/FileLockMethod;
areturn
4: StackMap locals:
StackMap stack:
aload 0
ldc "SOCKET"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 6
5: getstatic org.h2.store.FileLockMethod.SOCKET:Lorg/h2/store/FileLockMethod;
areturn
6: StackMap locals:
StackMap stack:
aload 0
ldc "SERIALIZED"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 8
7: getstatic org.h2.store.FileLockMethod.SERIALIZED:Lorg/h2/store/FileLockMethod;
areturn
8: StackMap locals:
StackMap stack:
aload 0
ldc "FS"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 10
9: getstatic org.h2.store.FileLockMethod.FS:Lorg/h2/store/FileLockMethod;
areturn
10: StackMap locals:
StackMap stack:
ldc 90060
aload 0
11: invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 method Ljava/lang/String;
MethodParameters:
Name Flags
method
public java.lang.String getUniqueId();
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.store.FileLock.uniqueId:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/store/FileLock;
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: goto 9
1: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.exists:(Ljava/lang/String;)Z
ifeq 3
2: aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
invokestatic org.h2.store.fs.FileUtils.lastModified:(Ljava/lang/String;)J
aload 0
getfield org.h2.store.FileLock.lastWrite:J
lcmp
ifeq 4
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.store.FileLock.save:()Ljava/util/Properties;
pop
4: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.FileLock.sleep:I
i2l
invokestatic java.lang.Thread.sleep:(J)V
5: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
6: pop
goto 9
7: StackMap locals:
StackMap stack: java.lang.Exception
astore 1
start local 1 8: aload 0
getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
aload 1
ldc "watchdog"
invokevirtual org.h2.message.Trace.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
end local 1 9: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.FileLock.locked:Z
ifeq 10
aload 0
getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
ifnonnull 1
10: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.FileLock.serverSocket:Ljava/net/ServerSocket;
astore 1
start local 1 11: aload 1
ifnonnull 13
12: goto 22
13: StackMap locals: java.net.ServerSocket
StackMap stack:
aload 0
getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
ldc "watchdog accept"
invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
14: aload 1
invokevirtual java.net.ServerSocket.accept:()Ljava/net/Socket;
astore 2
start local 2 15: aload 2
invokevirtual java.net.Socket.close:()V
end local 2 16: goto 10
StackMap locals:
StackMap stack: java.lang.Exception
17: astore 2
start local 2 18: aload 0
getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
aload 2
ldc "watchdog"
invokevirtual org.h2.message.Trace.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
end local 2 end local 1 19: goto 10
20: StackMap locals: org.h2.store.FileLock
StackMap stack: java.lang.Exception
astore 1
start local 1 21: aload 0
getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
aload 1
ldc "watchdog"
invokevirtual org.h2.message.Trace.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
end local 1 22: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
ldc "watchdog end"
invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
23: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/h2/store/FileLock;
8 9 1 e Ljava/lang/Exception;
11 19 1 local Ljava/net/ServerSocket;
15 16 2 s Ljava/net/Socket;
18 19 2 e Ljava/lang/Exception;
21 22 1 e Ljava/lang/Exception;
Exception table:
from to target type
1 5 6 Class java.lang.OutOfMemoryError
1 5 6 Class java.lang.NullPointerException
1 5 6 Class java.lang.InterruptedException
1 5 7 Class java.lang.Exception
13 16 17 Class java.lang.Exception
0 20 20 Class java.lang.Exception
static int[] $SWITCH_TABLE$org$h2$store$FileLockMethod();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.h2.store.FileLock.$SWITCH_TABLE$org$h2$store$FileLockMethod:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic org.h2.store.FileLockMethod.values:()[Lorg/h2/store/FileLockMethod;
arraylength
newarray 10
astore 0
2: aload 0
getstatic org.h2.store.FileLockMethod.FILE:Lorg/h2/store/FileLockMethod;
invokevirtual org.h2.store.FileLockMethod.ordinal:()I
iconst_2
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic org.h2.store.FileLockMethod.FS:Lorg/h2/store/FileLockMethod;
invokevirtual org.h2.store.FileLockMethod.ordinal:()I
iconst_5
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic org.h2.store.FileLockMethod.NO:Lorg/h2/store/FileLockMethod;
invokevirtual org.h2.store.FileLockMethod.ordinal:()I
iconst_1
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic org.h2.store.FileLockMethod.SERIALIZED:Lorg/h2/store/FileLockMethod;
invokevirtual org.h2.store.FileLockMethod.ordinal:()I
iconst_4
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic org.h2.store.FileLockMethod.SOCKET:Lorg/h2/store/FileLockMethod;
invokevirtual org.h2.store.FileLockMethod.ordinal:()I
iconst_3
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
dup
putstatic org.h2.store.FileLock.$SWITCH_TABLE$org$h2$store$FileLockMethod:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
}
SourceFile: "FileLock.java"