public class org.h2.store.FileLister
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.store.FileLister
  super_class: java.lang.Object
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.store.FileLister this
         0: .line 24
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 26
            return
        end local 0 // org.h2.store.FileLister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/store/FileLister;

  public static void tryUnlockDatabase(java.util.List<java.lang.String>, java.lang.String);
    descriptor: (Ljava/util/List;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // java.util.List files
        start local 1 // java.lang.String message
         0: .line 38
            aload 0 /* files */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 28
      StackMap locals: java.util.List java.lang.String top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* fileName */
        start local 2 // java.lang.String fileName
         2: .line 39
            aload 2 /* fileName */
            ldc ".lock.db"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 13
         3: .line 40
            new org.h2.store.FileLock
            dup
            new org.h2.message.TraceSystem
            dup
            aconst_null
            invokespecial org.h2.message.TraceSystem.<init>:(Ljava/lang/String;)V
            aload 2 /* fileName */
         4: .line 41
            sipush 1000
         5: .line 40
            invokespecial org.h2.store.FileLock.<init>:(Lorg/h2/message/TraceSystem;Ljava/lang/String;I)V
            astore 4 /* lock */
        start local 4 // org.h2.store.FileLock lock
         6: .line 43
            aload 4 /* lock */
            getstatic org.h2.store.FileLockMethod.FILE:Lorg/h2/store/FileLockMethod;
            invokevirtual org.h2.store.FileLock.lock:(Lorg/h2/store/FileLockMethod;)V
         7: .line 44
            aload 4 /* lock */
            invokevirtual org.h2.store.FileLock.unlock:()V
         8: .line 45
            goto 28
      StackMap locals: java.util.List java.lang.String java.lang.String java.util.Iterator org.h2.store.FileLock
      StackMap stack: org.h2.message.DbException
         9: pop
        10: .line 47
            ldc 90133
        11: .line 48
            aload 1 /* message */
        12: .line 46
            invokestatic org.h2.message.DbException.getJdbcSQLException:(ILjava/lang/String;)Ljava/sql/SQLException;
            athrow
        end local 4 // org.h2.store.FileLock lock
        13: .line 50
      StackMap locals:
      StackMap stack:
            aload 2 /* fileName */
            ldc ".mv.db"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 28
        14: .line 51
            aconst_null
            astore 4
            aconst_null
            astore 5
        15: aload 2 /* fileName */
            invokestatic org.h2.store.fs.FilePath.get:(Ljava/lang/String;)Lorg/h2/store/fs/FilePath;
            ldc "r"
            invokevirtual org.h2.store.fs.FilePath.open:(Ljava/lang/String;)Ljava/nio/channels/FileChannel;
            astore 6 /* f */
        start local 6 // java.nio.channels.FileChannel f
        16: .line 52
            aload 6 /* f */
            lconst_0
            ldc 9223372036854775807
            iconst_1
            invokevirtual java.nio.channels.FileChannel.tryLock:(JJZ)Ljava/nio/channels/FileLock;
            astore 7 /* lock */
        start local 7 // java.nio.channels.FileLock lock
        17: .line 53
            aload 7 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        end local 7 // java.nio.channels.FileLock lock
        18: .line 54
            aload 6 /* f */
            ifnull 28
            aload 6 /* f */
            invokevirtual java.nio.channels.FileChannel.close:()V
            goto 28
      StackMap locals: java.util.List java.lang.String java.lang.String java.util.Iterator java.lang.Throwable java.lang.Throwable java.nio.channels.FileChannel
      StackMap stack: java.lang.Throwable
        19: astore 4
            aload 6 /* f */
            ifnull 20
            aload 6 /* f */
            invokevirtual java.nio.channels.FileChannel.close:()V
        end local 6 // java.nio.channels.FileChannel f
      StackMap locals:
      StackMap stack:
        20: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: astore 5
            aload 4
            ifnonnull 22
            aload 5
            astore 4
            goto 23
      StackMap locals:
      StackMap stack:
        22: aload 4
            aload 5
            if_acmpeq 23
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        23: aload 4
            athrow
      StackMap locals: java.util.List java.lang.String java.lang.String java.util.Iterator
      StackMap stack: java.lang.Exception
        24: astore 4 /* e */
        start local 4 // java.lang.Exception e
        25: .line 56
            ldc 90133
            aload 4 /* e */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
        26: .line 57
            aload 1 /* message */
            aastore
        27: .line 55
            invokestatic org.h2.message.DbException.getJdbcSQLException:(ILjava/lang/Throwable;[Ljava/lang/String;)Ljava/sql/SQLException;
            athrow
        end local 4 // java.lang.Exception e
        end local 2 // java.lang.String fileName
        28: .line 38
      StackMap locals: java.util.List java.lang.String top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        29: .line 61
            return
        end local 1 // java.lang.String message
        end local 0 // java.util.List files
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   30     0     files  Ljava/util/List<Ljava/lang/String;>;
            0   30     1   message  Ljava/lang/String;
            2   28     2  fileName  Ljava/lang/String;
            6   13     4      lock  Lorg/h2/store/FileLock;
           16   20     6         f  Ljava/nio/channels/FileChannel;
           17   18     7      lock  Ljava/nio/channels/FileLock;
           25   28     4         e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           6     8       9  Class org.h2.message.DbException
          16    18      19  any
          15    21      21  any
          14    24      24  Class java.lang.Exception
    Exceptions:
      throws java.sql.SQLException
    Signature: (Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;)V
    MethodParameters:
         Name  Flags
      files    
      message  

  public static java.lang.String getDir(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String dir
         0: .line 70
            aload 0 /* dir */
            ifnull 1
            aload 0 /* dir */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 71
      StackMap locals:
      StackMap stack:
            ldc "."
            areturn
         2: .line 73
      StackMap locals:
      StackMap stack:
            aload 0 /* dir */
            invokestatic org.h2.store.fs.FileUtils.toRealPath:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String dir
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   dir  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      dir   

  public static java.util.ArrayList<java.lang.String> getDatabaseFiles(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/ArrayList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // java.lang.String dir
        start local 1 // java.lang.String db
        start local 2 // boolean all
         0: .line 88
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* files */
        start local 3 // java.util.ArrayList files
         1: .line 90
            aload 1 /* db */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: java.util.ArrayList
      StackMap stack:
         2: new java.lang.StringBuilder
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* dir */
            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 1 /* db */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.h2.store.fs.FileUtils.toRealPath:(Ljava/lang/String;)Ljava/lang/String;
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         3: astore 4 /* start */
        start local 4 // java.lang.String start
         4: .line 91
            aload 0 /* dir */
            invokestatic org.h2.store.fs.FileUtils.newDirectoryStream:(Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 33
      StackMap locals: java.lang.String java.lang.String int java.util.ArrayList java.lang.String top java.util.Iterator
      StackMap stack:
         5: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* f */
        start local 5 // java.lang.String f
         6: .line 92
            iconst_0
            istore 7 /* ok */
        start local 7 // boolean ok
         7: .line 93
            aload 5 /* f */
            ldc ".lobs.db"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 12
         8: .line 94
            aload 4 /* start */
            ifnull 9
            aload 5 /* f */
            aload 4 /* start */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 30
         9: .line 95
      StackMap locals: java.lang.String java.lang.String int java.util.ArrayList java.lang.String java.lang.String java.util.Iterator int
      StackMap stack:
            aload 3 /* files */
            aload 5 /* f */
            aconst_null
            iload 2 /* all */
            invokestatic org.h2.store.FileLister.getDatabaseFiles:(Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
        10: .line 96
            iconst_1
            istore 7 /* ok */
        11: .line 98
            goto 30
      StackMap locals:
      StackMap stack:
        12: aload 5 /* f */
            ldc ".lob.db"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 15
        13: .line 99
            iconst_1
            istore 7 /* ok */
        14: .line 100
            goto 30
      StackMap locals:
      StackMap stack:
        15: aload 5 /* f */
            ldc ".h2.db"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 18
        16: .line 101
            iconst_1
            istore 7 /* ok */
        17: .line 102
            goto 30
      StackMap locals:
      StackMap stack:
        18: aload 5 /* f */
            ldc ".mv.db"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 21
        19: .line 103
            iconst_1
            istore 7 /* ok */
        20: .line 104
            goto 30
      StackMap locals:
      StackMap stack:
        21: iload 2 /* all */
            ifeq 30
        22: .line 105
            aload 5 /* f */
            ldc ".lock.db"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 25
        23: .line 106
            iconst_1
            istore 7 /* ok */
        24: .line 107
            goto 30
      StackMap locals:
      StackMap stack:
        25: aload 5 /* f */
            ldc ".temp.db"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 28
        26: .line 108
            iconst_1
            istore 7 /* ok */
        27: .line 109
            goto 30
      StackMap locals:
      StackMap stack:
        28: aload 5 /* f */
            ldc ".trace.db"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 30
        29: .line 110
            iconst_1
            istore 7 /* ok */
        30: .line 113
      StackMap locals:
      StackMap stack:
            iload 7 /* ok */
            ifeq 33
        31: .line 114
            aload 1 /* db */
            ifnull 32
            aload 5 /* f */
            aload 4 /* start */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 33
        32: .line 115
      StackMap locals:
      StackMap stack:
            aload 3 /* files */
            aload 5 /* f */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // boolean ok
        end local 5 // java.lang.String f
        33: .line 91
      StackMap locals: java.lang.String java.lang.String int java.util.ArrayList java.lang.String top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        34: .line 119
            aload 3 /* files */
            areturn
        end local 4 // java.lang.String start
        end local 3 // java.util.ArrayList files
        end local 2 // boolean all
        end local 1 // java.lang.String db
        end local 0 // java.lang.String dir
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   35     0    dir  Ljava/lang/String;
            0   35     1     db  Ljava/lang/String;
            0   35     2    all  Z
            1   35     3  files  Ljava/util/ArrayList<Ljava/lang/String;>;
            4   35     4  start  Ljava/lang/String;
            6   33     5      f  Ljava/lang/String;
            7   33     7     ok  Z
    Signature: (Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/ArrayList<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      dir   
      db    
      all   
}
SourceFile: "FileLister.java"