public class org.h2.engine.Engine implements org.h2.engine.SessionFactory
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.h2.engine.Engine
super_class: java.lang.Object
{
private static final org.h2.engine.Engine INSTANCE;
descriptor: Lorg/h2/engine/Engine;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Map<java.lang.String, org.h2.engine.Database> DATABASES;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lorg/h2/engine/Database;>;
private volatile long wrongPasswordDelay;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private boolean jmx;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new org.h2.engine.Engine
dup
invokespecial org.h2.engine.Engine.<init>:()V
putstatic org.h2.engine.Engine.INSTANCE:Lorg/h2/engine/Engine;
1: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putstatic org.h2.engine.Engine.DATABASES:Ljava/util/Map;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
2: getstatic org.h2.engine.SysProperties.DELAY_WRONG_PASSWORD_MIN:I
i2l
putfield org.h2.engine.Engine.wrongPasswordDelay:J
3: getstatic org.h2.engine.SysProperties.THREAD_DEADLOCK_DETECTOR:Z
ifeq 5
4: invokestatic org.h2.util.ThreadDeadlockDetector.init:()V
5: StackMap locals: org.h2.engine.Engine
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/engine/Engine;
public static org.h2.engine.Engine getInstance();
descriptor: ()Lorg/h2/engine/Engine;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic org.h2.engine.Engine.INSTANCE:Lorg/h2/engine/Engine;
areturn
LocalVariableTable:
Start End Slot Name Signature
private org.h2.engine.Session openSession(org.h2.engine.ConnectionInfo, boolean, java.lang.String);
descriptor: (Lorg/h2/engine/ConnectionInfo;ZLjava/lang/String;)Lorg/h2/engine/Session;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual org.h2.engine.ConnectionInfo.getName:()Ljava/lang/String;
astore 4
start local 4 1: aload 1
ldc "NO_UPGRADE"
iconst_0
invokevirtual org.h2.engine.ConnectionInfo.removeProperty:(Ljava/lang/String;Z)Z
pop
2: aload 1
ldc "OPEN_NEW"
iconst_0
invokevirtual org.h2.engine.ConnectionInfo.getProperty:(Ljava/lang/String;Z)Z
istore 6
start local 6 3: iconst_0
istore 7
start local 7 4: aconst_null
astore 8
start local 8 5: getstatic org.h2.engine.Engine.DATABASES:Ljava/util/Map;
dup
astore 9
monitorenter
6: iload 6
ifne 7
aload 1
invokevirtual org.h2.engine.ConnectionInfo.isUnnamedInMemory:()Z
ifeq 9
7: StackMap locals: org.h2.engine.Engine org.h2.engine.ConnectionInfo int java.lang.String java.lang.String top int int org.h2.engine.User java.util.Map
StackMap stack:
aconst_null
astore 5
start local 5 8: goto 10
end local 5 9: StackMap locals:
StackMap stack:
getstatic org.h2.engine.Engine.DATABASES:Ljava/util/Map;
aload 4
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.h2.engine.Database
astore 5
start local 5 10: StackMap locals: org.h2.engine.Engine org.h2.engine.ConnectionInfo int java.lang.String java.lang.String org.h2.engine.Database int int org.h2.engine.User java.util.Map
StackMap stack:
aload 5
ifnonnull 24
11: iload 2
ifeq 13
aload 4
invokestatic org.h2.engine.Database.exists:(Ljava/lang/String;)Z
ifne 13
12: ldc 90146
aload 4
invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
13: StackMap locals:
StackMap stack:
new org.h2.engine.Database
dup
aload 1
aload 3
invokespecial org.h2.engine.Database.<init>:(Lorg/h2/engine/ConnectionInfo;Ljava/lang/String;)V
astore 5
14: iconst_1
istore 7
15: aload 5
invokevirtual org.h2.engine.Database.getAllUsers:()Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.isEmpty:()Z
ifeq 22
16: new org.h2.engine.User
dup
aload 5
aload 5
invokevirtual org.h2.engine.Database.allocateObjectId:()I
17: aload 1
invokevirtual org.h2.engine.ConnectionInfo.getUserName:()Ljava/lang/String;
iconst_0
18: invokespecial org.h2.engine.User.<init>:(Lorg/h2/engine/Database;ILjava/lang/String;Z)V
astore 8
19: aload 8
iconst_1
invokevirtual org.h2.engine.User.setAdmin:(Z)V
20: aload 8
aload 1
invokevirtual org.h2.engine.ConnectionInfo.getUserPasswordHash:()[B
invokevirtual org.h2.engine.User.setUserPasswordHash:([B)V
21: aload 5
aload 8
invokevirtual org.h2.engine.Database.setMasterUser:(Lorg/h2/engine/User;)V
22: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.h2.engine.ConnectionInfo.isUnnamedInMemory:()Z
ifne 24
23: getstatic org.h2.engine.Engine.DATABASES:Ljava/util/Map;
aload 4
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
24: StackMap locals:
StackMap stack:
aload 9
monitorexit
25: goto 28
end local 5 StackMap locals: org.h2.engine.Engine org.h2.engine.ConnectionInfo int java.lang.String java.lang.String top int int org.h2.engine.User java.util.Map
StackMap stack: java.lang.Throwable
26: aload 9
monitorexit
27: athrow
start local 5 28: StackMap locals: org.h2.engine.Engine org.h2.engine.ConnectionInfo int java.lang.String java.lang.String org.h2.engine.Database int int org.h2.engine.User
StackMap stack:
iload 7
ifeq 30
29: aload 5
invokevirtual org.h2.engine.Database.opened:()V
30: StackMap locals:
StackMap stack:
aload 5
invokevirtual org.h2.engine.Database.isClosing:()Z
ifeq 32
31: aconst_null
areturn
32: StackMap locals:
StackMap stack:
aload 8
ifnonnull 54
33: aload 5
aload 3
aload 1
invokevirtual org.h2.engine.ConnectionInfo.getFilePasswordHash:()[B
invokevirtual org.h2.engine.Database.validateFilePasswordHash:(Ljava/lang/String;[B)Z
ifeq 52
34: aload 1
ldc "AUTHREALM"
invokevirtual org.h2.engine.ConnectionInfo.getProperty:(Ljava/lang/String;)Ljava/lang/String;
ifnonnull 40
35: aload 5
aload 1
invokevirtual org.h2.engine.ConnectionInfo.getUserName:()Ljava/lang/String;
invokevirtual org.h2.engine.Database.findUser:(Ljava/lang/String;)Lorg/h2/engine/User;
astore 8
36: aload 8
ifnull 52
37: aload 8
aload 1
invokevirtual org.h2.engine.ConnectionInfo.getUserPasswordHash:()[B
invokevirtual org.h2.engine.User.validateUserPasswordHash:([B)Z
ifne 52
38: aconst_null
astore 8
39: goto 52
40: StackMap locals:
StackMap stack:
aload 5
invokevirtual org.h2.engine.Database.getAuthenticator:()Lorg/h2/security/auth/Authenticator;
astore 9
start local 9 41: aload 9
ifnonnull 43
42: ldc 90144
aload 4
invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
43: StackMap locals: org.h2.security.auth.Authenticator
StackMap stack:
new org.h2.security.auth.AuthenticationInfo
dup
aload 1
invokespecial org.h2.security.auth.AuthenticationInfo.<init>:(Lorg/h2/engine/ConnectionInfo;)V
astore 10
start local 10 44: aload 5
invokevirtual org.h2.engine.Database.getAuthenticator:()Lorg/h2/security/auth/Authenticator;
aload 10
aload 5
invokeinterface org.h2.security.auth.Authenticator.authenticate:(Lorg/h2/security/auth/AuthenticationInfo;Lorg/h2/engine/Database;)Lorg/h2/engine/User;
astore 8
end local 10 45: goto 52
StackMap locals:
StackMap stack: org.h2.security.auth.AuthenticationException
46: astore 10
start local 10 47: aload 5
iconst_2
invokevirtual org.h2.engine.Database.getTrace:(I)Lorg/h2/message/Trace;
aload 10
48: new java.lang.StringBuilder
dup
ldc "an error occurred during authentication; user: \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
49: aload 1
invokevirtual org.h2.engine.ConnectionInfo.getUserName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
50: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
51: invokevirtual org.h2.message.Trace.error:(Ljava/lang/Throwable;Ljava/lang/String;)V
end local 10 end local 9 52: StackMap locals:
StackMap stack:
iload 7
ifeq 54
aload 8
ifnull 53
aload 8
invokevirtual org.h2.engine.User.isAdmin:()Z
ifne 54
53: StackMap locals:
StackMap stack:
aload 5
aconst_null
invokevirtual org.h2.engine.Database.setEventListener:(Lorg/h2/api/DatabaseEventListener;)V
54: StackMap locals:
StackMap stack:
aload 8
ifnonnull 61
55: sipush 28000
invokestatic org.h2.message.DbException.get:(I)Lorg/h2/message/DbException;
astore 9
start local 9 56: aload 5
iconst_2
invokevirtual org.h2.engine.Database.getTrace:(I)Lorg/h2/message/Trace;
aload 9
new java.lang.StringBuilder
dup
ldc "wrong user or password; user: \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
57: aload 1
invokevirtual org.h2.engine.ConnectionInfo.getUserName:()Ljava/lang/String;
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;
58: invokevirtual org.h2.message.Trace.error:(Ljava/lang/Throwable;Ljava/lang/String;)V
59: aload 5
aconst_null
invokevirtual org.h2.engine.Database.removeSession:(Lorg/h2/engine/Session;)V
60: aload 9
athrow
end local 9 61: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.h2.engine.ConnectionInfo.cleanAuthenticationInfo:()V
62: aload 1
aload 5
invokestatic org.h2.engine.Engine.checkClustering:(Lorg/h2/engine/ConnectionInfo;Lorg/h2/engine/Database;)V
63: aload 5
aload 8
invokevirtual org.h2.engine.Database.createSession:(Lorg/h2/engine/User;)Lorg/h2/engine/Session;
astore 9
start local 9 64: aload 9
ifnonnull 66
65: aconst_null
areturn
66: StackMap locals: org.h2.engine.Session
StackMap stack:
aload 1
ldc "JMX"
iconst_0
invokevirtual org.h2.engine.ConnectionInfo.getProperty:(Ljava/lang/String;Z)Z
ifeq 74
67: ldc "org.h2.jmx.DatabaseInfo.registerMBean"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 5
aastore
68: invokestatic org.h2.util.Utils.callStaticMethod:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
pop
69: goto 73
StackMap locals:
StackMap stack: java.lang.Exception
70: astore 10
start local 10 71: aload 5
aload 9
invokevirtual org.h2.engine.Database.removeSession:(Lorg/h2/engine/Session;)V
72: ldc 50100
aload 10
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "JMX"
aastore
invokestatic org.h2.message.DbException.get:(ILjava/lang/Throwable;[Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 10 73: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.h2.engine.Engine.jmx:Z
74: StackMap locals:
StackMap stack:
aload 9
areturn
end local 9 end local 8 end local 7 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 75 0 this Lorg/h2/engine/Engine;
0 75 1 ci Lorg/h2/engine/ConnectionInfo;
0 75 2 ifExists Z
0 75 3 cipher Ljava/lang/String;
1 75 4 name Ljava/lang/String;
8 9 5 database Lorg/h2/engine/Database;
10 26 5 database Lorg/h2/engine/Database;
28 75 5 database Lorg/h2/engine/Database;
3 75 6 openNew Z
4 75 7 opened Z
5 75 8 user Lorg/h2/engine/User;
41 52 9 authenticator Lorg/h2/security/auth/Authenticator;
44 45 10 authenticationInfo Lorg/h2/security/auth/AuthenticationInfo;
47 52 10 authenticationError Lorg/h2/security/auth/AuthenticationException;
56 61 9 er Lorg/h2/message/DbException;
64 75 9 session Lorg/h2/engine/Session;
71 73 10 e Ljava/lang/Exception;
Exception table:
from to target type
6 25 26 any
26 27 26 any
43 45 46 Class org.h2.security.auth.AuthenticationException
67 69 70 Class java.lang.Exception
MethodParameters:
Name Flags
ci
ifExists
cipher
public org.h2.engine.Session createSession(org.h2.engine.ConnectionInfo);
descriptor: (Lorg/h2/engine/ConnectionInfo;)Lorg/h2/engine/Session;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.h2.engine.Engine.INSTANCE:Lorg/h2/engine/Engine;
aload 1
invokevirtual org.h2.engine.Engine.createSessionAndValidate:(Lorg/h2/engine/ConnectionInfo;)Lorg/h2/engine/Session;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/engine/Engine;
0 1 1 ci Lorg/h2/engine/ConnectionInfo;
MethodParameters:
Name Flags
ci
private org.h2.engine.Session createSessionAndValidate(org.h2.engine.ConnectionInfo);
descriptor: (Lorg/h2/engine/ConnectionInfo;)Lorg/h2/engine/Session;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
ldc "FILE_LOCK"
aconst_null
invokevirtual org.h2.engine.ConnectionInfo.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 2: aload 3
invokestatic org.h2.store.FileLock.getFileLockMethod:(Ljava/lang/String;)Lorg/h2/store/FileLockMethod;
astore 4
start local 4 3: aload 4
getstatic org.h2.store.FileLockMethod.SERIALIZED:Lorg/h2/store/FileLockMethod;
if_acmpne 9
4: aload 1
ldc "OPEN_NEW"
ldc "TRUE"
invokevirtual org.h2.engine.ConnectionInfo.setProperty:(Ljava/lang/String;Ljava/lang/String;)V
5: aload 1
invokevirtual org.h2.engine.ConnectionInfo.clone:()Lorg/h2/engine/ConnectionInfo;
astore 2
6: goto 9
StackMap locals: org.h2.engine.Engine org.h2.engine.ConnectionInfo org.h2.engine.ConnectionInfo java.lang.String org.h2.store.FileLockMethod
StackMap stack: java.lang.CloneNotSupportedException
7: astore 5
start local 5 8: aload 5
invokestatic org.h2.message.DbException.convert:(Ljava/lang/Throwable;)Lorg/h2/message/DbException;
athrow
end local 5 9: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.h2.engine.Engine.openSession:(Lorg/h2/engine/ConnectionInfo;)Lorg/h2/engine/Session;
astore 5
start local 5 10: aload 0
iconst_1
invokevirtual org.h2.engine.Engine.validateUserAndPassword:(Z)V
11: aload 2
ifnull 13
12: aload 5
aload 2
invokevirtual org.h2.engine.Session.setConnectionInfo:(Lorg/h2/engine/ConnectionInfo;)V
13: StackMap locals: org.h2.engine.Session
StackMap stack:
aload 5
14: areturn
end local 5 end local 4 end local 3 end local 2 15: StackMap locals: org.h2.engine.Engine org.h2.engine.ConnectionInfo
StackMap stack: org.h2.message.DbException
astore 2
start local 2 16: aload 2
invokevirtual org.h2.message.DbException.getErrorCode:()I
sipush 28000
if_icmpne 18
17: aload 0
iconst_0
invokevirtual org.h2.engine.Engine.validateUserAndPassword:(Z)V
18: StackMap locals: org.h2.message.DbException
StackMap stack:
aload 2
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/h2/engine/Engine;
0 19 1 ci Lorg/h2/engine/ConnectionInfo;
1 15 2 backup Lorg/h2/engine/ConnectionInfo;
2 15 3 lockMethodName Ljava/lang/String;
3 15 4 fileLockMethod Lorg/h2/store/FileLockMethod;
8 9 5 e Ljava/lang/CloneNotSupportedException;
10 15 5 session Lorg/h2/engine/Session;
16 19 2 e Lorg/h2/message/DbException;
Exception table:
from to target type
5 6 7 Class java.lang.CloneNotSupportedException
0 14 15 Class org.h2.message.DbException
MethodParameters:
Name Flags
ci
private synchronized org.h2.engine.Session openSession(org.h2.engine.ConnectionInfo);
descriptor: (Lorg/h2/engine/ConnectionInfo;)Lorg/h2/engine/Session;
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=5, locals=17, args_size=2
start local 0 start local 1 0: aload 1
ldc "IFEXISTS"
iconst_0
invokevirtual org.h2.engine.ConnectionInfo.removeProperty:(Ljava/lang/String;Z)Z
istore 2
start local 2 1: aload 1
2: ldc "IGNORE_UNKNOWN_SETTINGS"
iconst_0
3: invokevirtual org.h2.engine.ConnectionInfo.removeProperty:(Ljava/lang/String;Z)Z
istore 3
start local 3 4: aload 1
ldc "CIPHER"
aconst_null
invokevirtual org.h2.engine.ConnectionInfo.removeProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 5: aload 1
ldc "INIT"
aconst_null
invokevirtual org.h2.engine.ConnectionInfo.removeProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 5
start local 5 6: invokestatic java.lang.System.nanoTime:()J
lstore 7
start local 7 7: StackMap locals: org.h2.engine.Engine org.h2.engine.ConnectionInfo int int java.lang.String java.lang.String top long
StackMap stack:
aload 0
aload 1
iload 2
aload 4
invokevirtual org.h2.engine.Engine.openSession:(Lorg/h2/engine/ConnectionInfo;ZLjava/lang/String;)Lorg/h2/engine/Session;
astore 6
start local 6 8: aload 6
ifnull 10
9: goto 18
10: StackMap locals: org.h2.engine.Engine org.h2.engine.ConnectionInfo int int java.lang.String java.lang.String org.h2.engine.Session long
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lload 7
lsub
ldc 60000000000
lcmp
ifle 14
11: ldc 90020
12: ldc "Waited for database closing longer than 1 minute"
13: invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
14: StackMap locals:
StackMap stack:
lconst_1
invokestatic java.lang.Thread.sleep:(J)V
15: goto 7
StackMap locals:
StackMap stack: java.lang.InterruptedException
16: pop
17: ldc 90121
invokestatic org.h2.message.DbException.get:(I)Lorg/h2/message/DbException;
athrow
18: StackMap locals:
StackMap stack:
aload 6
dup
astore 9
monitorenter
19: aload 6
iconst_1
invokevirtual org.h2.engine.Session.setAllowLiterals:(Z)V
20: invokestatic org.h2.engine.DbSettings.getDefaultSettings:()Lorg/h2/engine/DbSettings;
astore 10
start local 10 21: aload 1
invokevirtual org.h2.engine.ConnectionInfo.getKeys:()[Ljava/lang/String;
dup
astore 14
arraylength
istore 13
iconst_0
istore 12
goto 45
StackMap locals: org.h2.engine.Engine org.h2.engine.ConnectionInfo int int java.lang.String java.lang.String org.h2.engine.Session long org.h2.engine.Session org.h2.engine.DbSettings top int int java.lang.String[]
StackMap stack:
22: aload 14
iload 12
aaload
astore 11
start local 11 23: aload 10
aload 11
invokevirtual org.h2.engine.DbSettings.containsKey:(Ljava/lang/String;)Z
ifeq 25
24: goto 44
25: StackMap locals: org.h2.engine.Engine org.h2.engine.ConnectionInfo int int java.lang.String java.lang.String org.h2.engine.Session long org.h2.engine.Session org.h2.engine.DbSettings java.lang.String int int java.lang.String[]
StackMap stack:
aload 1
aload 11
invokevirtual org.h2.engine.ConnectionInfo.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 15
start local 15 26: aload 11
iconst_0
iconst_0
invokestatic org.h2.util.ParserUtil.isSimpleIdentifier:(Ljava/lang/String;ZZ)Z
ifne 28
27: ldc 90113
aload 11
invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
28: StackMap locals: java.lang.String
StackMap stack:
aload 6
29: new java.lang.StringBuilder
dup
ldc "SET "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 11
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 32
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 15
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
30: ldc 2147483647
31: invokevirtual org.h2.engine.Session.prepareCommand:(Ljava/lang/String;I)Lorg/h2/command/CommandInterface;
astore 16
start local 16 32: aload 16
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokeinterface org.h2.command.CommandInterface.executeUpdate:(Ljava/lang/Object;)Lorg/h2/result/ResultWithGeneratedKeys;
pop
end local 16 33: goto 44
StackMap locals:
StackMap stack: org.h2.message.DbException
34: astore 16
start local 16 35: aload 16
invokevirtual org.h2.message.DbException.getErrorCode:()I
ldc 90040
if_icmpne 40
36: aload 6
invokevirtual org.h2.engine.Session.getTrace:()Lorg/h2/message/Trace;
aload 16
new java.lang.StringBuilder
dup
ldc "admin rights required; user: \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
37: aload 1
invokevirtual org.h2.engine.ConnectionInfo.getUserName:()Ljava/lang/String;
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;
38: invokevirtual org.h2.message.Trace.error:(Ljava/lang/Throwable;Ljava/lang/String;)V
39: goto 41
40: StackMap locals: org.h2.message.DbException
StackMap stack:
aload 6
invokevirtual org.h2.engine.Session.getTrace:()Lorg/h2/message/Trace;
aload 16
ldc ""
invokevirtual org.h2.message.Trace.error:(Ljava/lang/Throwable;Ljava/lang/String;)V
41: StackMap locals:
StackMap stack:
iload 3
ifne 44
42: aload 6
invokevirtual org.h2.engine.Session.close:()V
43: aload 16
athrow
end local 16 end local 15 end local 11 44: StackMap locals: org.h2.engine.Engine org.h2.engine.ConnectionInfo int int java.lang.String java.lang.String org.h2.engine.Session long org.h2.engine.Session org.h2.engine.DbSettings top int int java.lang.String[]
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
45: iload 12
iload 13
if_icmplt 22
46: aload 5
ifnull 56
47: aload 6
aload 5
48: ldc 2147483647
49: invokevirtual org.h2.engine.Session.prepareCommand:(Ljava/lang/String;I)Lorg/h2/command/CommandInterface;
astore 11
start local 11 50: aload 11
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokeinterface org.h2.command.CommandInterface.executeUpdate:(Ljava/lang/Object;)Lorg/h2/result/ResultWithGeneratedKeys;
pop
end local 11 51: goto 56
StackMap locals: org.h2.engine.Engine org.h2.engine.ConnectionInfo int int java.lang.String java.lang.String org.h2.engine.Session long org.h2.engine.Session org.h2.engine.DbSettings
StackMap stack: org.h2.message.DbException
52: astore 11
start local 11 53: iload 3
ifne 56
54: aload 6
invokevirtual org.h2.engine.Session.close:()V
55: aload 11
athrow
end local 11 56: StackMap locals:
StackMap stack:
aload 6
iconst_0
invokevirtual org.h2.engine.Session.setAllowLiterals:(Z)V
57: aload 6
iconst_1
invokevirtual org.h2.engine.Session.commit:(Z)V
end local 10 58: aload 9
monitorexit
59: goto 62
StackMap locals: org.h2.engine.Engine org.h2.engine.ConnectionInfo int int java.lang.String java.lang.String org.h2.engine.Session long org.h2.engine.Session
StackMap stack: java.lang.Throwable
60: aload 9
monitorexit
61: athrow
62: StackMap locals:
StackMap stack:
aload 6
areturn
end local 7 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 63 0 this Lorg/h2/engine/Engine;
0 63 1 ci Lorg/h2/engine/ConnectionInfo;
1 63 2 ifExists Z
4 63 3 ignoreUnknownSetting Z
5 63 4 cipher Ljava/lang/String;
6 63 5 init Ljava/lang/String;
8 63 6 session Lorg/h2/engine/Session;
7 63 7 start J
21 58 10 defaultSettings Lorg/h2/engine/DbSettings;
23 44 11 setting Ljava/lang/String;
26 44 15 value Ljava/lang/String;
32 33 16 command Lorg/h2/command/CommandInterface;
35 44 16 e Lorg/h2/message/DbException;
50 51 11 command Lorg/h2/command/CommandInterface;
53 56 11 e Lorg/h2/message/DbException;
Exception table:
from to target type
14 15 16 Class java.lang.InterruptedException
28 33 34 Class org.h2.message.DbException
47 51 52 Class org.h2.message.DbException
19 59 60 any
60 61 60 any
MethodParameters:
Name Flags
ci
private static void checkClustering(org.h2.engine.ConnectionInfo, org.h2.engine.Database);
descriptor: (Lorg/h2/engine/ConnectionInfo;Lorg/h2/engine/Database;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
bipush 13
aconst_null
invokevirtual org.h2.engine.ConnectionInfo.getProperty:(ILjava/lang/String;)Ljava/lang/String;
astore 2
start local 2 1: ldc "''"
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 3
2: return
3: StackMap locals: java.lang.String
StackMap stack:
aload 1
invokevirtual org.h2.engine.Database.getCluster:()Ljava/lang/String;
astore 3
start local 3 4: ldc "''"
aload 3
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 13
5: ldc "TRUE"
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 13
6: aload 2
aload 3
invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 13
7: aload 3
ldc "''"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
8: ldc 90093
9: invokestatic org.h2.message.DbException.get:(I)Lorg/h2/message/DbException;
athrow
10: StackMap locals: java.lang.String
StackMap stack:
ldc 90094
11: aload 3
12: invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
13: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 ci Lorg/h2/engine/ConnectionInfo;
0 14 1 database Lorg/h2/engine/Database;
1 14 2 clusterSession Ljava/lang/String;
4 14 3 clusterDb Ljava/lang/String;
MethodParameters:
Name Flags
ci
database
void close(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.engine.Engine.jmx:Z
ifeq 5
1: ldc "org.h2.jmx.DatabaseInfo.unregisterMBean"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic org.h2.util.Utils.callStaticMethod:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
pop
2: goto 5
StackMap locals:
StackMap stack: java.lang.Exception
3: astore 2
start local 2 4: ldc 50100
aload 2
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "JMX"
aastore
invokestatic org.h2.message.DbException.get:(ILjava/lang/Throwable;[Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 2 5: StackMap locals:
StackMap stack:
getstatic org.h2.engine.Engine.DATABASES:Ljava/util/Map;
dup
astore 2
monitorenter
6: getstatic org.h2.engine.Engine.DATABASES:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
7: aload 2
monitorexit
8: goto 11
StackMap locals: org.h2.engine.Engine java.lang.String java.util.Map
StackMap stack: java.lang.Throwable
9: aload 2
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/h2/engine/Engine;
0 12 1 name Ljava/lang/String;
4 5 2 e Ljava/lang/Exception;
Exception table:
from to target type
1 2 3 Class java.lang.Exception
6 8 9 any
9 10 9 any
MethodParameters:
Name Flags
name
private void validateUserAndPassword(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: getstatic org.h2.engine.SysProperties.DELAY_WRONG_PASSWORD_MIN:I
istore 2
start local 2 1: iload 1
ifeq 14
2: aload 0
getfield org.h2.engine.Engine.wrongPasswordDelay:J
lstore 3
start local 3 3: lload 3
iload 2
i2l
lcmp
ifle 30
lload 3
lconst_0
lcmp
ifle 30
4: getstatic org.h2.engine.Engine.INSTANCE:Lorg/h2/engine/Engine;
dup
astore 5
monitorenter
5: lload 3
l2i
invokestatic org.h2.util.MathUtils.secureRandomInt:(I)I
i2l
lstore 3
6: lload 3
invokestatic java.lang.Thread.sleep:(J)V
7: goto 9
StackMap locals: org.h2.engine.Engine int int long org.h2.engine.Engine
StackMap stack: java.lang.InterruptedException
8: pop
9: StackMap locals:
StackMap stack:
aload 0
iload 2
i2l
putfield org.h2.engine.Engine.wrongPasswordDelay:J
10: aload 5
monitorexit
11: goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 5
monitorexit
13: athrow
end local 3 14: StackMap locals:
StackMap stack:
getstatic org.h2.engine.Engine.INSTANCE:Lorg/h2/engine/Engine;
dup
astore 3
monitorenter
15: aload 0
getfield org.h2.engine.Engine.wrongPasswordDelay:J
lstore 4
start local 4 16: getstatic org.h2.engine.SysProperties.DELAY_WRONG_PASSWORD_MAX:I
istore 6
start local 6 17: iload 6
ifgt 19
18: ldc 2147483647
istore 6
19: StackMap locals: org.h2.engine.Engine long int
StackMap stack:
aload 0
dup
getfield org.h2.engine.Engine.wrongPasswordDelay:J
aload 0
getfield org.h2.engine.Engine.wrongPasswordDelay:J
ladd
putfield org.h2.engine.Engine.wrongPasswordDelay:J
20: aload 0
getfield org.h2.engine.Engine.wrongPasswordDelay:J
iload 6
i2l
lcmp
ifgt 21
aload 0
getfield org.h2.engine.Engine.wrongPasswordDelay:J
lconst_0
lcmp
ifge 22
21: StackMap locals:
StackMap stack:
aload 0
iload 6
i2l
putfield org.h2.engine.Engine.wrongPasswordDelay:J
22: StackMap locals:
StackMap stack:
iload 2
ifle 27
23: lload 4
invokestatic org.h2.util.MathUtils.secureRandomLong:()J
ldc 100
lrem
invokestatic java.lang.Math.abs:(J)J
ladd
lstore 4
24: lload 4
invokestatic java.lang.Thread.sleep:(J)V
25: goto 27
StackMap locals:
StackMap stack: java.lang.InterruptedException
26: pop
27: StackMap locals:
StackMap stack:
sipush 28000
invokestatic org.h2.message.DbException.get:(I)Lorg/h2/message/DbException;
athrow
end local 6 end local 4 28: StackMap locals: org.h2.engine.Engine int int org.h2.engine.Engine
StackMap stack: java.lang.Throwable
aload 3
monitorexit
29: athrow
30: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lorg/h2/engine/Engine;
0 31 1 correct Z
1 31 2 min I
3 14 3 delay J
16 28 4 delay J
17 28 6 max I
Exception table:
from to target type
6 7 8 Class java.lang.InterruptedException
5 11 12 any
12 13 12 any
24 25 26 Class java.lang.InterruptedException
15 29 28 any
MethodParameters:
Name Flags
correct
public org.h2.engine.SessionInterface createSession(org.h2.engine.ConnectionInfo);
descriptor: (Lorg/h2/engine/ConnectionInfo;)Lorg/h2/engine/SessionInterface;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual org.h2.engine.Engine.createSession:(Lorg/h2/engine/ConnectionInfo;)Lorg/h2/engine/Session;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.sql.SQLException
}
SourceFile: "Engine.java"