public class org.h2.tools.Restore extends org.h2.util.Tool
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.h2.tools.Restore
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/Restore;
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.Restore
dup
invokespecial org.h2.tools.Restore.<init>:()V
aload 0
invokevirtual org.h2.tools.Restore.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=3, locals=7, args_size=2
start local 0 start local 1 0: ldc "backup.zip"
astore 2
start local 2 1: ldc "."
astore 3
start local 3 2: aconst_null
astore 4
start local 4 3: iconst_0
istore 5
start local 5 4: goto 21
5: StackMap locals: org.h2.tools.Restore java.lang.String[] java.lang.String java.lang.String java.lang.String int
StackMap stack:
aload 1
iload 5
aaload
astore 6
start local 6 6: aload 6
ldc "-dir"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 9
7: aload 1
iinc 5 1
iload 5
aaload
astore 3
8: goto 20
StackMap locals: java.lang.String
StackMap stack:
9: aload 6
ldc "-file"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 12
10: aload 1
iinc 5 1
iload 5
aaload
astore 2
11: goto 20
StackMap locals:
StackMap stack:
12: aload 6
ldc "-db"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 15
13: aload 1
iinc 5 1
iload 5
aaload
astore 4
14: goto 20
StackMap locals:
StackMap stack:
15: aload 6
ldc "-quiet"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 20
16: aload 6
ldc "-help"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 17
aload 6
ldc "-?"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 19
17: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.tools.Restore.showUsage:()V
18: return
19: StackMap locals:
StackMap stack:
aload 0
aload 6
invokevirtual org.h2.tools.Restore.showUsageAndThrowUnsupportedOption:(Ljava/lang/String;)Ljava/sql/SQLException;
pop
end local 6 20: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
21: aload 1
ifnull 22
iload 5
aload 1
arraylength
if_icmplt 5
end local 5 22: StackMap locals:
StackMap stack:
aload 2
aload 3
aload 4
invokestatic org.h2.tools.Restore.execute:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
23: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/h2/tools/Restore;
0 24 1 args [Ljava/lang/String;
1 24 2 zipFileName Ljava/lang/String;
2 24 3 dir Ljava/lang/String;
3 24 4 db Ljava/lang/String;
4 22 5 i I
6 20 6 arg Ljava/lang/String;
Exceptions:
throws java.sql.SQLException
MethodParameters:
Name Flags
args
private static java.lang.String getOriginalDbName(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=11, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
aconst_null
astore 3
1: aload 0
invokestatic org.h2.store.fs.FileUtils.newInputStream:(Ljava/lang/String;)Ljava/io/InputStream;
astore 4
start local 4 2: new java.util.zip.ZipInputStream
dup
aload 4
invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
astore 5
start local 5 3: aconst_null
astore 6
start local 6 4: iconst_0
istore 7
start local 7 5: StackMap locals: java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable java.io.InputStream java.util.zip.ZipInputStream java.lang.String int
StackMap stack:
aload 5
invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
astore 8
start local 8 6: aload 8
ifnonnull 8
7: goto 20
8: StackMap locals: java.util.zip.ZipEntry
StackMap stack:
aload 8
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
astore 9
start local 9 9: aload 5
invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
10: aload 9
invokestatic org.h2.tools.Restore.getDatabaseNameFromFileName:(Ljava/lang/String;)Ljava/lang/String;
astore 10
start local 10 11: aload 10
ifnull 5
12: aload 1
aload 10
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 15
13: aload 10
astore 6
14: goto 20
15: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aload 6
ifnonnull 18
16: aload 10
astore 6
17: goto 5
18: StackMap locals:
StackMap stack:
iconst_1
istore 7
end local 10 end local 9 end local 8 19: goto 5
20: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.util.zip.ZipInputStream.close:()V
21: iload 7
ifeq 23
aload 1
aload 6
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
22: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Multiple databases found, but not "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
23: StackMap locals:
StackMap stack:
aload 6
24: aload 4
ifnull 25
aload 4
invokevirtual java.io.InputStream.close:()V
25: StackMap locals:
StackMap stack: java.lang.String
areturn
end local 7 end local 6 end local 5 StackMap locals: java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack: java.lang.Throwable
26: astore 2
27: aload 4
ifnull 28
aload 4
invokevirtual java.io.InputStream.close:()V
end local 4 StackMap locals:
StackMap stack:
28: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
29: astore 3
aload 2
ifnonnull 30
aload 3
astore 2
goto 31
StackMap locals:
StackMap stack:
30: aload 2
aload 3
if_acmpeq 31
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
31: aload 2
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 fileName Ljava/lang/String;
0 32 1 db Ljava/lang/String;
2 28 4 in Ljava/io/InputStream;
3 26 5 zipIn Ljava/util/zip/ZipInputStream;
4 26 6 originalDbName Ljava/lang/String;
5 26 7 multiple Z
6 19 8 entry Ljava/util/zip/ZipEntry;
9 19 9 entryName Ljava/lang/String;
11 19 10 name Ljava/lang/String;
Exception table:
from to target type
2 24 26 any
1 25 29 any
26 29 29 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fileName
db
private static java.lang.String getDatabaseNameFromFileName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
ldc ".h2.db"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 4
1: aload 0
iconst_0
2: aload 0
invokevirtual java.lang.String.length:()I
ldc ".h2.db"
invokevirtual java.lang.String.length:()I
isub
3: invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
4: StackMap locals:
StackMap stack:
aload 0
ldc ".mv.db"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 8
5: aload 0
iconst_0
6: aload 0
invokevirtual java.lang.String.length:()I
ldc ".mv.db"
invokevirtual java.lang.String.length:()I
isub
7: invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
8: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 fileName Ljava/lang/String;
MethodParameters:
Name Flags
fileName
public static void execute(java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=15, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 0
invokestatic org.h2.store.fs.FileUtils.exists:(Ljava/lang/String;)Z
ifne 3
2: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "File not found: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.io.InputStream
StackMap stack:
aconst_null
astore 4
start local 4 4: iconst_0
istore 5
start local 5 5: aload 2
ifnull 12
6: aload 0
aload 2
invokestatic org.h2.tools.Restore.getOriginalDbName:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 4
7: aload 4
ifnonnull 9
8: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "No database named "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " found"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: java.lang.String int
StackMap stack:
aload 4
getstatic org.h2.engine.SysProperties.FILE_SEPARATOR:Ljava/lang/String;
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 11
10: aload 4
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 4
11: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.lang.String.length:()I
istore 5
12: StackMap locals:
StackMap stack:
aload 0
invokestatic org.h2.store.fs.FileUtils.newInputStream:(Ljava/lang/String;)Ljava/io/InputStream;
astore 3
13: aconst_null
astore 6
aconst_null
astore 7
14: new java.util.zip.ZipInputStream
dup
aload 3
invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
astore 8
start local 8 15: StackMap locals: java.lang.Throwable java.lang.Throwable java.util.zip.ZipInputStream
StackMap stack:
aload 8
invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
astore 9
start local 9 16: aload 9
ifnonnull 18
17: goto 43
18: StackMap locals: java.util.zip.ZipEntry
StackMap stack:
aload 9
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
astore 10
start local 10 19: aload 10
bipush 92
getstatic org.h2.engine.SysProperties.FILE_SEPARATOR:Ljava/lang/String;
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 10
20: aload 10
bipush 47
getstatic org.h2.engine.SysProperties.FILE_SEPARATOR:Ljava/lang/String;
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 10
21: aload 10
getstatic org.h2.engine.SysProperties.FILE_SEPARATOR:Ljava/lang/String;
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 23
22: aload 10
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 10
23: StackMap locals: java.lang.String
StackMap stack:
iconst_0
istore 11
start local 11 24: aload 2
ifnonnull 27
25: iconst_1
istore 11
26: goto 30
StackMap locals: int
StackMap stack:
27: aload 10
new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 30
28: new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
iload 5
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 10
29: iconst_1
istore 11
30: StackMap locals:
StackMap stack:
iload 11
ifeq 41
31: aconst_null
astore 12
start local 12 32: 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
getstatic org.h2.engine.SysProperties.FILE_SEPARATOR:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
33: invokestatic org.h2.store.fs.FileUtils.newOutputStream:(Ljava/lang/String;Z)Ljava/io/OutputStream;
astore 12
34: aload 8
aload 12
invokestatic org.h2.util.IOUtils.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)J
pop2
35: aload 12
invokevirtual java.io.OutputStream.close:()V
36: goto 40
StackMap locals: java.lang.String java.lang.String java.lang.String java.io.InputStream java.lang.String int java.lang.Throwable java.lang.Throwable java.util.zip.ZipInputStream java.util.zip.ZipEntry java.lang.String int java.io.OutputStream
StackMap stack: java.lang.Throwable
37: astore 13
38: aload 12
invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
39: aload 13
athrow
40: StackMap locals:
StackMap stack:
aload 12
invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
end local 12 41: StackMap locals:
StackMap stack:
aload 8
invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
end local 11 end local 10 end local 9 42: goto 15
43: StackMap locals:
StackMap stack:
aload 8
invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
44: aload 8
ifnull 55
aload 8
invokevirtual java.util.zip.ZipInputStream.close:()V
goto 55
StackMap locals:
StackMap stack: java.lang.Throwable
45: astore 6
aload 8
ifnull 46
aload 8
invokevirtual java.util.zip.ZipInputStream.close:()V
end local 8 StackMap locals:
StackMap stack:
46: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
47: astore 7
aload 6
ifnonnull 48
aload 7
astore 6
goto 49
StackMap locals:
StackMap stack:
48: aload 6
aload 7
if_acmpeq 49
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
49: aload 6
athrow
end local 5 end local 4 50: StackMap locals: java.lang.String java.lang.String java.lang.String java.io.InputStream
StackMap stack: java.io.IOException
astore 4
start local 4 51: aload 4
aload 0
invokestatic org.h2.message.DbException.convertIOException:(Ljava/io/IOException;Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 4 52: StackMap locals:
StackMap stack: java.lang.Throwable
astore 14
53: aload 3
invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
54: aload 14
athrow
55: StackMap locals:
StackMap stack:
aload 3
invokestatic org.h2.util.IOUtils.closeSilently:(Ljava/lang/AutoCloseable;)V
56: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 57 0 zipFileName Ljava/lang/String;
0 57 1 directory Ljava/lang/String;
0 57 2 db Ljava/lang/String;
1 57 3 in Ljava/io/InputStream;
4 50 4 originalDbName Ljava/lang/String;
5 50 5 originalDbLen I
15 46 8 zipIn Ljava/util/zip/ZipInputStream;
16 42 9 entry Ljava/util/zip/ZipEntry;
19 42 10 fileName Ljava/lang/String;
24 42 11 copy Z
32 41 12 o Ljava/io/OutputStream;
51 52 4 e Ljava/io/IOException;
Exception table:
from to target type
32 37 37 any
15 44 45 any
14 47 47 any
1 50 50 Class java.io.IOException
1 52 52 any
MethodParameters:
Name Flags
zipFileName
directory
db
}
SourceFile: "Restore.java"