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 // org.h2.store.FileLock this
        start local 1 // org.h2.message.TraceSystem traceSystem
        start local 2 // java.lang.String fileName
        start local 3 // int sleep
         0: .line 88
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 89
            aload 0 /* this */
            aload 1 /* traceSystem */
            ifnonnull 3
         2: .line 90
            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 /* traceSystem */
            iconst_4
            invokevirtual org.h2.message.TraceSystem.getTrace:(I)Lorg/h2/message/Trace;
         4: .line 89
      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: .line 91
            aload 0 /* this */
            aload 2 /* fileName */
            putfield org.h2.store.FileLock.fileName:Ljava/lang/String;
         6: .line 92
            aload 0 /* this */
            iload 3 /* sleep */
            putfield org.h2.store.FileLock.sleep:I
         7: .line 93
            return
        end local 3 // int sleep
        end local 2 // java.lang.String fileName
        end local 1 // org.h2.message.TraceSystem traceSystem
        end local 0 // org.h2.store.FileLock this
      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 // org.h2.store.FileLock this
        start local 1 // org.h2.store.FileLockMethod fileLockMethod
         0: .line 102
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.checkServer:()V
         1: .line 103
            aload 0 /* this */
            getfield org.h2.store.FileLock.locked:Z
            ifeq 3
         2: .line 104
            ldc "already locked"
            invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            pop
         3: .line 106
      StackMap locals:
      StackMap stack:
            invokestatic org.h2.store.FileLock.$SWITCH_TABLE$org$h2$store$FileLockMethod:()[I
            aload 1 /* fileLockMethod */
            invokevirtual org.h2.store.FileLockMethod.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 10
                    2: 4
                    3: 6
                    4: 8
                    5: 10
              default: 10
          }
         4: .line 108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.lockFile:()V
         5: .line 109
            goto 10
         6: .line 111
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.lockSocket:()V
         7: .line 112
            goto 10
         8: .line 114
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.lockSerialized:()V
         9: .line 115
            goto 10
        10: .line 120
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.h2.store.FileLock.locked:Z
        11: .line 121
            return
        end local 1 // org.h2.store.FileLockMethod fileLockMethod
        end local 0 // org.h2.store.FileLock this
      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 // org.h2.store.FileLock this
         0: .line 128
            aload 0 /* this */
            getfield org.h2.store.FileLock.locked:Z
            ifne 2
         1: .line 129
            return
         2: .line 131
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.h2.store.FileLock.locked:Z
         3: .line 133
            aload 0 /* this */
            getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
            ifnull 8
         4: .line 134
            aload 0 /* this */
            getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
         5: .line 136
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Exception
         6: astore 1 /* e */
        start local 1 // java.lang.Exception e
         7: .line 137
            aload 0 /* this */
            getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
            aload 1 /* e */
            ldc "unlock"
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
        end local 1 // java.lang.Exception e
         8: .line 140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
            ifnull 11
         9: .line 141
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.load:()Ljava/util/Properties;
            aload 0 /* this */
            getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
            invokevirtual java.util.Properties.equals:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 142
            aload 0 /* this */
            getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
            invokestatic org.h2.store.fs.FileUtils.delete:(Ljava/lang/String;)V
        11: .line 145
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.FileLock.serverSocket:Ljava/net/ServerSocket;
            ifnull 22
        12: .line 146
            aload 0 /* this */
            getfield org.h2.store.FileLock.serverSocket:Ljava/net/ServerSocket;
            invokevirtual java.net.ServerSocket.close:()V
        13: .line 148
            goto 22
      StackMap locals:
      StackMap stack: java.lang.Exception
        14: astore 1 /* e */
        start local 1 // java.lang.Exception e
        15: .line 149
            aload 0 /* this */
            getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
            aload 1 /* e */
            ldc "unlock"
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
        end local 1 // java.lang.Exception e
        16: .line 151
            aload 0 /* this */
            aconst_null
            putfield org.h2.store.FileLock.fileName:Ljava/lang/String;
        17: .line 152
            aload 0 /* this */
            aconst_null
            putfield org.h2.store.FileLock.serverSocket:Ljava/net/ServerSocket;
            goto 24
        18: .line 150
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
        19: .line 151
            aload 0 /* this */
            aconst_null
            putfield org.h2.store.FileLock.fileName:Ljava/lang/String;
        20: .line 152
            aload 0 /* this */
            aconst_null
            putfield org.h2.store.FileLock.serverSocket:Ljava/net/ServerSocket;
        21: .line 153
            aload 2
            athrow
        22: .line 151
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.h2.store.FileLock.fileName:Ljava/lang/String;
        23: .line 152
            aload 0 /* this */
            aconst_null
            putfield org.h2.store.FileLock.serverSocket:Ljava/net/ServerSocket;
        24: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
            ifnull 33
        25: .line 156
            aload 0 /* this */
            getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.join:()V
        26: .line 158
            goto 33
      StackMap locals:
      StackMap stack: java.lang.Exception
        27: astore 1 /* e */
        start local 1 // java.lang.Exception e
        28: .line 159
            aload 0 /* this */
            getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
            aload 1 /* e */
            ldc "unlock"
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
        end local 1 // java.lang.Exception e
        29: .line 161
            aload 0 /* this */
            aconst_null
            putfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
            goto 34
        30: .line 160
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
        31: .line 161
            aload 0 /* this */
            aconst_null
            putfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
        32: .line 162
            aload 2
            athrow
        33: .line 161
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
        34: .line 163
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.store.FileLock this
      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 // org.h2.store.FileLock this
        start local 1 // java.lang.String key
        start local 2 // java.lang.String value
         0: .line 173
            aload 2 /* value */
            ifnonnull 3
         1: .line 174
            aload 0 /* this */
            getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
            aload 1 /* key */
            invokevirtual java.util.Properties.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 175
            goto 4
         3: .line 176
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
            aload 1 /* key */
            aload 2 /* value */
            invokevirtual java.util.Properties.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 178
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String value
        end local 1 // java.lang.String key
        end local 0 // org.h2.store.FileLock this
      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 // org.h2.store.FileLock this
         0: .line 187
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: aload 0 /* this */
            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 /* out */
        start local 3 // java.io.OutputStream out
         2: .line 188
            aload 0 /* this */
            getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
            aload 3 /* out */
            ldc "FileLock"
            invokevirtual java.util.Properties.store:(Ljava/io/OutputStream;Ljava/lang/String;)V
         3: .line 189
            aload 3 /* out */
            ifnull 9
            aload 3 /* out */
            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 /* out */
            ifnull 5
            aload 3 /* out */
            invokevirtual java.io.OutputStream.close:()V
        end local 3 // java.io.OutputStream out
      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: .line 190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            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: .line 191
            aload 0 /* this */
            getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 12
        11: .line 192
            aload 0 /* this */
            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 /* this */
            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: .line 194
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
        13: areturn
        14: .line 195
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
        15: .line 196
            new java.lang.StringBuilder
            dup
            ldc "Could not save properties "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            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 /* e */
            invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
            athrow
        end local 1 // java.io.IOException e
        end local 0 // org.h2.store.FileLock this
      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 // org.h2.store.FileLock this
         0: .line 201
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.load:()Ljava/util/Properties;
            astore 1 /* prop */
        start local 1 // java.util.Properties prop
         1: .line 202
            aload 1 /* prop */
            ldc "server"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* server */
        start local 2 // java.lang.String server
         2: .line 203
            aload 2 /* server */
            ifnonnull 4
         3: .line 204
            return
         4: .line 206
      StackMap locals: java.util.Properties java.lang.String
      StackMap stack:
            iconst_0
            istore 3 /* running */
        start local 3 // boolean running
         5: .line 207
            aload 1 /* prop */
            ldc "id"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* id */
        start local 4 // java.lang.String id
         6: .line 209
            aload 2 /* server */
         7: .line 210
            sipush 9092
            iconst_0
         8: .line 209
            invokestatic org.h2.util.NetUtils.createSocket:(Ljava/lang/String;IZ)Ljava/net/Socket;
            astore 5 /* socket */
        start local 5 // java.net.Socket socket
         9: .line 211
            new org.h2.value.Transfer
            dup
            aconst_null
            aload 5 /* socket */
            invokespecial org.h2.value.Transfer.<init>:(Lorg/h2/engine/SessionInterface;Ljava/net/Socket;)V
            astore 6 /* transfer */
        start local 6 // org.h2.value.Transfer transfer
        10: .line 212
            aload 6 /* transfer */
            invokevirtual org.h2.value.Transfer.init:()V
        11: .line 213
            aload 6 /* transfer */
            bipush 9
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            pop
        12: .line 214
            aload 6 /* transfer */
            bipush 18
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            pop
        13: .line 215
            aload 6 /* transfer */
            aconst_null
            invokevirtual org.h2.value.Transfer.writeString:(Ljava/lang/String;)Lorg/h2/value/Transfer;
            pop
        14: .line 216
            aload 6 /* transfer */
            aconst_null
            invokevirtual org.h2.value.Transfer.writeString:(Ljava/lang/String;)Lorg/h2/value/Transfer;
            pop
        15: .line 217
            aload 6 /* transfer */
            aload 4 /* id */
            invokevirtual org.h2.value.Transfer.writeString:(Ljava/lang/String;)Lorg/h2/value/Transfer;
            pop
        16: .line 218
            aload 6 /* transfer */
            bipush 14
            invokevirtual org.h2.value.Transfer.writeInt:(I)Lorg/h2/value/Transfer;
            pop
        17: .line 219
            aload 6 /* transfer */
            invokevirtual org.h2.value.Transfer.flush:()V
        18: .line 220
            aload 6 /* transfer */
            invokevirtual org.h2.value.Transfer.readInt:()I
            istore 7 /* state */
        start local 7 // int state
        19: .line 221
            iload 7 /* state */
            iconst_1
            if_icmpne 21
        20: .line 222
            iconst_1
            istore 3 /* running */
        21: .line 224
      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 /* transfer */
            invokevirtual org.h2.value.Transfer.close:()V
        22: .line 225
            aload 5 /* socket */
            invokevirtual java.net.Socket.close:()V
        end local 7 // int state
        end local 6 // org.h2.value.Transfer transfer
        end local 5 // java.net.Socket socket
        23: .line 226
            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: .line 227
            return
        26: .line 229
      StackMap locals:
      StackMap stack:
            iload 3 /* running */
            ifeq 30
        27: .line 231
            ldc 90020
            ldc "Server is running"
        28: .line 230
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            astore 5 /* e */
        start local 5 // org.h2.message.DbException e
        29: .line 232
            aload 5 /* e */
            new java.lang.StringBuilder
            dup
            aload 2 /* server */
            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 /* id */
            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 // org.h2.message.DbException e
        30: .line 234
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String id
        end local 3 // boolean running
        end local 2 // java.lang.String server
        end local 1 // java.util.Properties prop
        end local 0 // org.h2.store.FileLock this
      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 // org.h2.store.FileLock this
         0: .line 242
            aconst_null
            astore 1 /* lastException */
        start local 1 // java.io.IOException lastException
         1: .line 243
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 11
         3: .line 245
      StackMap locals: java.io.IOException int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
            invokestatic org.h2.util.SortedProperties.loadProperties:(Ljava/lang/String;)Lorg/h2/util/SortedProperties;
            astore 3 /* p2 */
        start local 3 // java.util.Properties p2
         4: .line 246
            aload 0 /* this */
            getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
            invokevirtual org.h2.message.Trace.isDebugEnabled:()Z
            ifeq 6
         5: .line 247
            aload 0 /* this */
            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 /* p2 */
            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: .line 249
      StackMap locals: java.util.Properties
      StackMap stack:
            aload 3 /* p2 */
         7: areturn
        end local 3 // java.util.Properties p2
         8: .line 250
      StackMap locals: org.h2.store.FileLock java.io.IOException int
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
         9: .line 251
            aload 3 /* e */
            astore 1 /* lastException */
        end local 3 // java.io.IOException e
        10: .line 243
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 2 /* i */
            iconst_5
            if_icmplt 3
        end local 2 // int i
        12: .line 255
            new java.lang.StringBuilder
            dup
            ldc "Could not load properties "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            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 /* lastException */
        13: .line 254
            invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
            athrow
        end local 1 // java.io.IOException lastException
        end local 0 // org.h2.store.FileLock this
      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 // org.h2.store.FileLock this
         0: .line 259
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 17
         2: .line 260
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
            invokestatic org.h2.store.fs.FileUtils.lastModified:(Ljava/lang/String;)J
            lstore 2 /* last */
        start local 2 // long last
         3: .line 261
            invokestatic java.lang.System.currentTimeMillis:()J
            lload 2 /* last */
            lsub
            lstore 4 /* dist */
        start local 4 // long dist
         4: .line 262
            lload 4 /* dist */
            ldc -2000
            lcmp
            ifge 10
         5: .line 266
            ldc 2
            aload 0 /* this */
            getfield org.h2.store.FileLock.sleep:I
            i2l
            lmul
            invokestatic java.lang.Thread.sleep:(J)V
         6: .line 267
            goto 9
      StackMap locals: org.h2.store.FileLock int long long
      StackMap stack: java.lang.Exception
         7: astore 6 /* e */
        start local 6 // java.lang.Exception e
         8: .line 268
            aload 0 /* this */
            getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
            aload 6 /* e */
            ldc "sleep"
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
        end local 6 // java.lang.Exception e
         9: .line 270
      StackMap locals:
      StackMap stack:
            return
        10: .line 271
      StackMap locals:
      StackMap stack:
            lload 4 /* dist */
            ldc 2000
            lcmp
            ifle 12
        11: .line 272
            return
        12: .line 275
      StackMap locals:
      StackMap stack:
            ldc 25
            invokestatic java.lang.Thread.sleep:(J)V
        13: .line 276
            goto 16
      StackMap locals:
      StackMap stack: java.lang.Exception
        14: astore 6 /* e */
        start local 6 // java.lang.Exception e
        15: .line 277
            aload 0 /* this */
            getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
            aload 6 /* e */
            ldc "sleep"
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
        end local 6 // java.lang.Exception e
        end local 4 // long dist
        end local 2 // long last
        16: .line 259
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 1 /* i */
            sipush 160
            if_icmplt 2
        end local 1 // int i
        18: .line 280
            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 // org.h2.store.FileLock this
      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 // org.h2.store.FileLock this
         0: .line 284
            bipush 16
            invokestatic org.h2.util.MathUtils.secureRandomBytes:(I)[B
            astore 1 /* bytes */
        start local 1 // byte[] bytes
         1: .line 285
            aload 1 /* bytes */
            invokestatic org.h2.util.StringUtils.convertBytesToHex:([B)Ljava/lang/String;
            astore 2 /* random */
        start local 2 // java.lang.String random
         2: .line 286
            aload 0 /* this */
            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 /* random */
            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: .line 287
            aload 0 /* this */
            getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
            ldc "id"
            aload 0 /* this */
            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: .line 288
            return
        end local 2 // java.lang.String random
        end local 1 // byte[] bytes
        end local 0 // org.h2.store.FileLock this
      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 // org.h2.store.FileLock this
         0: .line 291
            aload 0 /* this */
            ldc "serialized"
            putfield org.h2.store.FileLock.method:Ljava/lang/String;
         1: .line 292
            aload 0 /* this */
            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: .line 293
            aload 0 /* this */
            getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
            invokestatic org.h2.store.fs.FileUtils.createFile:(Ljava/lang/String;)Z
            ifeq 8
         3: .line 294
            aload 0 /* this */
            new org.h2.util.SortedProperties
            dup
            invokespecial org.h2.util.SortedProperties.<init>:()V
            putfield org.h2.store.FileLock.properties:Ljava/util/Properties;
         4: .line 295
            aload 0 /* this */
            getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
            ldc "method"
            aload 0 /* this */
            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: .line 296
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.setUniqueId:()V
         6: .line 297
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.save:()Ljava/util/Properties;
            pop
         7: .line 298
            goto 12
         8: .line 301
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.load:()Ljava/util/Properties;
            putfield org.h2.store.FileLock.properties:Ljava/util/Properties;
         9: .line 302
            goto 11
      StackMap locals:
      StackMap stack: org.h2.message.DbException
        10: pop
        11: .line 305
      StackMap locals:
      StackMap stack:
            return
        12: .line 308
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.store.FileLock this
      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 // org.h2.store.FileLock this
         0: .line 311
            aload 0 /* this */
            ldc "file"
            putfield org.h2.store.FileLock.method:Ljava/lang/String;
         1: .line 312
            aload 0 /* this */
            new org.h2.util.SortedProperties
            dup
            invokespecial org.h2.util.SortedProperties.<init>:()V
            putfield org.h2.store.FileLock.properties:Ljava/util/Properties;
         2: .line 313
            aload 0 /* this */
            getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
            ldc "method"
            aload 0 /* this */
            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: .line 314
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.setUniqueId:()V
         4: .line 315
            aload 0 /* this */
            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: .line 316
            aload 0 /* this */
            getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
            invokestatic org.h2.store.fs.FileUtils.createFile:(Ljava/lang/String;)Z
            ifne 17
         6: .line 317
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.waitUntilOld:()V
         7: .line 318
            aload 0 /* this */
            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 /* m2 */
        start local 1 // java.lang.String m2
         8: .line 319
            aload 1 /* m2 */
            ldc "file"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         9: .line 320
            new java.lang.StringBuilder
            dup
            ldc "Unsupported lock method "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* m2 */
            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: .line 322
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.save:()Ljava/util/Properties;
            pop
        11: .line 323
            iconst_2
            aload 0 /* this */
            getfield org.h2.store.FileLock.sleep:I
            imul
            invokestatic org.h2.store.FileLock.sleep:(I)V
        12: .line 324
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.load:()Ljava/util/Properties;
            aload 0 /* this */
            getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
            invokevirtual java.util.Properties.equals:(Ljava/lang/Object;)Z
            ifne 14
        13: .line 325
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Locked by another process: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            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: .line 327
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
            invokestatic org.h2.store.fs.FileUtils.delete:(Ljava/lang/String;)V
        15: .line 328
            aload 0 /* this */
            getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
            invokestatic org.h2.store.fs.FileUtils.createFile:(Ljava/lang/String;)Z
            ifne 17
        16: .line 329
            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 // java.lang.String m2
        17: .line 332
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.save:()Ljava/util/Properties;
            pop
        18: .line 333
            bipush 25
            invokestatic org.h2.store.FileLock.sleep:(I)V
        19: .line 334
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.load:()Ljava/util/Properties;
            aload 0 /* this */
            getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
            invokevirtual java.util.Properties.equals:(Ljava/lang/Object;)Z
            ifne 22
        20: .line 335
            aload 0 /* this */
            aconst_null
            putfield org.h2.store.FileLock.fileName:Ljava/lang/String;
        21: .line 336
            ldc "Concurrent update"
            aconst_null
            invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
            athrow
        22: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.h2.store.FileLock.locked:Z
        23: .line 339
            aload 0 /* this */
            new java.lang.Thread
            dup
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "H2 File Lock Watchdog "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            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: .line 340
            aload 0 /* this */
            getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
            invokestatic org.h2.Driver.setThreadContextClassLoader:(Ljava/lang/Thread;)V
        25: .line 341
            aload 0 /* this */
            getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
            iconst_1
            invokevirtual java.lang.Thread.setDaemon:(Z)V
        26: .line 342
            aload 0 /* this */
            getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
            bipush 9
            invokevirtual java.lang.Thread.setPriority:(I)V
        27: .line 343
            aload 0 /* this */
            getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.start:()V
        28: .line 344
            return
        end local 0 // org.h2.store.FileLock this
      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 // org.h2.store.FileLock this
         0: .line 347
            aload 0 /* this */
            ldc "socket"
            putfield org.h2.store.FileLock.method:Ljava/lang/String;
         1: .line 348
            aload 0 /* this */
            new org.h2.util.SortedProperties
            dup
            invokespecial org.h2.util.SortedProperties.<init>:()V
            putfield org.h2.store.FileLock.properties:Ljava/util/Properties;
         2: .line 349
            aload 0 /* this */
            getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
            ldc "method"
            aload 0 /* this */
            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: .line 350
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.setUniqueId:()V
         4: .line 353
            invokestatic org.h2.util.NetUtils.getLocalAddress:()Ljava/lang/String;
            astore 1 /* ipAddress */
        start local 1 // java.lang.String ipAddress
         5: .line 354
            aload 0 /* this */
            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: .line 355
            aload 0 /* this */
            getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
            invokestatic org.h2.store.fs.FileUtils.createFile:(Ljava/lang/String;)Z
            ifne 44
         7: .line 356
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.waitUntilOld:()V
         8: .line 357
            aload 0 /* this */
            getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
            invokestatic org.h2.store.fs.FileUtils.lastModified:(Ljava/lang/String;)J
            lstore 2 /* read */
        start local 2 // long read
         9: .line 358
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.load:()Ljava/util/Properties;
            astore 4 /* p2 */
        start local 4 // java.util.Properties p2
        10: .line 359
            aload 4 /* p2 */
            ldc "method"
            ldc "socket"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* m2 */
        start local 5 // java.lang.String m2
        11: .line 360
            aload 5 /* m2 */
            ldc "file"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 361
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.lockFile:()V
        13: .line 362
            return
        14: .line 363
      StackMap locals: org.h2.store.FileLock java.lang.String long java.util.Properties java.lang.String
      StackMap stack:
            aload 5 /* m2 */
            ldc "socket"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 16
        15: .line 364
            new java.lang.StringBuilder
            dup
            ldc "Unsupported lock method "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* m2 */
            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: .line 366
      StackMap locals:
      StackMap stack:
            aload 4 /* p2 */
            ldc "ipAddress"
            aload 1 /* ipAddress */
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* ip */
        start local 6 // java.lang.String ip
        17: .line 367
            aload 1 /* ipAddress */
            aload 6 /* ip */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 19
        18: .line 368
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Locked by another computer: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* ip */
            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: .line 370
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* p2 */
            ldc "port"
            ldc "0"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* port */
        start local 7 // java.lang.String port
        20: .line 371
            aload 7 /* port */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 8 /* portId */
        start local 8 // int portId
        21: .line 374
            aload 6 /* ip */
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            astore 9 /* address */
        start local 9 // java.net.InetAddress address
        22: .line 375
            goto 25
        end local 9 // java.net.InetAddress address
      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 /* e */
        start local 10 // java.net.UnknownHostException e
        24: .line 376
            new java.lang.StringBuilder
            dup
            ldc "Unknown host "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* ip */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 10 /* e */
            invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
            athrow
        end local 10 // java.net.UnknownHostException e
        start local 9 // java.net.InetAddress address
        25: .line 378
      StackMap locals: java.net.InetAddress
      StackMap stack:
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        26: goto 38
        27: .line 380
      StackMap locals: int
      StackMap stack:
            new java.net.Socket
            dup
            aload 9 /* address */
            iload 8 /* portId */
            invokespecial java.net.Socket.<init>:(Ljava/net/InetAddress;I)V
            astore 11 /* s */
        start local 11 // java.net.Socket s
        28: .line 381
            aload 11 /* s */
            invokevirtual java.net.Socket.close:()V
        29: .line 382
            aload 0 /* this */
            ldc "Locked by another process"
            invokevirtual org.h2.store.FileLock.getExceptionAlreadyInUse:(Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 11 // java.net.Socket s
        30: .line 383
      StackMap locals:
      StackMap stack: java.net.BindException
            pop
        31: .line 384
            ldc "Bind Exception"
            aconst_null
            invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
            athrow
        32: .line 385
      StackMap locals:
      StackMap stack: java.net.ConnectException
            astore 11 /* e */
        start local 11 // java.net.ConnectException e
        33: .line 386
            aload 0 /* this */
            getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
            aload 11 /* e */
            new java.lang.StringBuilder
            dup
            ldc "socket not connected to port "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* port */
            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 // java.net.ConnectException e
        34: goto 37
        35: .line 387
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        36: .line 388
            ldc "IOException"
            aconst_null
            invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
            athrow
        37: .line 378
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        38: iload 10 /* i */
            iconst_3
            if_icmplt 27
        end local 10 // int i
        39: .line 391
            lload 2 /* read */
            aload 0 /* this */
            getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
            invokestatic org.h2.store.fs.FileUtils.lastModified:(Ljava/lang/String;)J
            lcmp
            ifeq 41
        40: .line 392
            ldc "Concurrent update"
            aconst_null
            invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
            athrow
        41: .line 394
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
            invokestatic org.h2.store.fs.FileUtils.delete:(Ljava/lang/String;)V
        42: .line 395
            aload 0 /* this */
            getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
            invokestatic org.h2.store.fs.FileUtils.createFile:(Ljava/lang/String;)Z
            ifne 44
        43: .line 396
            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 // java.net.InetAddress address
        end local 8 // int portId
        end local 7 // java.lang.String port
        end local 6 // java.lang.String ip
        end local 5 // java.lang.String m2
        end local 4 // java.util.Properties p2
        end local 2 // long read
        44: .line 401
      StackMap locals: org.h2.store.FileLock java.lang.String
      StackMap stack:
            aload 0 /* this */
            iconst_0
            iconst_0
            invokestatic org.h2.util.NetUtils.createServerSocket:(IZ)Ljava/net/ServerSocket;
            putfield org.h2.store.FileLock.serverSocket:Ljava/net/ServerSocket;
        45: .line 402
            aload 0 /* this */
            getfield org.h2.store.FileLock.serverSocket:Ljava/net/ServerSocket;
            invokevirtual java.net.ServerSocket.getLocalPort:()I
            istore 2 /* port */
        start local 2 // int port
        46: .line 403
            aload 0 /* this */
            getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
            ldc "ipAddress"
            aload 1 /* ipAddress */
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        47: .line 404
            aload 0 /* this */
            getfield org.h2.store.FileLock.properties:Ljava/util/Properties;
            ldc "port"
            iload 2 /* port */
            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 // int port
        48: .line 405
            goto 54
      StackMap locals:
      StackMap stack: java.lang.Exception
        49: astore 2 /* e */
        start local 2 // java.lang.Exception e
        50: .line 406
            aload 0 /* this */
            getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
            aload 2 /* e */
            ldc "lock"
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
        51: .line 407
            aload 0 /* this */
            aconst_null
            putfield org.h2.store.FileLock.serverSocket:Ljava/net/ServerSocket;
        52: .line 408
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.lockFile:()V
        53: .line 409
            return
        end local 2 // java.lang.Exception e
        54: .line 411
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.save:()Ljava/util/Properties;
            pop
        55: .line 412
            aload 0 /* this */
            iconst_1
            putfield org.h2.store.FileLock.locked:Z
        56: .line 413
            aload 0 /* this */
            new java.lang.Thread
            dup
            aload 0 /* this */
        57: .line 414
            new java.lang.StringBuilder
            dup
            ldc "H2 File Lock Watchdog (Socket) "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            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: .line 413
            putfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
        59: .line 415
            aload 0 /* this */
            getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
            iconst_1
            invokevirtual java.lang.Thread.setDaemon:(Z)V
        60: .line 416
            aload 0 /* this */
            getfield org.h2.store.FileLock.watchdog:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.start:()V
        61: .line 417
            return
        end local 1 // java.lang.String ipAddress
        end local 0 // org.h2.store.FileLock this
      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 // int time
         0: .line 421
            iload 0 /* time */
            i2l
            invokestatic java.lang.Thread.sleep:(J)V
         1: .line 422
            goto 4
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         2: astore 1 /* e */
        start local 1 // java.lang.InterruptedException e
         3: .line 423
            ldc "Sleep interrupted"
            aload 1 /* e */
            invokestatic org.h2.store.FileLock.getExceptionFatal:(Ljava/lang/String;Ljava/lang/Throwable;)Lorg/h2/message/DbException;
            athrow
        end local 1 // java.lang.InterruptedException e
         4: .line 425
      StackMap locals:
      StackMap stack:
            return
        end local 0 // int time
      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 // java.lang.String reason
        start local 1 // java.lang.Throwable t
         0: .line 429
            sipush 8000
            aload 1 /* t */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* reason */
            aastore
         1: .line 428
            invokestatic org.h2.message.DbException.get:(ILjava/lang/Throwable;[Ljava/lang/String;)Lorg/h2/message/DbException;
            areturn
        end local 1 // java.lang.Throwable t
        end local 0 // java.lang.String reason
      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 // org.h2.store.FileLock this
        start local 1 // java.lang.String reason
         0: .line 434
            ldc 90020
            aload 1 /* reason */
         1: .line 433
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            astore 2 /* e */
        start local 2 // org.h2.message.DbException e
         2: .line 435
            aload 0 /* this */
            getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
            ifnull 10
         3: .line 437
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.load:()Ljava/util/Properties;
            astore 3 /* prop */
        start local 3 // java.util.Properties prop
         4: .line 438
            aload 3 /* prop */
            ldc "server"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* server */
        start local 4 // java.lang.String server
         5: .line 439
            aload 4 /* server */
            ifnull 10
         6: .line 440
            new java.lang.StringBuilder
            dup
            aload 4 /* server */
            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 /* prop */
            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 /* serverId */
        start local 5 // java.lang.String serverId
         7: .line 441
            aload 2 /* e */
            aload 5 /* serverId */
            invokevirtual org.h2.message.DbException.addSQL:(Ljava/lang/String;)Lorg/h2/message/DbException;
            astore 2 /* e */
        end local 5 // java.lang.String serverId
        end local 4 // java.lang.String server
        end local 3 // java.util.Properties prop
         8: .line 443
            goto 10
      StackMap locals: org.h2.store.FileLock java.lang.String org.h2.message.DbException
      StackMap stack: org.h2.message.DbException
         9: pop
        10: .line 447
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            areturn
        end local 2 // org.h2.message.DbException e
        end local 1 // java.lang.String reason
        end local 0 // org.h2.store.FileLock this
      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 // java.lang.String method
         0: .line 458
            aload 0 /* method */
            ifnull 1
            aload 0 /* method */
            ldc "FILE"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 459
      StackMap locals:
      StackMap stack:
            getstatic org.h2.store.FileLockMethod.FILE:Lorg/h2/store/FileLockMethod;
            areturn
         2: .line 460
      StackMap locals:
      StackMap stack:
            aload 0 /* method */
            ldc "NO"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 461
            getstatic org.h2.store.FileLockMethod.NO:Lorg/h2/store/FileLockMethod;
            areturn
         4: .line 462
      StackMap locals:
      StackMap stack:
            aload 0 /* method */
            ldc "SOCKET"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 6
         5: .line 463
            getstatic org.h2.store.FileLockMethod.SOCKET:Lorg/h2/store/FileLockMethod;
            areturn
         6: .line 464
      StackMap locals:
      StackMap stack:
            aload 0 /* method */
            ldc "SERIALIZED"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 8
         7: .line 465
            getstatic org.h2.store.FileLockMethod.SERIALIZED:Lorg/h2/store/FileLockMethod;
            areturn
         8: .line 466
      StackMap locals:
      StackMap stack:
            aload 0 /* method */
            ldc "FS"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 10
         9: .line 467
            getstatic org.h2.store.FileLockMethod.FS:Lorg/h2/store/FileLockMethod;
            areturn
        10: .line 470
      StackMap locals:
      StackMap stack:
            ldc 90060
            aload 0 /* method */
        11: .line 469
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 0 // java.lang.String method
      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 // org.h2.store.FileLock this
         0: .line 475
            aload 0 /* this */
            getfield org.h2.store.FileLock.uniqueId:Ljava/lang/String;
            areturn
        end local 0 // org.h2.store.FileLock this
      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 // org.h2.store.FileLock this
         0: .line 481
            goto 9
         1: .line 484
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
            invokestatic org.h2.store.fs.FileUtils.exists:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 485
            aload 0 /* this */
            getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
            invokestatic org.h2.store.fs.FileUtils.lastModified:(Ljava/lang/String;)J
            aload 0 /* this */
            getfield org.h2.store.FileLock.lastWrite:J
            lcmp
            ifeq 4
         3: .line 486
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.store.FileLock.save:()Ljava/util/Properties;
            pop
         4: .line 488
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.FileLock.sleep:I
            i2l
            invokestatic java.lang.Thread.sleep:(J)V
         5: .line 489
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: pop
            goto 9
         7: .line 491
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
         8: .line 492
            aload 0 /* this */
            getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
            aload 1 /* e */
            ldc "watchdog"
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
        end local 1 // java.lang.Exception e
         9: .line 481
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.FileLock.locked:Z
            ifeq 10
            aload 0 /* this */
            getfield org.h2.store.FileLock.fileName:Ljava/lang/String;
            ifnonnull 1
        10: .line 497
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.FileLock.serverSocket:Ljava/net/ServerSocket;
            astore 1 /* local */
        start local 1 // java.net.ServerSocket local
        11: .line 498
            aload 1 /* local */
            ifnonnull 13
        12: .line 499
            goto 22
        13: .line 502
      StackMap locals: java.net.ServerSocket
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
            ldc "watchdog accept"
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
        14: .line 503
            aload 1 /* local */
            invokevirtual java.net.ServerSocket.accept:()Ljava/net/Socket;
            astore 2 /* s */
        start local 2 // java.net.Socket s
        15: .line 504
            aload 2 /* s */
            invokevirtual java.net.Socket.close:()V
        end local 2 // java.net.Socket s
        16: .line 505
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Exception
        17: astore 2 /* e */
        start local 2 // java.lang.Exception e
        18: .line 506
            aload 0 /* this */
            getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
            aload 2 /* e */
            ldc "watchdog"
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
        end local 2 // java.lang.Exception e
        end local 1 // java.net.ServerSocket local
        19: .line 495
            goto 10
        20: .line 509
      StackMap locals: org.h2.store.FileLock
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
        21: .line 510
            aload 0 /* this */
            getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
            aload 1 /* e */
            ldc "watchdog"
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/Throwable;Ljava/lang/String;)V
        end local 1 // java.lang.Exception e
        22: .line 512
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.store.FileLock.trace:Lorg/h2/message/Trace;
            ldc "watchdog end"
            invokevirtual org.h2.message.Trace.debug:(Ljava/lang/String;)V
        23: .line 513
            return
        end local 0 // org.h2.store.FileLock this
      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: .line 36
            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"