public class org.apache.commons.dbcp.BasicDataSourceFactory implements javax.naming.spi.ObjectFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.commons.dbcp.BasicDataSourceFactory
  super_class: java.lang.Object
{
  private static final java.lang.String PROP_DEFAULTAUTOCOMMIT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "defaultAutoCommit"

  private static final java.lang.String PROP_DEFAULTREADONLY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "defaultReadOnly"

  private static final java.lang.String PROP_DEFAULTTRANSACTIONISOLATION;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "defaultTransactionIsolation"

  private static final java.lang.String PROP_DEFAULTCATALOG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "defaultCatalog"

  private static final java.lang.String PROP_DRIVERCLASSNAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "driverClassName"

  private static final java.lang.String PROP_MAXACTIVE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "maxActive"

  private static final java.lang.String PROP_MAXIDLE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "maxIdle"

  private static final java.lang.String PROP_MINIDLE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "minIdle"

  private static final java.lang.String PROP_INITIALSIZE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "initialSize"

  private static final java.lang.String PROP_MAXWAIT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "maxWait"

  private static final java.lang.String PROP_TESTONBORROW;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "testOnBorrow"

  private static final java.lang.String PROP_TESTONRETURN;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "testOnReturn"

  private static final java.lang.String PROP_TIMEBETWEENEVICTIONRUNSMILLIS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "timeBetweenEvictionRunsMillis"

  private static final java.lang.String PROP_NUMTESTSPEREVICTIONRUN;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "numTestsPerEvictionRun"

  private static final java.lang.String PROP_MINEVICTABLEIDLETIMEMILLIS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "minEvictableIdleTimeMillis"

  private static final java.lang.String PROP_TESTWHILEIDLE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "testWhileIdle"

  private static final java.lang.String PROP_PASSWORD;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "password"

  private static final java.lang.String PROP_URL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "url"

  private static final java.lang.String PROP_USERNAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "username"

  private static final java.lang.String PROP_VALIDATIONQUERY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "validationQuery"

  private static final java.lang.String PROP_VALIDATIONQUERY_TIMEOUT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "validationQueryTimeout"

  private static final java.lang.String PROP_INITCONNECTIONSQLS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "initConnectionSqls"

  private static final java.lang.String PROP_ACCESSTOUNDERLYINGCONNECTIONALLOWED;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "accessToUnderlyingConnectionAllowed"

  private static final java.lang.String PROP_REMOVEABANDONED;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "removeAbandoned"

  private static final java.lang.String PROP_REMOVEABANDONEDTIMEOUT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "removeAbandonedTimeout"

  private static final java.lang.String PROP_LOGABANDONED;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "logAbandoned"

  private static final java.lang.String PROP_POOLPREPAREDSTATEMENTS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "poolPreparedStatements"

  private static final java.lang.String PROP_MAXOPENPREPAREDSTATEMENTS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "maxOpenPreparedStatements"

  private static final java.lang.String PROP_CONNECTIONPROPERTIES;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "connectionProperties"

  private static final java.lang.String[] ALL_PROPERTIES;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 83
            bipush 29
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 84
            ldc "defaultAutoCommit"
            aastore
            dup
            iconst_1
         2: .line 85
            ldc "defaultReadOnly"
            aastore
            dup
            iconst_2
         3: .line 86
            ldc "defaultTransactionIsolation"
            aastore
            dup
            iconst_3
         4: .line 87
            ldc "defaultCatalog"
            aastore
            dup
            iconst_4
         5: .line 88
            ldc "driverClassName"
            aastore
            dup
            iconst_5
         6: .line 89
            ldc "maxActive"
            aastore
            dup
            bipush 6
         7: .line 90
            ldc "maxIdle"
            aastore
            dup
            bipush 7
         8: .line 91
            ldc "minIdle"
            aastore
            dup
            bipush 8
         9: .line 92
            ldc "initialSize"
            aastore
            dup
            bipush 9
        10: .line 93
            ldc "maxWait"
            aastore
            dup
            bipush 10
        11: .line 94
            ldc "testOnBorrow"
            aastore
            dup
            bipush 11
        12: .line 95
            ldc "testOnReturn"
            aastore
            dup
            bipush 12
        13: .line 96
            ldc "timeBetweenEvictionRunsMillis"
            aastore
            dup
            bipush 13
        14: .line 97
            ldc "numTestsPerEvictionRun"
            aastore
            dup
            bipush 14
        15: .line 98
            ldc "minEvictableIdleTimeMillis"
            aastore
            dup
            bipush 15
        16: .line 99
            ldc "testWhileIdle"
            aastore
            dup
            bipush 16
        17: .line 100
            ldc "password"
            aastore
            dup
            bipush 17
        18: .line 101
            ldc "url"
            aastore
            dup
            bipush 18
        19: .line 102
            ldc "username"
            aastore
            dup
            bipush 19
        20: .line 103
            ldc "validationQuery"
            aastore
            dup
            bipush 20
        21: .line 104
            ldc "validationQueryTimeout"
            aastore
            dup
            bipush 21
        22: .line 105
            ldc "initConnectionSqls"
            aastore
            dup
            bipush 22
        23: .line 106
            ldc "accessToUnderlyingConnectionAllowed"
            aastore
            dup
            bipush 23
        24: .line 107
            ldc "removeAbandoned"
            aastore
            dup
            bipush 24
        25: .line 108
            ldc "removeAbandonedTimeout"
            aastore
            dup
            bipush 25
        26: .line 109
            ldc "logAbandoned"
            aastore
            dup
            bipush 26
        27: .line 110
            ldc "poolPreparedStatements"
            aastore
            dup
            bipush 27
        28: .line 111
            ldc "maxOpenPreparedStatements"
            aastore
            dup
            bipush 28
        29: .line 112
            ldc "connectionProperties"
            aastore
        30: .line 83
            putstatic org.apache.commons.dbcp.BasicDataSourceFactory.ALL_PROPERTIES:[Ljava/lang/String;
        31: .line 113
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.dbcp.BasicDataSourceFactory this
         0: .line 46
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.commons.dbcp.BasicDataSourceFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/dbcp/BasicDataSourceFactory;

  public java.lang.Object getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable);
    descriptor: (Ljava/lang/Object;Ljavax/naming/Name;Ljavax/naming/Context;Ljava/util/Hashtable;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=11, args_size=5
        start local 0 // org.apache.commons.dbcp.BasicDataSourceFactory this
        start local 1 // java.lang.Object obj
        start local 2 // javax.naming.Name name
        start local 3 // javax.naming.Context nameCtx
        start local 4 // java.util.Hashtable environment
         0: .line 138
            aload 1 /* obj */
            ifnull 1
            aload 1 /* obj */
            instanceof javax.naming.Reference
            ifne 2
         1: .line 139
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 141
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast javax.naming.Reference
            astore 5 /* ref */
        start local 5 // javax.naming.Reference ref
         3: .line 142
            ldc "javax.sql.DataSource"
            aload 5 /* ref */
            invokevirtual javax.naming.Reference.getClassName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 143
            aconst_null
            areturn
         5: .line 146
      StackMap locals: javax.naming.Reference
      StackMap stack:
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 6 /* properties */
        start local 6 // java.util.Properties properties
         6: .line 147
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 14
         8: .line 148
      StackMap locals: java.util.Properties int
      StackMap stack:
            getstatic org.apache.commons.dbcp.BasicDataSourceFactory.ALL_PROPERTIES:[Ljava/lang/String;
            iload 7 /* i */
            aaload
            astore 8 /* propertyName */
        start local 8 // java.lang.String propertyName
         9: .line 149
            aload 5 /* ref */
            aload 8 /* propertyName */
            invokevirtual javax.naming.Reference.get:(Ljava/lang/String;)Ljavax/naming/RefAddr;
            astore 9 /* ra */
        start local 9 // javax.naming.RefAddr ra
        10: .line 150
            aload 9 /* ra */
            ifnull 13
        11: .line 151
            aload 9 /* ra */
            invokevirtual javax.naming.RefAddr.getContent:()Ljava/lang/Object;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 10 /* propertyValue */
        start local 10 // java.lang.String propertyValue
        12: .line 152
            aload 6 /* properties */
            aload 8 /* propertyName */
            aload 10 /* propertyValue */
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        end local 10 // java.lang.String propertyValue
        end local 9 // javax.naming.RefAddr ra
        end local 8 // java.lang.String propertyName
        13: .line 147
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 7 /* i */
            getstatic org.apache.commons.dbcp.BasicDataSourceFactory.ALL_PROPERTIES:[Ljava/lang/String;
            arraylength
            if_icmplt 8
        end local 7 // int i
        15: .line 156
            aload 6 /* properties */
            invokestatic org.apache.commons.dbcp.BasicDataSourceFactory.createDataSource:(Ljava/util/Properties;)Ljavax/sql/DataSource;
            areturn
        end local 6 // java.util.Properties properties
        end local 5 // javax.naming.Reference ref
        end local 4 // java.util.Hashtable environment
        end local 3 // javax.naming.Context nameCtx
        end local 2 // javax.naming.Name name
        end local 1 // java.lang.Object obj
        end local 0 // org.apache.commons.dbcp.BasicDataSourceFactory this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0           this  Lorg/apache/commons/dbcp/BasicDataSourceFactory;
            0   16     1            obj  Ljava/lang/Object;
            0   16     2           name  Ljavax/naming/Name;
            0   16     3        nameCtx  Ljavax/naming/Context;
            0   16     4    environment  Ljava/util/Hashtable;
            3   16     5            ref  Ljavax/naming/Reference;
            6   16     6     properties  Ljava/util/Properties;
            7   15     7              i  I
            9   13     8   propertyName  Ljava/lang/String;
           10   13     9             ra  Ljavax/naming/RefAddr;
           12   13    10  propertyValue  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
             Name  Flags
      obj          
      name         
      nameCtx      
      environment  

  public static javax.sql.DataSource createDataSource(java.util.Properties);
    descriptor: (Ljava/util/Properties;)Ljavax/sql/DataSource;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // java.util.Properties properties
         0: .line 167
            new org.apache.commons.dbcp.BasicDataSource
            dup
            invokespecial org.apache.commons.dbcp.BasicDataSource.<init>:()V
            astore 1 /* dataSource */
        start local 1 // org.apache.commons.dbcp.BasicDataSource dataSource
         1: .line 168
            aconst_null
            astore 2 /* value */
        start local 2 // java.lang.String value
         2: .line 170
            aload 0 /* properties */
            ldc "defaultAutoCommit"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
         3: .line 171
            aload 2 /* value */
            ifnull 5
         4: .line 172
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setDefaultAutoCommit:(Z)V
         5: .line 175
      StackMap locals: org.apache.commons.dbcp.BasicDataSource java.lang.String
      StackMap stack:
            aload 0 /* properties */
            ldc "defaultReadOnly"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
         6: .line 176
            aload 2 /* value */
            ifnull 8
         7: .line 177
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setDefaultReadOnly:(Z)V
         8: .line 180
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "defaultTransactionIsolation"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
         9: .line 181
            aload 2 /* value */
            ifnull 34
        10: .line 182
            iconst_m1
            istore 3 /* level */
        start local 3 // int level
        11: .line 183
            ldc "NONE"
            aload 2 /* value */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 14
        12: .line 184
            iconst_0
            istore 3 /* level */
        13: .line 185
            goto 33
        14: .line 186
      StackMap locals: int
      StackMap stack:
            ldc "READ_COMMITTED"
            aload 2 /* value */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 17
        15: .line 187
            iconst_2
            istore 3 /* level */
        16: .line 188
            goto 33
        17: .line 189
      StackMap locals:
      StackMap stack:
            ldc "READ_UNCOMMITTED"
            aload 2 /* value */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 20
        18: .line 190
            iconst_1
            istore 3 /* level */
        19: .line 191
            goto 33
        20: .line 192
      StackMap locals:
      StackMap stack:
            ldc "REPEATABLE_READ"
            aload 2 /* value */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 23
        21: .line 193
            iconst_4
            istore 3 /* level */
        22: .line 194
            goto 33
        23: .line 195
      StackMap locals:
      StackMap stack:
            ldc "SERIALIZABLE"
            aload 2 /* value */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 26
        24: .line 196
            bipush 8
            istore 3 /* level */
        25: .line 197
            goto 33
        26: .line 200
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 3 /* level */
        27: .line 201
            goto 33
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
        28: pop
        29: .line 202
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Could not parse defaultTransactionIsolation: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        30: .line 203
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "WARNING: defaultTransactionIsolation not set"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        31: .line 204
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "using default value of database driver"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        32: .line 205
            iconst_m1
            istore 3 /* level */
        33: .line 208
      StackMap locals:
      StackMap stack:
            aload 1 /* dataSource */
            iload 3 /* level */
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setDefaultTransactionIsolation:(I)V
        end local 3 // int level
        34: .line 211
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "defaultCatalog"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        35: .line 212
            aload 2 /* value */
            ifnull 37
        36: .line 213
            aload 1 /* dataSource */
            aload 2 /* value */
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setDefaultCatalog:(Ljava/lang/String;)V
        37: .line 216
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "driverClassName"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        38: .line 217
            aload 2 /* value */
            ifnull 40
        39: .line 218
            aload 1 /* dataSource */
            aload 2 /* value */
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setDriverClassName:(Ljava/lang/String;)V
        40: .line 221
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "maxActive"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        41: .line 222
            aload 2 /* value */
            ifnull 43
        42: .line 223
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setMaxActive:(I)V
        43: .line 226
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "maxIdle"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        44: .line 227
            aload 2 /* value */
            ifnull 46
        45: .line 228
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setMaxIdle:(I)V
        46: .line 231
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "minIdle"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        47: .line 232
            aload 2 /* value */
            ifnull 49
        48: .line 233
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setMinIdle:(I)V
        49: .line 236
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "initialSize"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        50: .line 237
            aload 2 /* value */
            ifnull 52
        51: .line 238
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setInitialSize:(I)V
        52: .line 241
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "maxWait"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        53: .line 242
            aload 2 /* value */
            ifnull 55
        54: .line 243
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setMaxWait:(J)V
        55: .line 246
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "testOnBorrow"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        56: .line 247
            aload 2 /* value */
            ifnull 58
        57: .line 248
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setTestOnBorrow:(Z)V
        58: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "testOnReturn"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        59: .line 252
            aload 2 /* value */
            ifnull 61
        60: .line 253
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setTestOnReturn:(Z)V
        61: .line 256
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "timeBetweenEvictionRunsMillis"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        62: .line 257
            aload 2 /* value */
            ifnull 64
        63: .line 258
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setTimeBetweenEvictionRunsMillis:(J)V
        64: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "numTestsPerEvictionRun"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        65: .line 262
            aload 2 /* value */
            ifnull 67
        66: .line 263
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setNumTestsPerEvictionRun:(I)V
        67: .line 266
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "minEvictableIdleTimeMillis"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        68: .line 267
            aload 2 /* value */
            ifnull 70
        69: .line 268
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setMinEvictableIdleTimeMillis:(J)V
        70: .line 271
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "testWhileIdle"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        71: .line 272
            aload 2 /* value */
            ifnull 73
        72: .line 273
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setTestWhileIdle:(Z)V
        73: .line 276
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "password"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        74: .line 277
            aload 2 /* value */
            ifnull 76
        75: .line 278
            aload 1 /* dataSource */
            aload 2 /* value */
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setPassword:(Ljava/lang/String;)V
        76: .line 281
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "url"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        77: .line 282
            aload 2 /* value */
            ifnull 79
        78: .line 283
            aload 1 /* dataSource */
            aload 2 /* value */
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setUrl:(Ljava/lang/String;)V
        79: .line 286
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "username"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        80: .line 287
            aload 2 /* value */
            ifnull 82
        81: .line 288
            aload 1 /* dataSource */
            aload 2 /* value */
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setUsername:(Ljava/lang/String;)V
        82: .line 291
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "validationQuery"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        83: .line 292
            aload 2 /* value */
            ifnull 85
        84: .line 293
            aload 1 /* dataSource */
            aload 2 /* value */
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setValidationQuery:(Ljava/lang/String;)V
        85: .line 296
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "validationQueryTimeout"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        86: .line 297
            aload 2 /* value */
            ifnull 88
        87: .line 298
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setValidationQueryTimeout:(I)V
        88: .line 301
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "accessToUnderlyingConnectionAllowed"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        89: .line 302
            aload 2 /* value */
            ifnull 91
        90: .line 303
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setAccessToUnderlyingConnectionAllowed:(Z)V
        91: .line 306
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "removeAbandoned"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        92: .line 307
            aload 2 /* value */
            ifnull 94
        93: .line 308
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setRemoveAbandoned:(Z)V
        94: .line 311
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "removeAbandonedTimeout"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        95: .line 312
            aload 2 /* value */
            ifnull 97
        96: .line 313
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setRemoveAbandonedTimeout:(I)V
        97: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "logAbandoned"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        98: .line 317
            aload 2 /* value */
            ifnull 100
        99: .line 318
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setLogAbandoned:(Z)V
       100: .line 321
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "poolPreparedStatements"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
       101: .line 322
            aload 2 /* value */
            ifnull 103
       102: .line 323
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setPoolPreparedStatements:(Z)V
       103: .line 326
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "maxOpenPreparedStatements"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
       104: .line 327
            aload 2 /* value */
            ifnull 106
       105: .line 328
            aload 1 /* dataSource */
            aload 2 /* value */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setMaxOpenPreparedStatements:(I)V
       106: .line 331
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "initConnectionSqls"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
       107: .line 332
            aload 2 /* value */
            ifnull 110
       108: .line 333
            new java.util.StringTokenizer
            dup
            aload 2 /* value */
            ldc ";"
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 3 /* tokenizer */
        start local 3 // java.util.StringTokenizer tokenizer
       109: .line 334
            aload 1 /* dataSource */
            aload 3 /* tokenizer */
            invokestatic java.util.Collections.list:(Ljava/util/Enumeration;)Ljava/util/ArrayList;
            invokevirtual org.apache.commons.dbcp.BasicDataSource.setConnectionInitSqls:(Ljava/util/Collection;)V
        end local 3 // java.util.StringTokenizer tokenizer
       110: .line 337
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            ldc "connectionProperties"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
       111: .line 338
            aload 2 /* value */
            ifnull 118
       112: .line 339
            aload 2 /* value */
            invokestatic org.apache.commons.dbcp.BasicDataSourceFactory.getProperties:(Ljava/lang/String;)Ljava/util/Properties;
            astore 3 /* p */
        start local 3 // java.util.Properties p
       113: .line 340
            aload 3 /* p */
            invokevirtual java.util.Properties.propertyNames:()Ljava/util/Enumeration;
            astore 4 /* e */
        start local 4 // java.util.Enumeration e
       114: .line 341
            goto 117
       115: .line 342
      StackMap locals: java.util.Properties java.util.Enumeration
      StackMap stack:
            aload 4 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* propertyName */
        start local 5 // java.lang.String propertyName
       116: .line 343
            aload 1 /* dataSource */
            aload 5 /* propertyName */
            aload 3 /* p */
            aload 5 /* propertyName */
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.apache.commons.dbcp.BasicDataSource.addConnectionProperty:(Ljava/lang/String;Ljava/lang/String;)V
        end local 5 // java.lang.String propertyName
       117: .line 341
      StackMap locals:
      StackMap stack:
            aload 4 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 115
        end local 4 // java.util.Enumeration e
        end local 3 // java.util.Properties p
       118: .line 349
      StackMap locals:
      StackMap stack:
            aload 1 /* dataSource */
            invokevirtual org.apache.commons.dbcp.BasicDataSource.getInitialSize:()I
            ifle 120
       119: .line 350
            aload 1 /* dataSource */
            invokevirtual org.apache.commons.dbcp.BasicDataSource.getLogWriter:()Ljava/io/PrintWriter;
            pop
       120: .line 354
      StackMap locals:
      StackMap stack:
            aload 1 /* dataSource */
            areturn
        end local 2 // java.lang.String value
        end local 1 // org.apache.commons.dbcp.BasicDataSource dataSource
        end local 0 // java.util.Properties properties
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0  121     0    properties  Ljava/util/Properties;
            1  121     1    dataSource  Lorg/apache/commons/dbcp/BasicDataSource;
            2  121     2         value  Ljava/lang/String;
           11   34     3         level  I
          109  110     3     tokenizer  Ljava/util/StringTokenizer;
          113  118     3             p  Ljava/util/Properties;
          114  118     4             e  Ljava/util/Enumeration;
          116  117     5  propertyName  Ljava/lang/String;
      Exception table:
        from    to  target  type
          26    27      28  Class java.lang.NumberFormatException
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
            Name  Flags
      properties  

  private static java.util.Properties getProperties(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Properties;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.String propText
         0: .line 364
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 1 /* p */
        start local 1 // java.util.Properties p
         1: .line 365
            aload 0 /* propText */
            ifnull 3
         2: .line 366
            aload 1 /* p */
            new java.io.ByteArrayInputStream
            dup
            aload 0 /* propText */
            bipush 59
            bipush 10
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.lang.String.getBytes:()[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            invokevirtual java.util.Properties.load:(Ljava/io/InputStream;)V
         3: .line 368
      StackMap locals: java.util.Properties
      StackMap stack:
            aload 1 /* p */
            areturn
        end local 1 // java.util.Properties p
        end local 0 // java.lang.String propText
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0  propText  Ljava/lang/String;
            1    4     1         p  Ljava/util/Properties;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
          Name  Flags
      propText  
}
SourceFile: "BasicDataSourceFactory.java"