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: .line 43
            bipush 50
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 44
            ldc "h2:"
            aastore
            dup
            iconst_1
            ldc "org.h2.Driver"
            aastore
            dup
            iconst_2
         2: .line 45
            ldc "Cache:"
            aastore
            dup
            iconst_3
            ldc "com.intersys.jdbc.CacheDriver"
            aastore
            dup
            iconst_4
         3: .line 46
            ldc "daffodilDB://"
            aastore
            dup
            iconst_5
            ldc "in.co.daffodil.db.rmi.RmiDaffodilDBDriver"
            aastore
            dup
            bipush 6
         4: .line 47
            ldc "daffodil"
            aastore
            dup
            bipush 7
            ldc "in.co.daffodil.db.jdbc.DaffodilDBDriver"
            aastore
            dup
            bipush 8
         5: .line 48
            ldc "db2:"
            aastore
            dup
            bipush 9
            ldc "com.ibm.db2.jcc.DB2Driver"
            aastore
            dup
            bipush 10
         6: .line 49
            ldc "derby:net:"
            aastore
            dup
            bipush 11
            ldc "org.apache.derby.jdbc.ClientDriver"
            aastore
            dup
            bipush 12
         7: .line 50
            ldc "derby://"
            aastore
            dup
            bipush 13
            ldc "org.apache.derby.jdbc.ClientDriver"
            aastore
            dup
            bipush 14
         8: .line 51
            ldc "derby:"
            aastore
            dup
            bipush 15
            ldc "org.apache.derby.jdbc.EmbeddedDriver"
            aastore
            dup
            bipush 16
         9: .line 52
            ldc "FrontBase:"
            aastore
            dup
            bipush 17
            ldc "com.frontbase.jdbc.FBJDriver"
            aastore
            dup
            bipush 18
        10: .line 53
            ldc "firebirdsql:"
            aastore
            dup
            bipush 19
            ldc "org.firebirdsql.jdbc.FBDriver"
            aastore
            dup
            bipush 20
        11: .line 54
            ldc "hsqldb:"
            aastore
            dup
            bipush 21
            ldc "org.hsqldb.jdbcDriver"
            aastore
            dup
            bipush 22
        12: .line 55
            ldc "informix-sqli:"
            aastore
            dup
            bipush 23
            ldc "com.informix.jdbc.IfxDriver"
            aastore
            dup
            bipush 24
        13: .line 56
            ldc "jtds:"
            aastore
            dup
            bipush 25
            ldc "net.sourceforge.jtds.jdbc.Driver"
            aastore
            dup
            bipush 26
        14: .line 57
            ldc "microsoft:"
            aastore
            dup
            bipush 27
            ldc "com.microsoft.jdbc.sqlserver.SQLServerDriver"
            aastore
            dup
            bipush 28
        15: .line 58
            ldc "mimer:"
            aastore
            dup
            bipush 29
            ldc "com.mimer.jdbc.Driver"
            aastore
            dup
            bipush 30
        16: .line 59
            ldc "mysql:"
            aastore
            dup
            bipush 31
            ldc "com.mysql.jdbc.Driver"
            aastore
            dup
            bipush 32
        17: .line 60
            ldc "odbc:"
            aastore
            dup
            bipush 33
            ldc "sun.jdbc.odbc.JdbcOdbcDriver"
            aastore
            dup
            bipush 34
        18: .line 61
            ldc "oracle:"
            aastore
            dup
            bipush 35
            ldc "oracle.jdbc.driver.OracleDriver"
            aastore
            dup
            bipush 36
        19: .line 62
            ldc "pervasive:"
            aastore
            dup
            bipush 37
            ldc "com.pervasive.jdbc.v2.Driver"
            aastore
            dup
            bipush 38
        20: .line 63
            ldc "pointbase:micro:"
            aastore
            dup
            bipush 39
            ldc "com.pointbase.me.jdbc.jdbcDriver"
            aastore
            dup
            bipush 40
        21: .line 64
            ldc "pointbase:"
            aastore
            dup
            bipush 41
            ldc "com.pointbase.jdbc.jdbcUniversalDriver"
            aastore
            dup
            bipush 42
        22: .line 65
            ldc "postgresql:"
            aastore
            dup
            bipush 43
            ldc "org.postgresql.Driver"
            aastore
            dup
            bipush 44
        23: .line 66
            ldc "sybase:"
            aastore
            dup
            bipush 45
            ldc "com.sybase.jdbc3.jdbc.SybDriver"
            aastore
            dup
            bipush 46
        24: .line 67
            ldc "sqlserver:"
            aastore
            dup
            bipush 47
            ldc "com.microsoft.sqlserver.jdbc.SQLServerDriver"
            aastore
            dup
            bipush 48
        25: .line 68
            ldc "teradata:"
            aastore
            dup
            bipush 49
            ldc "com.ncr.teradata.TeraDriver"
            aastore
        26: .line 43
            putstatic org.h2.util.JdbcUtils.DRIVERS:[Ljava/lang/String;
        27: .line 78
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
        28: .line 77
            putstatic org.h2.util.JdbcUtils.userClassFactories:Ljava/util/ArrayList;
        29: .line 114
            getstatic org.h2.engine.SysProperties.JAVA_OBJECT_SERIALIZER:Ljava/lang/String;
            astore 0 /* clazz */
        start local 0 // java.lang.String clazz
        30: .line 115
            aload 0 /* clazz */
            ifnull 35
        31: .line 117
            aload 0 /* clazz */
            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: .line 118
            goto 35
      StackMap locals: java.lang.String
      StackMap stack: java.lang.Exception
        33: astore 1 /* e */
        start local 1 // java.lang.Exception e
        34: .line 119
            aload 1 /* e */
            invokestatic org.h2.message.DbException.convert:(Ljava/lang/Throwable;)Lorg/h2/message/DbException;
            athrow
        end local 1 // java.lang.Exception e
        35: .line 123
      StackMap locals:
      StackMap stack:
            getstatic org.h2.engine.SysProperties.CUSTOM_DATA_TYPES_HANDLER:Ljava/lang/String;
            astore 1 /* customTypeHandlerClass */
        start local 1 // java.lang.String customTypeHandlerClass
        36: .line 124
            aload 1 /* customTypeHandlerClass */
            ifnull 42
        37: .line 127
            aload 1 /* customTypeHandlerClass */
            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: .line 126
            putstatic org.h2.util.JdbcUtils.customDataTypesHandler:Lorg/h2/api/CustomDataTypesHandler;
        39: .line 128
            goto 42
      StackMap locals: java.lang.String java.lang.String
      StackMap stack: java.lang.Exception
        40: astore 2 /* e */
        start local 2 // java.lang.Exception e
        41: .line 129
            aload 2 /* e */
            invokestatic org.h2.message.DbException.convert:(Ljava/lang/Throwable;)Lorg/h2/message/DbException;
            athrow
        end local 2 // java.lang.Exception e
        end local 1 // java.lang.String customTypeHandlerClass
        end local 0 // java.lang.String clazz
        42: .line 132
      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 // org.h2.util.JdbcUtils this
         0: .line 82
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 84
            return
        end local 0 // org.h2.util.JdbcUtils this
      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 // org.h2.util.Utils$ClassFactory classFactory
         0: .line 92
            invokestatic org.h2.util.JdbcUtils.getUserClassFactories:()Ljava/util/ArrayList;
            aload 0 /* classFactory */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         1: .line 93
            return
        end local 0 // org.h2.util.Utils$ClassFactory classFactory
      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 // org.h2.util.Utils$ClassFactory classFactory
         0: .line 101
            invokestatic org.h2.util.JdbcUtils.getUserClassFactories:()Ljava/util/ArrayList;
            aload 0 /* classFactory */
            invokevirtual java.util.ArrayList.remove:(Ljava/lang/Object;)Z
            pop
         1: .line 102
            return
        end local 0 // org.h2.util.Utils$ClassFactory classFactory
      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: .line 105
            getstatic org.h2.util.JdbcUtils.userClassFactories:Ljava/util/ArrayList;
            ifnonnull 2
         1: .line 108
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putstatic org.h2.util.JdbcUtils.userClassFactories:Ljava/util/ArrayList;
         2: .line 110
      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 // java.lang.String className
         0: .line 144
            getstatic org.h2.util.JdbcUtils.allowedClassNames:Ljava/util/HashSet;
            ifnonnull 19
         1: .line 146
            getstatic org.h2.engine.SysProperties.ALLOWED_CLASSES:Ljava/lang/String;
            astore 1 /* s */
        start local 1 // java.lang.String s
         2: .line 147
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* prefixes */
        start local 2 // java.util.ArrayList prefixes
         3: .line 148
            iconst_0
            istore 3 /* allowAll */
        start local 3 // boolean allowAll
         4: .line 149
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* classNames */
        start local 4 // java.util.HashSet classNames
         5: .line 150
            aload 1 /* s */
            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 /* p */
        start local 5 // java.lang.String p
         7: .line 151
            aload 5 /* p */
            ldc "*"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         8: .line 152
            iconst_1
            istore 3 /* allowAll */
         9: .line 153
            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 /* p */
            ldc "*"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 13
        11: .line 154
            aload 2 /* prefixes */
            aload 5 /* p */
            iconst_0
            aload 5 /* p */
            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: .line 155
            goto 14
        13: .line 156
      StackMap locals:
      StackMap stack:
            aload 4 /* classNames */
            aload 5 /* p */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // java.lang.String p
        14: .line 150
      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: .line 159
            aload 2 /* prefixes */
            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: .line 160
            iload 3 /* allowAll */
            putstatic org.h2.util.JdbcUtils.allowAllClasses:Z
        18: .line 161
            aload 4 /* classNames */
            putstatic org.h2.util.JdbcUtils.allowedClassNames:Ljava/util/HashSet;
        end local 4 // java.util.HashSet classNames
        end local 3 // boolean allowAll
        end local 2 // java.util.ArrayList prefixes
        end local 1 // java.lang.String s
        19: .line 163
      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 /* className */
            invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
            ifne 30
        20: .line 164
            iconst_0
            istore 1 /* allowed */
        start local 1 // boolean allowed
        21: .line 165
            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 /* s */
        start local 2 // java.lang.String s
        23: .line 166
            aload 0 /* className */
            aload 2 /* s */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 25
        24: .line 167
            iconst_1
            istore 1 /* allowed */
        end local 2 // java.lang.String s
        25: .line 165
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        26: iload 3
            iload 4
            if_icmplt 22
        27: .line 170
            iload 1 /* allowed */
            ifne 30
        28: .line 172
            ldc 90134
            aload 0 /* className */
        29: .line 171
            invokestatic org.h2.message.DbException.get:(ILjava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 1 // boolean allowed
        30: .line 176
      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 /* classFactory */
        start local 1 // org.h2.util.Utils$ClassFactory classFactory
        32: .line 177
            aload 1 /* classFactory */
            aload 0 /* className */
            invokeinterface org.h2.util.Utils$ClassFactory.match:(Ljava/lang/String;)Z
            ifeq 40
        33: .line 179
            aload 1 /* classFactory */
            aload 0 /* className */
            invokeinterface org.h2.util.Utils$ClassFactory.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 3 /* userClass */
        start local 3 // java.lang.Class userClass
        34: .line 180
            aload 3 /* userClass */
            ifnull 40
        35: .line 181
            aload 3 /* userClass */
        36: areturn
        end local 3 // java.lang.Class userClass
        37: .line 183
      StackMap locals: java.lang.String org.h2.util.Utils$ClassFactory java.util.Iterator
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
        38: .line 185
            ldc 90086
            aload 3 /* e */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* className */
            aastore
        39: .line 184
            invokestatic org.h2.message.DbException.get:(ILjava/lang/Throwable;[Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 3 // java.lang.Exception e
        end local 1 // org.h2.util.Utils$ClassFactory classFactory
        40: .line 176
      StackMap locals: java.lang.String top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 31
        41: .line 191
            aload 0 /* className */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
        42: areturn
        43: .line 192
      StackMap locals: java.lang.String
      StackMap stack: java.lang.ClassNotFoundException
            astore 1 /* e */
        start local 1 // java.lang.ClassNotFoundException e
        44: .line 195
            aload 0 /* className */
            iconst_1
        45: .line 196
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
        46: .line 194
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
        47: areturn
        48: .line 197
      StackMap locals: java.lang.String java.lang.ClassNotFoundException
      StackMap stack: java.lang.Exception
            pop
        49: .line 199
            ldc 90086
            aload 1 /* e */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* className */
            aastore
        50: .line 198
            invokestatic org.h2.message.DbException.get:(ILjava/lang/Throwable;[Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 1 // java.lang.ClassNotFoundException e
        51: .line 201
      StackMap locals: java.lang.String
      StackMap stack: java.lang.NoClassDefFoundError
            astore 1 /* e */
        start local 1 // java.lang.NoClassDefFoundError e
        52: .line 203
            ldc 90086
            aload 1 /* e */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* className */
            aastore
        53: .line 202
            invokestatic org.h2.message.DbException.get:(ILjava/lang/Throwable;[Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 1 // java.lang.NoClassDefFoundError e
        54: .line 204
      StackMap locals:
      StackMap stack: java.lang.Error
            astore 1 /* e */
        start local 1 // java.lang.Error e
        55: .line 207
            ldc 50000
            aload 1 /* e */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* className */
            aastore
        56: .line 206
            invokestatic org.h2.message.DbException.get:(ILjava/lang/Throwable;[Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 1 // java.lang.Error e
        end local 0 // java.lang.String className
      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 // java.sql.Statement stat
         0: .line 217
            aload 0 /* stat */
            ifnull 4
         1: .line 219
            aload 0 /* stat */
            invokeinterface java.sql.Statement.close:()V
         2: .line 220
            goto 4
      StackMap locals:
      StackMap stack: java.sql.SQLException
         3: pop
         4: .line 224
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.sql.Statement stat
      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 // java.sql.Connection conn
         0: .line 232
            aload 0 /* conn */
            ifnull 4
         1: .line 234
            aload 0 /* conn */
            invokeinterface java.sql.Connection.close:()V
         2: .line 235
            goto 4
      StackMap locals:
      StackMap stack: java.sql.SQLException
         3: pop
         4: .line 239
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.sql.Connection conn
      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 // java.sql.ResultSet rs
         0: .line 247
            aload 0 /* rs */
            ifnull 4
         1: .line 249
            aload 0 /* rs */
            invokeinterface java.sql.ResultSet.close:()V
         2: .line 250
            goto 4
      StackMap locals:
      StackMap stack: java.sql.SQLException
         3: pop
         4: .line 254
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.sql.ResultSet rs
      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 // java.lang.String driver
        start local 1 // java.lang.String url
        start local 2 // java.lang.String user
        start local 3 // java.lang.String password
         0: .line 267
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 4 /* prop */
        start local 4 // java.util.Properties prop
         1: .line 268
            aload 2 /* user */
            ifnull 3
         2: .line 269
            aload 4 /* prop */
            ldc "user"
            aload 2 /* user */
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 271
      StackMap locals: java.util.Properties
      StackMap stack:
            aload 3 /* password */
            ifnull 5
         4: .line 272
            aload 4 /* prop */
            ldc "password"
            aload 3 /* password */
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         5: .line 274
      StackMap locals:
      StackMap stack:
            aload 0 /* driver */
            aload 1 /* url */
            aload 4 /* prop */
            invokestatic org.h2.util.JdbcUtils.getConnection:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;
            areturn
        end local 4 // java.util.Properties prop
        end local 3 // java.lang.String password
        end local 2 // java.lang.String user
        end local 1 // java.lang.String url
        end local 0 // java.lang.String driver
      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 // java.lang.String driver
        start local 1 // java.lang.String url
        start local 2 // java.util.Properties prop
         0: .line 287
            aload 0 /* driver */
            invokestatic org.h2.util.StringUtils.isNullOrEmpty:(Ljava/lang/String;)Z
            ifeq 3
         1: .line 288
            aload 1 /* url */
            invokestatic org.h2.util.JdbcUtils.load:(Ljava/lang/String;)V
         2: .line 289
            goto 23
         3: .line 290
      StackMap locals:
      StackMap stack:
            aload 0 /* driver */
            invokestatic org.h2.util.JdbcUtils.loadUserClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 3 /* d */
        start local 3 // java.lang.Class d
         4: .line 292
            ldc Ljava/sql/Driver;
            aload 3 /* d */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 11
         5: .line 293
            aload 3 /* d */
            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 /* driverInstance */
        start local 4 // java.sql.Driver driverInstance
         6: .line 299
            aload 4 /* driverInstance */
            aload 1 /* url */
            aload 2 /* prop */
            invokeinterface java.sql.Driver.connect:(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;
            astore 5 /* connection */
        start local 5 // java.sql.Connection connection
         7: .line 300
            aload 5 /* connection */
            ifnull 10
         8: .line 301
            aload 5 /* connection */
         9: areturn
        10: .line 303
      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 /* driver */
            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 /* url */
            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 // java.sql.Connection connection
        end local 4 // java.sql.Driver driverInstance
        11: .line 304
      StackMap locals:
      StackMap stack:
            ldc Ljavax/naming/Context;
            aload 3 /* d */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 23
        12: .line 306
            aload 3 /* d */
            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 /* context */
        start local 4 // javax.naming.Context context
        13: .line 307
            aload 4 /* context */
            aload 1 /* url */
            invokeinterface javax.naming.Context.lookup:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.sql.DataSource
            astore 5 /* ds */
        start local 5 // javax.sql.DataSource ds
        14: .line 308
            aload 2 /* prop */
            ldc "user"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* user */
        start local 6 // java.lang.String user
        15: .line 309
            aload 2 /* prop */
            ldc "password"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* password */
        start local 7 // java.lang.String password
        16: .line 310
            aload 6 /* user */
            invokestatic org.h2.util.StringUtils.isNullOrEmpty:(Ljava/lang/String;)Z
            ifeq 19
            aload 7 /* password */
            invokestatic org.h2.util.StringUtils.isNullOrEmpty:(Ljava/lang/String;)Z
            ifeq 19
        17: .line 311
            aload 5 /* ds */
            invokeinterface javax.sql.DataSource.getConnection:()Ljava/sql/Connection;
        18: areturn
        19: .line 313
      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 /* ds */
            aload 6 /* user */
            aload 7 /* password */
            invokeinterface javax.sql.DataSource.getConnection:(Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
        20: areturn
        end local 7 // java.lang.String password
        end local 6 // java.lang.String user
        end local 5 // javax.sql.DataSource ds
        end local 4 // javax.naming.Context context
        21: .line 315
      StackMap locals: java.lang.String java.lang.String java.util.Properties java.lang.Class
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
        22: .line 316
            aload 4 /* e */
            invokestatic org.h2.message.DbException.toSQLException:(Ljava/lang/Throwable;)Ljava/sql/SQLException;
            athrow
        end local 4 // java.lang.Exception e
        end local 3 // java.lang.Class d
        23: .line 320
      StackMap locals:
      StackMap stack:
            aload 1 /* url */
            aload 2 /* prop */
            invokestatic java.sql.DriverManager.getConnection:(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;
            areturn
        end local 2 // java.util.Properties prop
        end local 1 // java.lang.String url
        end local 0 // java.lang.String driver
      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 // java.lang.String url
         0: .line 331
            aload 0 /* url */
            ldc "jdbc:"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 9
         1: .line 332
            aload 0 /* url */
            ldc "jdbc:"
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 0 /* url */
         2: .line 333
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         3: goto 8
         4: .line 334
      StackMap locals: int
      StackMap stack:
            getstatic org.h2.util.JdbcUtils.DRIVERS:[Ljava/lang/String;
            iload 1 /* i */
            aaload
            astore 2 /* prefix */
        start local 2 // java.lang.String prefix
         5: .line 335
            aload 0 /* url */
            aload 2 /* prefix */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 336
            getstatic org.h2.util.JdbcUtils.DRIVERS:[Ljava/lang/String;
            iload 1 /* i */
            iconst_1
            iadd
            aaload
            areturn
        end local 2 // java.lang.String prefix
         7: .line 333
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 2
      StackMap locals:
      StackMap stack:
         8: iload 1 /* i */
            getstatic org.h2.util.JdbcUtils.DRIVERS:[Ljava/lang/String;
            arraylength
            if_icmplt 4
        end local 1 // int i
         9: .line 340
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.lang.String url
      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 // java.lang.String url
         0: .line 349
            aload 0 /* url */
            invokestatic org.h2.util.JdbcUtils.getDriver:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* driver */
        start local 1 // java.lang.String driver
         1: .line 350
            aload 1 /* driver */
            ifnull 3
         2: .line 351
            aload 1 /* driver */
            invokestatic org.h2.util.JdbcUtils.loadUserClass:(Ljava/lang/String;)Ljava/lang/Class;
            pop
         3: .line 353
      StackMap locals: java.lang.String
      StackMap stack:
            return
        end local 1 // java.lang.String driver
        end local 0 // java.lang.String url
      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 // java.lang.Object obj
        start local 1 // org.h2.store.DataHandler dataHandler
         0: .line 365
            aconst_null
            astore 2 /* handlerSerializer */
        start local 2 // org.h2.api.JavaObjectSerializer handlerSerializer
         1: .line 366
            aload 1 /* dataHandler */
            ifnull 3
         2: .line 367
            aload 1 /* dataHandler */
            invokeinterface org.h2.store.DataHandler.getJavaObjectSerializer:()Lorg/h2/api/JavaObjectSerializer;
            astore 2 /* handlerSerializer */
         3: .line 369
      StackMap locals: org.h2.api.JavaObjectSerializer
      StackMap stack:
            aload 2 /* handlerSerializer */
            ifnull 6
         4: .line 370
            aload 2 /* handlerSerializer */
            aload 0 /* obj */
            invokeinterface org.h2.api.JavaObjectSerializer.serialize:(Ljava/lang/Object;)[B
         5: areturn
         6: .line 372
      StackMap locals:
      StackMap stack:
            getstatic org.h2.util.JdbcUtils.serializer:Lorg/h2/api/JavaObjectSerializer;
            ifnull 9
         7: .line 373
            getstatic org.h2.util.JdbcUtils.serializer:Lorg/h2/api/JavaObjectSerializer;
            aload 0 /* obj */
            invokeinterface org.h2.api.JavaObjectSerializer.serialize:(Ljava/lang/Object;)[B
         8: areturn
         9: .line 375
      StackMap locals:
      StackMap stack:
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 3 /* out */
        start local 3 // java.io.ByteArrayOutputStream out
        10: .line 376
            new java.io.ObjectOutputStream
            dup
            aload 3 /* out */
            invokespecial java.io.ObjectOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 4 /* os */
        start local 4 // java.io.ObjectOutputStream os
        11: .line 377
            aload 4 /* os */
            aload 0 /* obj */
            invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
        12: .line 378
            aload 3 /* out */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
        13: areturn
        end local 4 // java.io.ObjectOutputStream os
        end local 3 // java.io.ByteArrayOutputStream out
        end local 2 // org.h2.api.JavaObjectSerializer handlerSerializer
        14: .line 379
      StackMap locals: java.lang.Object org.h2.store.DataHandler
      StackMap stack: java.lang.Throwable
            astore 2 /* e */
        start local 2 // java.lang.Throwable e
        15: .line 380
            ldc 90026
            aload 2 /* e */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 2 /* e */
            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 // java.lang.Throwable e
        end local 1 // org.h2.store.DataHandler dataHandler
        end local 0 // java.lang.Object obj
      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 // byte[] data
        start local 1 // org.h2.store.DataHandler dataHandler
         0: .line 395
            aconst_null
            astore 2 /* dbJavaObjectSerializer */
        start local 2 // org.h2.api.JavaObjectSerializer dbJavaObjectSerializer
         1: .line 396
            aload 1 /* dataHandler */
            ifnull 3
         2: .line 397
            aload 1 /* dataHandler */
            invokeinterface org.h2.store.DataHandler.getJavaObjectSerializer:()Lorg/h2/api/JavaObjectSerializer;
            astore 2 /* dbJavaObjectSerializer */
         3: .line 399
      StackMap locals: org.h2.api.JavaObjectSerializer
      StackMap stack:
            aload 2 /* dbJavaObjectSerializer */
            ifnull 6
         4: .line 400
            aload 2 /* dbJavaObjectSerializer */
            aload 0 /* data */
            invokeinterface org.h2.api.JavaObjectSerializer.deserialize:([B)Ljava/lang/Object;
         5: areturn
         6: .line 402
      StackMap locals:
      StackMap stack:
            getstatic org.h2.util.JdbcUtils.serializer:Lorg/h2/api/JavaObjectSerializer;
            ifnull 9
         7: .line 403
            getstatic org.h2.util.JdbcUtils.serializer:Lorg/h2/api/JavaObjectSerializer;
            aload 0 /* data */
            invokeinterface org.h2.api.JavaObjectSerializer.deserialize:([B)Ljava/lang/Object;
         8: areturn
         9: .line 405
      StackMap locals:
      StackMap stack:
            new java.io.ByteArrayInputStream
            dup
            aload 0 /* data */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 3 /* in */
        start local 3 // java.io.ByteArrayInputStream in
        10: .line 407
            getstatic org.h2.engine.SysProperties.USE_THREAD_CONTEXT_CLASS_LOADER:Z
            ifeq 14
        11: .line 408
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 5 /* loader */
        start local 5 // java.lang.ClassLoader loader
        12: .line 409
            new org.h2.util.JdbcUtils$1
            dup
            aload 3 /* in */
            aload 5 /* loader */
            invokespecial org.h2.util.JdbcUtils$1.<init>:(Ljava/io/InputStream;Ljava/lang/ClassLoader;)V
            astore 4 /* is */
        end local 5 // java.lang.ClassLoader loader
        start local 4 // java.io.ObjectInputStream is
        13: .line 420
            goto 15
        end local 4 // java.io.ObjectInputStream is
        14: .line 421
      StackMap locals: java.io.ByteArrayInputStream
      StackMap stack:
            new java.io.ObjectInputStream
            dup
            aload 3 /* in */
            invokespecial java.io.ObjectInputStream.<init>:(Ljava/io/InputStream;)V
            astore 4 /* is */
        start local 4 // java.io.ObjectInputStream is
        15: .line 423
      StackMap locals: java.io.ObjectInputStream
      StackMap stack:
            aload 4 /* is */
            invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
        16: areturn
        end local 4 // java.io.ObjectInputStream is
        end local 3 // java.io.ByteArrayInputStream in
        end local 2 // org.h2.api.JavaObjectSerializer dbJavaObjectSerializer
        17: .line 424
      StackMap locals: byte[] org.h2.store.DataHandler
      StackMap stack: java.lang.Throwable
            astore 2 /* e */
        start local 2 // java.lang.Throwable e
        18: .line 425
            ldc 90027
            aload 2 /* e */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 2 /* e */
            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 // java.lang.Throwable e
        end local 1 // org.h2.store.DataHandler dataHandler
        end local 0 // byte[] data
      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