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 0: aload 0
invokespecial org.h2.util.Tool.<init>:()V
return
end local 0 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 0: new org.h2.tools.CreateCluster
dup
invokespecial org.h2.tools.CreateCluster.<init>:()V
aload 0
invokevirtual org.h2.tools.CreateCluster.runTool:([Ljava/lang/String;)V
1: return
end local 0 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 start local 1 0: aconst_null
astore 2
start local 2 1: aconst_null
astore 3
start local 3 2: ldc ""
astore 4
start local 4 3: ldc ""
astore 5
start local 5 4: aconst_null
astore 6
start local 6 5: iconst_0
istore 7
start local 7 6: goto 28
7: 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
iload 7
aaload
astore 8
start local 8 8: aload 8
ldc "-urlSource"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 11
9: aload 1
iinc 7 1
iload 7
aaload
astore 2
10: goto 27
StackMap locals: java.lang.String
StackMap stack:
11: aload 8
ldc "-urlTarget"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 14
12: aload 1
iinc 7 1
iload 7
aaload
astore 3
13: goto 27
StackMap locals:
StackMap stack:
14: aload 8
ldc "-user"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
15: aload 1
iinc 7 1
iload 7
aaload
astore 4
16: goto 27
StackMap locals:
StackMap stack:
17: aload 8
ldc "-password"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 20
18: aload 1
iinc 7 1
iload 7
aaload
astore 5
19: goto 27
StackMap locals:
StackMap stack:
20: aload 8
ldc "-serverList"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 23
21: aload 1
iinc 7 1
iload 7
aaload
astore 6
22: goto 27
StackMap locals:
StackMap stack:
23: aload 8
ldc "-help"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 24
aload 8
ldc "-?"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 26
24: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.tools.CreateCluster.showUsage:()V
25: return
26: StackMap locals:
StackMap stack:
aload 0
aload 8
invokevirtual org.h2.tools.CreateCluster.showUsageAndThrowUnsupportedOption:(Ljava/lang/String;)Ljava/sql/SQLException;
pop
end local 8 27: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
28: aload 1
ifnull 29
iload 7
aload 1
arraylength
if_icmplt 7
end local 7 29: StackMap locals:
StackMap stack:
aload 2
ifnull 30
aload 3
ifnull 30
aload 6
ifnonnull 32
30: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.tools.CreateCluster.showUsage:()V
31: 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: StackMap locals:
StackMap stack:
aload 2
aload 3
aload 4
aload 5
aload 6
invokestatic org.h2.tools.CreateCluster.process:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
33: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 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 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 1
aload 2
aload 3
aload 4
aload 5
invokestatic org.h2.tools.CreateCluster.process:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
1: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 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 start local 1 start local 2 start local 3 start local 4 0: invokestatic org.h2.Driver.load:()Lorg/h2/Driver;
pop
1: aconst_null
astore 5
aconst_null
astore 6
2: new java.lang.StringBuilder
dup
aload 0
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
aload 3
invokestatic java.sql.DriverManager.getConnection:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
astore 7
start local 7 3: aload 7
invokeinterface java.sql.Connection.createStatement:()Ljava/sql/Statement;
astore 8
start local 8 4: aload 8
ldc "SET EXCLUSIVE 2"
invokeinterface java.sql.Statement.execute:(Ljava/lang/String;)Z
pop
5: aload 8
aload 1
aload 2
aload 3
aload 4
invokestatic org.h2.tools.CreateCluster.performTransfer:(Ljava/sql/Statement;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
6: 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: aload 8
ldc "SET EXCLUSIVE FALSE"
invokeinterface java.sql.Statement.execute:(Ljava/lang/String;)Z
pop
9: aload 9
athrow
10: StackMap locals:
StackMap stack:
aload 8
ldc "SET EXCLUSIVE FALSE"
invokeinterface java.sql.Statement.execute:(Ljava/lang/String;)Z
pop
11: aload 8
ifnull 14
aload 8
invokeinterface java.sql.Statement.close:()V
goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 5
aload 8
ifnull 13
aload 8
invokeinterface java.sql.Statement.close:()V
end local 8 StackMap locals:
StackMap stack:
13: aload 5
athrow
StackMap locals:
StackMap stack:
14: aload 7
ifnull 22
aload 7
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
ifnull 18
aload 7
invokeinterface java.sql.Connection.close:()V
end local 7 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: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 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 start local 1 start local 2 start local 3 start local 4 0: aconst_null
astore 5
aconst_null
astore 6
1: new java.lang.StringBuilder
dup
aload 1
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
aload 3
invokestatic java.sql.DriverManager.getConnection:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
astore 7
start local 7 2: aload 7
invokeinterface java.sql.Connection.createStatement:()Ljava/sql/Statement;
astore 8
start local 8 3: aload 8
ldc "DROP ALL OBJECTS DELETE FILES"
invokeinterface java.sql.Statement.execute:(Ljava/lang/String;)Z
pop
4: aload 8
ifnull 7
aload 8
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
ifnull 6
aload 8
invokeinterface java.sql.Statement.close:()V
end local 8 StackMap locals:
StackMap stack:
6: aload 5
athrow
StackMap locals:
StackMap stack:
7: aload 7
ifnull 15
aload 7
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
ifnull 11
aload 7
invokeinterface java.sql.Connection.close:()V
end local 7 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: 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
start local 7 17: aload 7
aload 0
invokestatic org.h2.tools.CreateCluster.startWriter:(Ljava/io/PipedReader;Ljava/sql/Statement;)Ljava/util/concurrent/Future;
astore 8
start local 8 18: aconst_null
astore 9
aconst_null
astore 10
19: aload 1
aload 2
aload 3
invokestatic java.sql.DriverManager.getConnection:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
astore 11
start local 11 20: aload 11
invokeinterface java.sql.Connection.createStatement:()Ljava/sql/Statement;
astore 12
start local 12 21: aload 11
aload 7
invokestatic org.h2.tools.RunScript.execute:(Ljava/sql/Connection;Ljava/io/Reader;)Ljava/sql/ResultSet;
pop
22: aload 8
invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
pop
23: 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
start local 13 25: new java.sql.SQLException
dup
aload 13
invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
invokespecial java.sql.SQLException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 13 26: StackMap locals:
StackMap stack: java.lang.InterruptedException
astore 13
start local 13 27: new java.sql.SQLException
dup
aload 13
invokespecial java.sql.SQLException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 13 28: StackMap locals:
StackMap stack:
aload 0
new java.lang.StringBuilder
dup
ldc "SET CLUSTER '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
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: aload 12
new java.lang.StringBuilder
dup
ldc "SET CLUSTER '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
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: aload 12
ifnull 33
aload 12
invokeinterface java.sql.Statement.close:()V
goto 33
StackMap locals:
StackMap stack: java.lang.Throwable
31: astore 9
aload 12
ifnull 32
aload 12
invokeinterface java.sql.Statement.close:()V
end local 12 StackMap locals:
StackMap stack:
32: aload 9
athrow
StackMap locals:
StackMap stack:
33: aload 11
ifnull 41
aload 11
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
ifnull 37
aload 11
invokeinterface java.sql.Connection.close:()V
end local 11 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 41: StackMap locals:
StackMap stack:
aload 7
ifnull 49
aload 7
invokevirtual java.io.PipedReader.close:()V
goto 49
StackMap locals:
StackMap stack: java.lang.Throwable
42: astore 5
aload 7
ifnull 43
aload 7
invokevirtual java.io.PipedReader.close:()V
end local 7 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
start local 5 48: new java.sql.SQLException
dup
aload 5
invokespecial java.sql.SQLException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 5 49: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 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 start local 1 0: iconst_1
invokestatic java.util.concurrent.Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;
astore 2
start local 2 1: new java.io.PipedWriter
dup
aload 0
invokespecial java.io.PipedWriter.<init>:(Ljava/io/PipedReader;)V
astore 3
start local 3 2: aload 2
new org.h2.tools.CreateCluster$1
dup
aload 3
aload 1
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
start local 4 3: aload 2
invokeinterface java.util.concurrent.ExecutorService.shutdown:()V
4: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 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