public class org.h2.util.JdbcUtils
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.h2.util.JdbcUtils
super_class: java.lang.Object
{
public static org.h2.api.JavaObjectSerializer serializer;
descriptor: Lorg/h2/api/JavaObjectSerializer;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
public static org.h2.api.CustomDataTypesHandler customDataTypesHandler;
descriptor: Lorg/h2/api/CustomDataTypesHandler;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
private static final java.lang.String[] DRIVERS;
descriptor: [Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static boolean allowAllClasses;
descriptor: Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.util.HashSet<java.lang.String> allowedClassNames;
descriptor: Ljava/util/HashSet;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/HashSet<Ljava/lang/String;>;
private static java.util.ArrayList<org.h2.util.Utils$ClassFactory> userClassFactories;
descriptor: Ljava/util/ArrayList;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/ArrayList<Lorg/h2/util/Utils$ClassFactory;>;
private static java.lang.String[] allowedClassNamePrefixes;
descriptor: [Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=0
0: bipush 50
anewarray java.lang.String
dup
iconst_0
1: ldc "h2:"
aastore
dup
iconst_1
ldc "org.h2.Driver"
aastore
dup
iconst_2
2: ldc "Cache:"
aastore
dup
iconst_3
ldc "com.intersys.jdbc.CacheDriver"
aastore
dup
iconst_4
3: ldc "daffodilDB://"
aastore
dup
iconst_5
ldc "in.co.daffodil.db.rmi.RmiDaffodilDBDriver"
aastore
dup
bipush 6
4: ldc "daffodil"
aastore
dup
bipush 7
ldc "in.co.daffodil.db.jdbc.DaffodilDBDriver"
aastore
dup
bipush 8
5: ldc "db2:"
aastore
dup
bipush 9
ldc "com.ibm.db2.jcc.DB2Driver"
aastore
dup
bipush 10
6: ldc "derby:net:"
aastore
dup
bipush 11
ldc "org.apache.derby.jdbc.ClientDriver"
aastore
dup
bipush 12
7: ldc "derby://"
aastore
dup
bipush 13
ldc "org.apache.derby.jdbc.ClientDriver"
aastore
dup
bipush 14
8: ldc "derby:"
aastore
dup
bipush 15
ldc "org.apache.derby.jdbc.EmbeddedDriver"
aastore
dup
bipush 16
9: ldc "FrontBase:"
aastore
dup
bipush 17
ldc "com.frontbase.jdbc.FBJDriver"
aastore
dup
bipush 18
10: ldc "firebirdsql:"
aastore
dup
bipush 19
ldc "org.firebirdsql.jdbc.FBDriver"
aastore
dup
bipush 20
11: ldc "hsqldb:"
aastore
dup
bipush 21
ldc "org.hsqldb.jdbcDriver"
aastore
dup
bipush 22
12: ldc "informix-sqli:"
aastore
dup
bipush 23
ldc "com.informix.jdbc.IfxDriver"
aastore
dup
bipush 24
13: ldc "jtds:"
aastore
dup
bipush 25
ldc "net.sourceforge.jtds.jdbc.Driver"
aastore
dup
bipush 26
14: ldc "microsoft:"
aastore
dup
bipush 27
ldc "com.microsoft.jdbc.sqlserver.SQLServerDriver"
aastore
dup
bipush 28
15: ldc "mimer:"
aastore
dup
bipush 29
ldc "com.mimer.jdbc.Driver"
aastore
dup
bipush 30
16: ldc "mysql:"
aastore
dup
bipush 31
ldc "com.mysql.jdbc.Driver"
aastore
dup
bipush 32
17: ldc "odbc:"
aastore
dup
bipush 33
ldc "sun.jdbc.odbc.JdbcOdbcDriver"
aastore
dup
bipush 34
18: ldc "oracle:"
aastore
dup
bipush 35
ldc "oracle.jdbc.driver.OracleDriver"
aastore
dup
bipush 36
19: ldc "pervasive:"
aastore
dup
bipush 37
ldc "com.pervasive.jdbc.v2.Driver"
aastore
dup
bipush 38
20: ldc "pointbase:micro:"
aastore
dup
bipush 39
ldc "com.pointbase.me.jdbc.jdbcDriver"
aastore
dup
bipush 40
21: ldc "pointbase:"
aastore
dup
bipush 41
ldc "com.pointbase.jdbc.jdbcUniversalDriver"
aastore
dup
bipush 42
22: ldc "postgresql:"
aastore
dup
bipush 43
ldc "org.postgresql.Driver"
aastore
dup
bipush 44
23: ldc "sybase:"
aastore
dup
bipush 45
ldc "com.sybase.jdbc3.jdbc.SybDriver"
aastore
dup
bipush 46
24: ldc "sqlserver:"
aastore
dup
bipush 47
ldc "com.microsoft.sqlserver.jdbc.SQLServerDriver"
aastore
dup
bipush 48
25: ldc "teradata:"
aastore
dup
bipush 49
ldc "com.ncr.teradata.TeraDriver"
aastore
26: putstatic org.h2.util.JdbcUtils.DRIVERS:[Ljava/lang/String;
27: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
28: putstatic org.h2.util.JdbcUtils.userClassFactories:Ljava/util/ArrayList;
29: getstatic org.h2.engine.SysProperties.JAVA_OBJECT_SERIALIZER:Ljava/lang/String;
astore 0
start local 0 30: aload 0
ifnull 35
31: aload 0
invokestatic org.h2.util.JdbcUtils.loadUserClass:(Ljava/lang/String;)Ljava/lang/Class;
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.h2.api.JavaObjectSerializer
putstatic org.h2.util.JdbcUtils.serializer:Lorg/h2/api/JavaObjectSerializer;
32: goto 35
StackMap locals: java.lang.String
StackMap stack: java.lang.Exception
33: astore 1
start local 1 34: aload 1
invokestatic org.h2.message.DbException.convert:(Ljava/lang/Throwable;)Lorg/h2/message/DbException;
athrow
end local 1 35: StackMap locals:
StackMap stack:
getstatic org.h2.engine.SysProperties.CUSTOM_DATA_TYPES_HANDLER:Ljava/lang/String;
astore 1
start local 1 36: aload 1
ifnull 42
37: aload 1
invokestatic org.h2.util.JdbcUtils.loadUserClass:(Ljava/lang/String;)Ljava/lang/Class;
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.h2.api.CustomDataTypesHandler
38: putstatic org.h2.util.JdbcUtils.customDataTypesHandler:Lorg/h2/api/CustomDataTypesHandler;
39: goto 42
StackMap locals: java.lang.String java.lang.String
StackMap stack: java.lang.Exception
40: astore 2
start local 2 41: aload 2
invokestatic org.h2.message.DbException.convert:(Ljava/lang/Throwable;)Lorg/h2/message/DbException;
athrow
end local 2 end local 1 end local 0 42: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
30 42 0 clazz Ljava/lang/String;
34 35 1 e Ljava/lang/Exception;
36 42 1 customTypeHandlerClass Ljava/lang/String;
41 42 2 e Ljava/lang/Exception;
Exception table:
from to target type
31 32 33 Class java.lang.Exception
37 39 40 Class java.lang.Exception
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/util/JdbcUtils;
public static void addClassFactory(org.h2.util.Utils$ClassFactory);
descriptor: (Lorg/h2/util/Utils$ClassFactory;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic org.h2.util.JdbcUtils.getUserClassFactories:()Ljava/util/ArrayList;
aload 0
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 classFactory Lorg/h2/util/Utils$ClassFactory;
MethodParameters:
Name Flags
classFactory
public static void removeClassFactory(org.h2.util.Utils$ClassFactory);
descriptor: (Lorg/h2/util/Utils$ClassFactory;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic org.h2.util.JdbcUtils.getUserClassFactories:()Ljava/util/ArrayList;
aload 0
invokevirtual java.util.ArrayList.remove:(Ljava/lang/Object;)Z
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 classFactory Lorg/h2/util/Utils$ClassFactory;
MethodParameters:
Name Flags
classFactory
private static java.util.ArrayList<org.h2.util.Utils$ClassFactory> getUserClassFactories();
descriptor: ()Ljava/util/ArrayList;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: getstatic org.h2.util.JdbcUtils.userClassFactories:Ljava/util/ArrayList;
ifnonnull 2
1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putstatic org.h2.util.JdbcUtils.userClassFactories:Ljava/util/ArrayList;
2: StackMap locals:
StackMap stack:
getstatic org.h2.util.JdbcUtils.userClassFactories:Ljava/util/ArrayList;
areturn
LocalVariableTable:
Start End Slot Name Signature
Signature: ()Ljava/util/ArrayList<Lorg/h2/util/Utils$ClassFactory;>;
public static <Z> java.lang.Class<Z> loadUserClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=9, args_size=1
start local 0 0: getstatic org.h2.util.JdbcUtils.allowedClassNames:Ljava/util/HashSet;
ifnonnull 19
1: getstatic org.h2.engine.SysProperties.ALLOWED_CLASSES:Ljava/lang/String;
astore 1
start local 1 2: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 3: iconst_0
istore 3
start local 3 4: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 4
start local 4 5: aload 1
bipush 44
iconst_1
invokestatic org.h2.util.StringUtils.arraySplit:(Ljava/lang/String;CZ)[Ljava/lang/String;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 15
StackMap locals: java.lang.String java.lang.String java.util.ArrayList int java.util.HashSet top int int java.lang.String[]
StackMap stack:
6: aload 8
iload 6
aaload
astore 5
start local 5 7: aload 5
ldc "*"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
8: iconst_1
istore 3
9: goto 14
StackMap locals: java.lang.String java.lang.String java.util.ArrayList int java.util.HashSet java.lang.String int int java.lang.String[]
StackMap stack:
10: aload 5
ldc "*"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 13
11: aload 2
aload 5
iconst_0
aload 5
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
12: goto 14
13: StackMap locals:
StackMap stack:
aload 4
aload 5
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
end local 5 14: StackMap locals: java.lang.String java.lang.String java.util.ArrayList int java.util.HashSet top int int java.lang.String[]
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
15: iload 6
iload 7
if_icmplt 6
16: aload 2
iconst_0
anewarray java.lang.String
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
putstatic org.h2.util.JdbcUtils.allowedClassNamePrefixes:[Ljava/lang/String;
17: iload 3
putstatic org.h2.util.JdbcUtils.allowAllClasses:Z
18: aload 4
putstatic org.h2.util.JdbcUtils.allowedClassNames:Ljava/util/HashSet;
end local 4 end local 3 end local 2 end local 1 19: StackMap locals: java.lang.String
StackMap stack:
getstatic org.h2.util.JdbcUtils.allowAllClasses:Z
ifne 30
getstatic org.h2.util.JdbcUtils.allowedClassNames:Ljava/util/HashSet;
aload 0
invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
ifne 30
20: iconst_0
istore 1
start local 1 21: getstatic org.h2.util.JdbcUtils.allowedClassNamePrefixes:[Ljava/lang/String;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 26
StackMap locals: java.lang.String int top int int java.lang.String[]
StackMap stack:
22: aload 5
iload 3
aaload
astore 2
start local 2 23: aload 0
aload 2
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 25
24: iconst_1
istore 1
end local 2 25: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
26: iload 3
iload 4
if_icmplt 22
27: iload 1
ifne 30
28: ldc 90134
aload 0
29: invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 1 30: StackMap locals: java.lang.String
StackMap stack:
invokestatic org.h2.util.JdbcUtils.getUserClassFactories:()Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 2
goto 40
StackMap locals: java.lang.String top java.util.Iterator
StackMap stack:
31: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.h2.util.Utils$ClassFactory
astore 1
start local 1 32: aload 1
aload 0
invokeinterface org.h2.util.Utils$ClassFactory.match:(Ljava/lang/String;)Z
ifeq 40
33: aload 1
aload 0
invokeinterface org.h2.util.Utils$ClassFactory.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 3
start local 3 34: aload 3
ifnull 40
35: aload 3
36: areturn
end local 3 37: StackMap locals: java.lang.String org.h2.util.Utils$ClassFactory java.util.Iterator
StackMap stack: java.lang.Exception
astore 3
start local 3 38: ldc 90086
aload 3
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 0
aastore
39: invokestatic org.h2.message.DbException.get:(ILjava/lang/Throwable;[Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 3 end local 1 40: StackMap locals: java.lang.String top java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 31
41: aload 0
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
42: areturn
43: StackMap locals: java.lang.String
StackMap stack: java.lang.ClassNotFoundException
astore 1
start local 1 44: aload 0
iconst_1
45: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
46: invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
47: areturn
48: StackMap locals: java.lang.String java.lang.ClassNotFoundException
StackMap stack: java.lang.Exception
pop
49: ldc 90086
aload 1
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 0
aastore
50: invokestatic org.h2.message.DbException.get:(ILjava/lang/Throwable;[Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 1 51: StackMap locals: java.lang.String
StackMap stack: java.lang.NoClassDefFoundError
astore 1
start local 1 52: ldc 90086
aload 1
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 0
aastore
53: invokestatic org.h2.message.DbException.get:(ILjava/lang/Throwable;[Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 1 54: StackMap locals:
StackMap stack: java.lang.Error
astore 1
start local 1 55: ldc 50000
aload 1
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 0
aastore
56: invokestatic org.h2.message.DbException.get:(ILjava/lang/Throwable;[Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 57 0 className Ljava/lang/String;
2 19 1 s Ljava/lang/String;
3 19 2 prefixes Ljava/util/ArrayList<Ljava/lang/String;>;
4 19 3 allowAll Z
5 19 4 classNames Ljava/util/HashSet<Ljava/lang/String;>;
7 14 5 p Ljava/lang/String;
21 30 1 allowed Z
23 25 2 s Ljava/lang/String;
32 40 1 classFactory Lorg/h2/util/Utils$ClassFactory;
34 37 3 userClass Ljava/lang/Class<*>;
38 40 3 e Ljava/lang/Exception;
44 51 1 e Ljava/lang/ClassNotFoundException;
52 54 1 e Ljava/lang/NoClassDefFoundError;
55 57 1 e Ljava/lang/Error;
Exception table:
from to target type
33 36 37 Class java.lang.Exception
41 42 43 Class java.lang.ClassNotFoundException
44 47 48 Class java.lang.Exception
41 42 51 Class java.lang.NoClassDefFoundError
41 42 54 Class java.lang.Error
Signature: <Z:Ljava/lang/Object;>(Ljava/lang/String;)Ljava/lang/Class<TZ;>;
MethodParameters:
Name Flags
className
public static void closeSilently(java.sql.Statement);
descriptor: (Ljava/sql/Statement;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnull 4
1: aload 0
invokeinterface java.sql.Statement.close:()V
2: goto 4
StackMap locals:
StackMap stack: java.sql.SQLException
3: pop
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 stat Ljava/sql/Statement;
Exception table:
from to target type
1 2 3 Class java.sql.SQLException
MethodParameters:
Name Flags
stat
public static void closeSilently(java.sql.Connection);
descriptor: (Ljava/sql/Connection;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnull 4
1: aload 0
invokeinterface java.sql.Connection.close:()V
2: goto 4
StackMap locals:
StackMap stack: java.sql.SQLException
3: pop
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 conn Ljava/sql/Connection;
Exception table:
from to target type
1 2 3 Class java.sql.SQLException
MethodParameters:
Name Flags
conn
public static void closeSilently(java.sql.ResultSet);
descriptor: (Ljava/sql/ResultSet;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnull 4
1: aload 0
invokeinterface java.sql.ResultSet.close:()V
2: goto 4
StackMap locals:
StackMap stack: java.sql.SQLException
3: pop
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 rs Ljava/sql/ResultSet;
Exception table:
from to target type
1 2 3 Class java.sql.SQLException
MethodParameters:
Name Flags
rs
public static java.sql.Connection getConnection(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/sql/Connection;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.util.Properties
dup
invokespecial java.util.Properties.<init>:()V
astore 4
start local 4 1: aload 2
ifnull 3
2: aload 4
ldc "user"
aload 2
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
3: StackMap locals: java.util.Properties
StackMap stack:
aload 3
ifnull 5
4: aload 4
ldc "password"
aload 3
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
5: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 4
invokestatic org.h2.util.JdbcUtils.getConnection:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 driver Ljava/lang/String;
0 6 1 url Ljava/lang/String;
0 6 2 user Ljava/lang/String;
0 6 3 password Ljava/lang/String;
1 6 4 prop Ljava/util/Properties;
Exceptions:
throws java.sql.SQLException
MethodParameters:
Name Flags
driver
url
user
password
public static java.sql.Connection getConnection(java.lang.String, java.lang.String, java.util.Properties);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokestatic org.h2.util.StringUtils.isNullOrEmpty:(Ljava/lang/String;)Z
ifeq 3
1: aload 1
invokestatic org.h2.util.JdbcUtils.load:(Ljava/lang/String;)V
2: goto 23
3: StackMap locals:
StackMap stack:
aload 0
invokestatic org.h2.util.JdbcUtils.loadUserClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 3
start local 3 4: ldc Ljava/sql/Driver;
aload 3
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 11
5: aload 3
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.sql.Driver
astore 4
start local 4 6: aload 4
aload 1
aload 2
invokeinterface java.sql.Driver.connect:(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;
astore 5
start local 5 7: aload 5
ifnull 10
8: aload 5
9: areturn
10: StackMap locals: java.lang.Class java.sql.Driver java.sql.Connection
StackMap stack:
new java.sql.SQLException
dup
new java.lang.StringBuilder
dup
ldc "Driver "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " is not suitable for "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc "08001"
invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
athrow
end local 5 end local 4 11: StackMap locals:
StackMap stack:
ldc Ljavax/naming/Context;
aload 3
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 23
12: aload 3
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast javax.naming.Context
astore 4
start local 4 13: aload 4
aload 1
invokeinterface javax.naming.Context.lookup:(Ljava/lang/String;)Ljava/lang/Object;
checkcast javax.sql.DataSource
astore 5
start local 5 14: aload 2
ldc "user"
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 6
start local 6 15: aload 2
ldc "password"
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 7
start local 7 16: aload 6
invokestatic org.h2.util.StringUtils.isNullOrEmpty:(Ljava/lang/String;)Z
ifeq 19
aload 7
invokestatic org.h2.util.StringUtils.isNullOrEmpty:(Ljava/lang/String;)Z
ifeq 19
17: aload 5
invokeinterface javax.sql.DataSource.getConnection:()Ljava/sql/Connection;
18: areturn
19: StackMap locals: java.lang.String java.lang.String java.util.Properties java.lang.Class javax.naming.Context javax.sql.DataSource java.lang.String java.lang.String
StackMap stack:
aload 5
aload 6
aload 7
invokeinterface javax.sql.DataSource.getConnection:(Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
20: areturn
end local 7 end local 6 end local 5 end local 4 21: StackMap locals: java.lang.String java.lang.String java.util.Properties java.lang.Class
StackMap stack: java.lang.Exception
astore 4
start local 4 22: aload 4
invokestatic org.h2.message.DbException.toSQLException:(Ljava/lang/Throwable;)Ljava/sql/SQLException;
athrow
end local 4 end local 3 23: StackMap locals:
StackMap stack:
aload 1
aload 2
invokestatic java.sql.DriverManager.getConnection:(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 driver Ljava/lang/String;
0 24 1 url Ljava/lang/String;
0 24 2 prop Ljava/util/Properties;
4 23 3 d Ljava/lang/Class<*>;
6 11 4 driverInstance Ljava/sql/Driver;
7 11 5 connection Ljava/sql/Connection;
13 21 4 context Ljavax/naming/Context;
14 21 5 ds Ljavax/sql/DataSource;
15 21 6 user Ljava/lang/String;
16 21 7 password Ljava/lang/String;
22 23 4 e Ljava/lang/Exception;
Exception table:
from to target type
4 9 21 Class java.lang.Exception
10 18 21 Class java.lang.Exception
19 20 21 Class java.lang.Exception
Exceptions:
throws java.sql.SQLException
MethodParameters:
Name Flags
driver
url
prop
public static java.lang.String getDriver(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
ldc "jdbc:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 9
1: aload 0
ldc "jdbc:"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 0
2: iconst_0
istore 1
start local 1 3: goto 8
4: StackMap locals: int
StackMap stack:
getstatic org.h2.util.JdbcUtils.DRIVERS:[Ljava/lang/String;
iload 1
aaload
astore 2
start local 2 5: aload 0
aload 2
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 7
6: getstatic org.h2.util.JdbcUtils.DRIVERS:[Ljava/lang/String;
iload 1
iconst_1
iadd
aaload
areturn
end local 2 7: StackMap locals:
StackMap stack:
iinc 1 2
StackMap locals:
StackMap stack:
8: iload 1
getstatic org.h2.util.JdbcUtils.DRIVERS:[Ljava/lang/String;
arraylength
if_icmplt 4
end local 1 9: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 url Ljava/lang/String;
3 9 1 i I
5 7 2 prefix Ljava/lang/String;
MethodParameters:
Name Flags
url
public static void load(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokestatic org.h2.util.JdbcUtils.getDriver:(Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
invokestatic org.h2.util.JdbcUtils.loadUserClass:(Ljava/lang/String;)Ljava/lang/Class;
pop
3: StackMap locals: java.lang.String
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 url Ljava/lang/String;
1 4 1 driver Ljava/lang/String;
MethodParameters:
Name Flags
url
public static byte[] serialize(java.lang.Object, org.h2.store.DataHandler);
descriptor: (Ljava/lang/Object;Lorg/h2/store/DataHandler;)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
ifnull 3
2: aload 1
invokeinterface org.h2.store.DataHandler.getJavaObjectSerializer:()Lorg/h2/api/JavaObjectSerializer;
astore 2
3: StackMap locals: org.h2.api.JavaObjectSerializer
StackMap stack:
aload 2
ifnull 6
4: aload 2
aload 0
invokeinterface org.h2.api.JavaObjectSerializer.serialize:(Ljava/lang/Object;)[B
5: areturn
6: StackMap locals:
StackMap stack:
getstatic org.h2.util.JdbcUtils.serializer:Lorg/h2/api/JavaObjectSerializer;
ifnull 9
7: getstatic org.h2.util.JdbcUtils.serializer:Lorg/h2/api/JavaObjectSerializer;
aload 0
invokeinterface org.h2.api.JavaObjectSerializer.serialize:(Ljava/lang/Object;)[B
8: areturn
9: StackMap locals:
StackMap stack:
new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 3
start local 3 10: new java.io.ObjectOutputStream
dup
aload 3
invokespecial java.io.ObjectOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 4
start local 4 11: aload 4
aload 0
invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
12: aload 3
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
13: areturn
end local 4 end local 3 end local 2 14: StackMap locals: java.lang.Object org.h2.store.DataHandler
StackMap stack: java.lang.Throwable
astore 2
start local 2 15: ldc 90026
aload 2
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 2
invokevirtual java.lang.Throwable.toString:()Ljava/lang/String;
aastore
invokestatic org.h2.message.DbException.get:(ILjava/lang/Throwable;[Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 obj Ljava/lang/Object;
0 16 1 dataHandler Lorg/h2/store/DataHandler;
1 14 2 handlerSerializer Lorg/h2/api/JavaObjectSerializer;
10 14 3 out Ljava/io/ByteArrayOutputStream;
11 14 4 os Ljava/io/ObjectOutputStream;
15 16 2 e Ljava/lang/Throwable;
Exception table:
from to target type
0 5 14 Class java.lang.Throwable
6 8 14 Class java.lang.Throwable
9 13 14 Class java.lang.Throwable
MethodParameters:
Name Flags
obj
dataHandler
public static java.lang.Object deserialize(byte[], org.h2.store.DataHandler);
descriptor: ([BLorg/h2/store/DataHandler;)Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
ifnull 3
2: aload 1
invokeinterface org.h2.store.DataHandler.getJavaObjectSerializer:()Lorg/h2/api/JavaObjectSerializer;
astore 2
3: StackMap locals: org.h2.api.JavaObjectSerializer
StackMap stack:
aload 2
ifnull 6
4: aload 2
aload 0
invokeinterface org.h2.api.JavaObjectSerializer.deserialize:([B)Ljava/lang/Object;
5: areturn
6: StackMap locals:
StackMap stack:
getstatic org.h2.util.JdbcUtils.serializer:Lorg/h2/api/JavaObjectSerializer;
ifnull 9
7: getstatic org.h2.util.JdbcUtils.serializer:Lorg/h2/api/JavaObjectSerializer;
aload 0
invokeinterface org.h2.api.JavaObjectSerializer.deserialize:([B)Ljava/lang/Object;
8: areturn
9: StackMap locals:
StackMap stack:
new java.io.ByteArrayInputStream
dup
aload 0
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 3
start local 3 10: getstatic org.h2.engine.SysProperties.USE_THREAD_CONTEXT_CLASS_LOADER:Z
ifeq 14
11: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
astore 5
start local 5 12: new org.h2.util.JdbcUtils$1
dup
aload 3
aload 5
invokespecial org.h2.util.JdbcUtils$1.<init>:(Ljava/io/InputStream;Ljava/lang/ClassLoader;)V
astore 4
end local 5 start local 4 13: goto 15
end local 4 14: StackMap locals: java.io.ByteArrayInputStream
StackMap stack:
new java.io.ObjectInputStream
dup
aload 3
invokespecial java.io.ObjectInputStream.<init>:(Ljava/io/InputStream;)V
astore 4
start local 4 15: StackMap locals: java.io.ObjectInputStream
StackMap stack:
aload 4
invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
16: areturn
end local 4 end local 3 end local 2 17: StackMap locals: byte[] org.h2.store.DataHandler
StackMap stack: java.lang.Throwable
astore 2
start local 2 18: ldc 90027
aload 2
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 2
invokevirtual java.lang.Throwable.toString:()Ljava/lang/String;
aastore
invokestatic org.h2.message.DbException.get:(ILjava/lang/Throwable;[Ljava/lang/String;)Lorg/h2/message/DbException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 data [B
0 19 1 dataHandler Lorg/h2/store/DataHandler;
1 17 2 dbJavaObjectSerializer Lorg/h2/api/JavaObjectSerializer;
10 17 3 in Ljava/io/ByteArrayInputStream;
13 14 4 is Ljava/io/ObjectInputStream;
15 17 4 is Ljava/io/ObjectInputStream;
12 13 5 loader Ljava/lang/ClassLoader;
18 19 2 e Ljava/lang/Throwable;
Exception table:
from to target type
0 5 17 Class java.lang.Throwable
6 8 17 Class java.lang.Throwable
9 16 17 Class java.lang.Throwable
MethodParameters:
Name Flags
data
dataHandler
}
SourceFile: "JdbcUtils.java"
NestMembers:
org.h2.util.JdbcUtils$1
InnerClasses:
org.h2.util.JdbcUtils$1
public abstract ClassFactory = org.h2.util.Utils$ClassFactory of org.h2.util.Utils