public class org.h2.tools.CreateCluster extends org.h2.util.Tool
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.tools.CreateCluster
  super_class: org.h2.util.Tool
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.tools.CreateCluster this
         0: .line 28
            aload 0 /* this */
            invokespecial org.h2.util.Tool.<init>:()V
            return
        end local 0 // org.h2.tools.CreateCluster this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/CreateCluster;

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 51
            new org.h2.tools.CreateCluster
            dup
            invokespecial org.h2.tools.CreateCluster.<init>:()V
            aload 0 /* args */
            invokevirtual org.h2.tools.CreateCluster.runTool:([Ljava/lang/String;)V
         1: .line 52
            return
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  args  [Ljava/lang/String;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      args  

  public void runTool(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // org.h2.tools.CreateCluster this
        start local 1 // java.lang.String[] args
         0: .line 56
            aconst_null
            astore 2 /* urlSource */
        start local 2 // java.lang.String urlSource
         1: .line 57
            aconst_null
            astore 3 /* urlTarget */
        start local 3 // java.lang.String urlTarget
         2: .line 58
            ldc ""
            astore 4 /* user */
        start local 4 // java.lang.String user
         3: .line 59
            ldc ""
            astore 5 /* password */
        start local 5 // java.lang.String password
         4: .line 60
            aconst_null
            astore 6 /* serverList */
        start local 6 // java.lang.String serverList
         5: .line 61
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         6: goto 28
         7: .line 62
      StackMap locals: org.h2.tools.CreateCluster java.lang.String[] java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String int
      StackMap stack:
            aload 1 /* args */
            iload 7 /* i */
            aaload
            astore 8 /* arg */
        start local 8 // java.lang.String arg
         8: .line 63
            aload 8 /* arg */
            ldc "-urlSource"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         9: .line 64
            aload 1 /* args */
            iinc 7 /* i */ 1
            iload 7 /* i */
            aaload
            astore 2 /* urlSource */
        10: .line 65
            goto 27
      StackMap locals: java.lang.String
      StackMap stack:
        11: aload 8 /* arg */
            ldc "-urlTarget"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 66
            aload 1 /* args */
            iinc 7 /* i */ 1
            iload 7 /* i */
            aaload
            astore 3 /* urlTarget */
        13: .line 67
            goto 27
      StackMap locals:
      StackMap stack:
        14: aload 8 /* arg */
            ldc "-user"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 68
            aload 1 /* args */
            iinc 7 /* i */ 1
            iload 7 /* i */
            aaload
            astore 4 /* user */
        16: .line 69
            goto 27
      StackMap locals:
      StackMap stack:
        17: aload 8 /* arg */
            ldc "-password"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        18: .line 70
            aload 1 /* args */
            iinc 7 /* i */ 1
            iload 7 /* i */
            aaload
            astore 5 /* password */
        19: .line 71
            goto 27
      StackMap locals:
      StackMap stack:
        20: aload 8 /* arg */
            ldc "-serverList"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 23
        21: .line 72
            aload 1 /* args */
            iinc 7 /* i */ 1
            iload 7 /* i */
            aaload
            astore 6 /* serverList */
        22: .line 73
            goto 27
      StackMap locals:
      StackMap stack:
        23: aload 8 /* arg */
            ldc "-help"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 24
            aload 8 /* arg */
            ldc "-?"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        24: .line 74
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.tools.CreateCluster.showUsage:()V
        25: .line 75
            return
        26: .line 77
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* arg */
            invokevirtual org.h2.tools.CreateCluster.showUsageAndThrowUnsupportedOption:(Ljava/lang/String;)Ljava/sql/SQLException;
            pop
        end local 8 // java.lang.String arg
        27: .line 61
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: aload 1 /* args */
            ifnull 29
            iload 7 /* i */
            aload 1 /* args */
            arraylength
            if_icmplt 7
        end local 7 // int i
        29: .line 80
      StackMap locals:
      StackMap stack:
            aload 2 /* urlSource */
            ifnull 30
            aload 3 /* urlTarget */
            ifnull 30
            aload 6 /* serverList */
            ifnonnull 32
        30: .line 81
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.tools.CreateCluster.showUsage:()V
        31: .line 82
            new java.sql.SQLException
            dup
            ldc "Source URL, target URL, or server list not set"
            invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;)V
            athrow
        32: .line 84
      StackMap locals:
      StackMap stack:
            aload 2 /* urlSource */
            aload 3 /* urlTarget */
            aload 4 /* user */
            aload 5 /* password */
            aload 6 /* serverList */
            invokestatic org.h2.tools.CreateCluster.process:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        33: .line 85
            return
        end local 6 // java.lang.String serverList
        end local 5 // java.lang.String password
        end local 4 // java.lang.String user
        end local 3 // java.lang.String urlTarget
        end local 2 // java.lang.String urlSource
        end local 1 // java.lang.String[] args
        end local 0 // org.h2.tools.CreateCluster this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   34     0        this  Lorg/h2/tools/CreateCluster;
            0   34     1        args  [Ljava/lang/String;
            1   34     2   urlSource  Ljava/lang/String;
            2   34     3   urlTarget  Ljava/lang/String;
            3   34     4        user  Ljava/lang/String;
            4   34     5    password  Ljava/lang/String;
            5   34     6  serverList  Ljava/lang/String;
            6   29     7           i  I
            8   27     8         arg  Ljava/lang/String;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      args  

  public void execute(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=6
        start local 0 // org.h2.tools.CreateCluster this
        start local 1 // java.lang.String urlSource
        start local 2 // java.lang.String urlTarget
        start local 3 // java.lang.String user
        start local 4 // java.lang.String password
        start local 5 // java.lang.String serverList
         0: .line 98
            aload 1 /* urlSource */
            aload 2 /* urlTarget */
            aload 3 /* user */
            aload 4 /* password */
            aload 5 /* serverList */
            invokestatic org.h2.tools.CreateCluster.process:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 99
            return
        end local 5 // java.lang.String serverList
        end local 4 // java.lang.String password
        end local 3 // java.lang.String user
        end local 2 // java.lang.String urlTarget
        end local 1 // java.lang.String urlSource
        end local 0 // org.h2.tools.CreateCluster this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/h2/tools/CreateCluster;
            0    2     1   urlSource  Ljava/lang/String;
            0    2     2   urlTarget  Ljava/lang/String;
            0    2     3        user  Ljava/lang/String;
            0    2     4    password  Ljava/lang/String;
            0    2     5  serverList  Ljava/lang/String;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
            Name  Flags
      urlSource   
      urlTarget   
      user        
      password    
      serverList  

  private static void process(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // java.lang.String urlSource
        start local 1 // java.lang.String urlTarget
        start local 2 // java.lang.String user
        start local 3 // java.lang.String password
        start local 4 // java.lang.String serverList
         0: .line 103
            invokestatic org.h2.Driver.load:()Lorg/h2/Driver;
            pop
         1: .line 107
            aconst_null
            astore 5
            aconst_null
            astore 6
         2: new java.lang.StringBuilder
            dup
            aload 0 /* urlSource */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ";CLUSTER=''"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* user */
            aload 3 /* password */
            invokestatic java.sql.DriverManager.getConnection:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
            astore 7 /* connSource */
        start local 7 // java.sql.Connection connSource
         3: .line 108
            aload 7 /* connSource */
            invokeinterface java.sql.Connection.createStatement:()Ljava/sql/Statement;
            astore 8 /* statSource */
        start local 8 // java.sql.Statement statSource
         4: .line 111
            aload 8 /* statSource */
            ldc "SET EXCLUSIVE 2"
            invokeinterface java.sql.Statement.execute:(Ljava/lang/String;)Z
            pop
         5: .line 113
            aload 8 /* statSource */
            aload 1 /* urlTarget */
            aload 2 /* user */
            aload 3 /* password */
            aload 4 /* serverList */
            invokestatic org.h2.tools.CreateCluster.performTransfer:(Ljava/sql/Statement;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         6: .line 114
            goto 10
      StackMap locals: java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable java.sql.Connection java.sql.Statement
      StackMap stack: java.lang.Throwable
         7: astore 9
         8: .line 116
            aload 8 /* statSource */
            ldc "SET EXCLUSIVE FALSE"
            invokeinterface java.sql.Statement.execute:(Ljava/lang/String;)Z
            pop
         9: .line 117
            aload 9
            athrow
        10: .line 116
      StackMap locals:
      StackMap stack:
            aload 8 /* statSource */
            ldc "SET EXCLUSIVE FALSE"
            invokeinterface java.sql.Statement.execute:(Ljava/lang/String;)Z
            pop
        11: .line 118
            aload 8 /* statSource */
            ifnull 14
            aload 8 /* statSource */
            invokeinterface java.sql.Statement.close:()V
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 5
            aload 8 /* statSource */
            ifnull 13
            aload 8 /* statSource */
            invokeinterface java.sql.Statement.close:()V
        end local 8 // java.sql.Statement statSource
      StackMap locals:
      StackMap stack:
        13: aload 5
            athrow
      StackMap locals:
      StackMap stack:
        14: aload 7 /* connSource */
            ifnull 22
            aload 7 /* connSource */
            invokeinterface java.sql.Connection.close:()V
            goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: astore 6
            aload 5
            ifnonnull 16
            aload 6
            astore 5
            goto 17
      StackMap locals:
      StackMap stack:
        16: aload 5
            aload 6
            if_acmpeq 17
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        17: aload 7 /* connSource */
            ifnull 18
            aload 7 /* connSource */
            invokeinterface java.sql.Connection.close:()V
        end local 7 // java.sql.Connection connSource
      StackMap locals:
      StackMap stack:
        18: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 6
            aload 5
            ifnonnull 20
            aload 6
            astore 5
            goto 21
      StackMap locals:
      StackMap stack:
        20: aload 5
            aload 6
            if_acmpeq 21
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        21: aload 5
            athrow
        22: .line 119
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String serverList
        end local 3 // java.lang.String password
        end local 2 // java.lang.String user
        end local 1 // java.lang.String urlTarget
        end local 0 // java.lang.String urlSource
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   23     0   urlSource  Ljava/lang/String;
            0   23     1   urlTarget  Ljava/lang/String;
            0   23     2        user  Ljava/lang/String;
            0   23     3    password  Ljava/lang/String;
            0   23     4  serverList  Ljava/lang/String;
            3   18     7  connSource  Ljava/sql/Connection;
            4   13     8  statSource  Ljava/sql/Statement;
      Exception table:
        from    to  target  type
           5     7       7  any
           4    11      12  any
           3    14      15  any
           2    19      19  any
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
            Name  Flags
      urlSource   
      urlTarget   
      user        
      password    
      serverList  

  private static void performTransfer(java.sql.Statement, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/sql/Statement;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=14, args_size=5
        start local 0 // java.sql.Statement statSource
        start local 1 // java.lang.String urlTarget
        start local 2 // java.lang.String user
        start local 3 // java.lang.String password
        start local 4 // java.lang.String serverList
         0: .line 125
            aconst_null
            astore 5
            aconst_null
            astore 6
         1: new java.lang.StringBuilder
            dup
            aload 1 /* urlTarget */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ";CLUSTER=''"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* user */
            aload 3 /* password */
            invokestatic java.sql.DriverManager.getConnection:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
            astore 7 /* connTarget */
        start local 7 // java.sql.Connection connTarget
         2: .line 126
            aload 7 /* connTarget */
            invokeinterface java.sql.Connection.createStatement:()Ljava/sql/Statement;
            astore 8 /* statTarget */
        start local 8 // java.sql.Statement statTarget
         3: .line 127
            aload 8 /* statTarget */
            ldc "DROP ALL OBJECTS DELETE FILES"
            invokeinterface java.sql.Statement.execute:(Ljava/lang/String;)Z
            pop
         4: .line 128
            aload 8 /* statTarget */
            ifnull 7
            aload 8 /* statTarget */
            invokeinterface java.sql.Statement.close:()V
            goto 7
      StackMap locals: java.sql.Statement java.lang.String java.lang.String java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable java.sql.Connection java.sql.Statement
      StackMap stack: java.lang.Throwable
         5: astore 5
            aload 8 /* statTarget */
            ifnull 6
            aload 8 /* statTarget */
            invokeinterface java.sql.Statement.close:()V
        end local 8 // java.sql.Statement statTarget
      StackMap locals:
      StackMap stack:
         6: aload 5
            athrow
      StackMap locals:
      StackMap stack:
         7: aload 7 /* connTarget */
            ifnull 15
            aload 7 /* connTarget */
            invokeinterface java.sql.Connection.close:()V
            goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 6
            aload 5
            ifnonnull 9
            aload 6
            astore 5
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 5
            aload 6
            if_acmpeq 10
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        10: aload 7 /* connTarget */
            ifnull 11
            aload 7 /* connTarget */
            invokeinterface java.sql.Connection.close:()V
        end local 7 // java.sql.Connection connTarget
      StackMap locals:
      StackMap stack:
        11: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 6
            aload 5
            ifnonnull 13
            aload 6
            astore 5
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 5
            aload 6
            if_acmpeq 14
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        14: aload 5
            athrow
        15: .line 130
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5
            aconst_null
            astore 6
        16: new java.io.PipedReader
            dup
            invokespecial java.io.PipedReader.<init>:()V
            astore 7 /* pipeReader */
        start local 7 // java.io.PipedReader pipeReader
        17: .line 131
            aload 7 /* pipeReader */
            aload 0 /* statSource */
            invokestatic org.h2.tools.CreateCluster.startWriter:(Ljava/io/PipedReader;Ljava/sql/Statement;)Ljava/util/concurrent/Future;
            astore 8 /* threadFuture */
        start local 8 // java.util.concurrent.Future threadFuture
        18: .line 134
            aconst_null
            astore 9
            aconst_null
            astore 10
        19: aload 1 /* urlTarget */
            aload 2 /* user */
            aload 3 /* password */
            invokestatic java.sql.DriverManager.getConnection:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
            astore 11 /* connTarget */
        start local 11 // java.sql.Connection connTarget
        20: .line 135
            aload 11 /* connTarget */
            invokeinterface java.sql.Connection.createStatement:()Ljava/sql/Statement;
            astore 12 /* statTarget */
        start local 12 // java.sql.Statement statTarget
        21: .line 136
            aload 11 /* connTarget */
            aload 7 /* pipeReader */
            invokestatic org.h2.tools.RunScript.execute:(Ljava/sql/Connection;Ljava/io/Reader;)Ljava/sql/ResultSet;
            pop
        22: .line 140
            aload 8 /* threadFuture */
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
        23: .line 141
            goto 28
      StackMap locals: java.sql.Statement java.lang.String java.lang.String java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable java.io.PipedReader java.util.concurrent.Future java.lang.Throwable java.lang.Throwable java.sql.Connection java.sql.Statement
      StackMap stack: java.util.concurrent.ExecutionException
        24: astore 13 /* ex */
        start local 13 // java.util.concurrent.ExecutionException ex
        25: .line 142
            new java.sql.SQLException
            dup
            aload 13 /* ex */
            invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
            invokespecial java.sql.SQLException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 13 // java.util.concurrent.ExecutionException ex
        26: .line 143
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            astore 13 /* ex */
        start local 13 // java.lang.InterruptedException ex
        27: .line 144
            new java.sql.SQLException
            dup
            aload 13 /* ex */
            invokespecial java.sql.SQLException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 13 // java.lang.InterruptedException ex
        28: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* statSource */
            new java.lang.StringBuilder
            dup
            ldc "SET CLUSTER '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* serverList */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.sql.Statement.executeUpdate:(Ljava/lang/String;)I
            pop
        29: .line 149
            aload 12 /* statTarget */
            new java.lang.StringBuilder
            dup
            ldc "SET CLUSTER '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* serverList */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.sql.Statement.executeUpdate:(Ljava/lang/String;)I
            pop
        30: .line 150
            aload 12 /* statTarget */
            ifnull 33
            aload 12 /* statTarget */
            invokeinterface java.sql.Statement.close:()V
            goto 33
      StackMap locals:
      StackMap stack: java.lang.Throwable
        31: astore 9
            aload 12 /* statTarget */
            ifnull 32
            aload 12 /* statTarget */
            invokeinterface java.sql.Statement.close:()V
        end local 12 // java.sql.Statement statTarget
      StackMap locals:
      StackMap stack:
        32: aload 9
            athrow
      StackMap locals:
      StackMap stack:
        33: aload 11 /* connTarget */
            ifnull 41
            aload 11 /* connTarget */
            invokeinterface java.sql.Connection.close:()V
            goto 41
      StackMap locals:
      StackMap stack: java.lang.Throwable
        34: astore 10
            aload 9
            ifnonnull 35
            aload 10
            astore 9
            goto 36
      StackMap locals:
      StackMap stack:
        35: aload 9
            aload 10
            if_acmpeq 36
            aload 9
            aload 10
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        36: aload 11 /* connTarget */
            ifnull 37
            aload 11 /* connTarget */
            invokeinterface java.sql.Connection.close:()V
        end local 11 // java.sql.Connection connTarget
      StackMap locals:
      StackMap stack:
        37: aload 9
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        38: astore 10
            aload 9
            ifnonnull 39
            aload 10
            astore 9
            goto 40
      StackMap locals:
      StackMap stack:
        39: aload 9
            aload 10
            if_acmpeq 40
            aload 9
            aload 10
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        40: aload 9
            athrow
        end local 8 // java.util.concurrent.Future threadFuture
        41: .line 151
      StackMap locals:
      StackMap stack:
            aload 7 /* pipeReader */
            ifnull 49
            aload 7 /* pipeReader */
            invokevirtual java.io.PipedReader.close:()V
            goto 49
      StackMap locals:
      StackMap stack: java.lang.Throwable
        42: astore 5
            aload 7 /* pipeReader */
            ifnull 43
            aload 7 /* pipeReader */
            invokevirtual java.io.PipedReader.close:()V
        end local 7 // java.io.PipedReader pipeReader
      StackMap locals:
      StackMap stack:
        43: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        44: astore 6
            aload 5
            ifnonnull 45
            aload 6
            astore 5
            goto 46
      StackMap locals:
      StackMap stack:
        45: aload 5
            aload 6
            if_acmpeq 46
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        46: aload 5
            athrow
      StackMap locals: java.sql.Statement java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack: java.io.IOException
        47: astore 5 /* ex */
        start local 5 // java.io.IOException ex
        48: .line 152
            new java.sql.SQLException
            dup
            aload 5 /* ex */
            invokespecial java.sql.SQLException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.io.IOException ex
        49: .line 154
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String serverList
        end local 3 // java.lang.String password
        end local 2 // java.lang.String user
        end local 1 // java.lang.String urlTarget
        end local 0 // java.sql.Statement statSource
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   50     0    statSource  Ljava/sql/Statement;
            0   50     1     urlTarget  Ljava/lang/String;
            0   50     2          user  Ljava/lang/String;
            0   50     3      password  Ljava/lang/String;
            0   50     4    serverList  Ljava/lang/String;
            2   11     7    connTarget  Ljava/sql/Connection;
            3    6     8    statTarget  Ljava/sql/Statement;
           17   43     7    pipeReader  Ljava/io/PipedReader;
           18   41     8  threadFuture  Ljava/util/concurrent/Future<*>;
           20   37    11    connTarget  Ljava/sql/Connection;
           21   32    12    statTarget  Ljava/sql/Statement;
           25   26    13            ex  Ljava/util/concurrent/ExecutionException;
           27   28    13            ex  Ljava/lang/InterruptedException;
           48   49     5            ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     4       5  any
           2     7       8  any
           1    12      12  any
          22    23      24  Class java.util.concurrent.ExecutionException
          22    23      26  Class java.lang.InterruptedException
          21    30      31  any
          20    33      34  any
          19    38      38  any
          17    41      42  any
          16    44      44  any
          15    47      47  Class java.io.IOException
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
            Name  Flags
      statSource  
      urlTarget   
      user        
      password    
      serverList  

  private static java.util.concurrent.Future<?> startWriter(java.io.PipedReader, java.sql.Statement);
    descriptor: (Ljava/io/PipedReader;Ljava/sql/Statement;)Ljava/util/concurrent/Future;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // java.io.PipedReader pipeReader
        start local 1 // java.sql.Statement statSource
         0: .line 158
            iconst_1
            invokestatic java.util.concurrent.Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;
            astore 2 /* thread */
        start local 2 // java.util.concurrent.ExecutorService thread
         1: .line 159
            new java.io.PipedWriter
            dup
            aload 0 /* pipeReader */
            invokespecial java.io.PipedWriter.<init>:(Ljava/io/PipedReader;)V
            astore 3 /* pipeWriter */
        start local 3 // java.io.PipedWriter pipeWriter
         2: .line 162
            aload 2 /* thread */
            new org.h2.tools.CreateCluster$1
            dup
            aload 3 /* pipeWriter */
            aload 1 /* statSource */
            invokespecial org.h2.tools.CreateCluster$1.<init>:(Ljava/io/PipedWriter;Ljava/sql/Statement;)V
            invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
            astore 4 /* threadFuture */
        start local 4 // java.util.concurrent.Future threadFuture
         3: .line 181
            aload 2 /* thread */
            invokeinterface java.util.concurrent.ExecutorService.shutdown:()V
         4: .line 183
            aload 4 /* threadFuture */
            areturn
        end local 4 // java.util.concurrent.Future threadFuture
        end local 3 // java.io.PipedWriter pipeWriter
        end local 2 // java.util.concurrent.ExecutorService thread
        end local 1 // java.sql.Statement statSource
        end local 0 // java.io.PipedReader pipeReader
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0    pipeReader  Ljava/io/PipedReader;
            0    5     1    statSource  Ljava/sql/Statement;
            1    5     2        thread  Ljava/util/concurrent/ExecutorService;
            2    5     3    pipeWriter  Ljava/io/PipedWriter;
            3    5     4  threadFuture  Ljava/util/concurrent/Future<*>;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/io/PipedReader;Ljava/sql/Statement;)Ljava/util/concurrent/Future<*>;
    MethodParameters:
            Name  Flags
      pipeReader  final
      statSource  final
}
SourceFile: "CreateCluster.java"
NestMembers:
  org.h2.tools.CreateCluster$1
InnerClasses:
  org.h2.tools.CreateCluster$1