public class org.apache.naming.factory.BeanFactory implements javax.naming.spi.ObjectFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.naming.factory.BeanFactory
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.naming.factory.BeanFactory this
         0: .line 91
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.naming.factory.BeanFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/naming/factory/BeanFactory;

  public  getObjectInstance(, 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=5, locals=22, args_size=5
        start local 0 // org.apache.naming.factory.BeanFactory 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 119
            aload 1 /* obj */
            instanceof org.apache.naming.ResourceRef
            ifeq 152
         1: .line 123
            aload 1 /* obj */
            checkcast javax.naming.Reference
            astore 5 /* ref */
        start local 5 // javax.naming.Reference ref
         2: .line 124
            aload 5 /* ref */
            invokevirtual javax.naming.Reference.getClassName:()Ljava/lang/String;
            astore 6 /* beanClassName */
        start local 6 // java.lang.String beanClassName
         3: .line 125
            aconst_null
            astore 7 /* beanClass */
        start local 7 // java.lang.Class beanClass
         4: .line 127
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
         5: .line 126
            astore 8 /* tcl */
        start local 8 // java.lang.ClassLoader tcl
         6: .line 128
            aload 8 /* tcl */
            ifnull 11
         7: .line 130
            aload 8 /* tcl */
            aload 6 /* beanClassName */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 7 /* beanClass */
         8: .line 131
            goto 15
      StackMap locals: org.apache.naming.factory.BeanFactory java.lang.Object javax.naming.Name javax.naming.Context java.util.Hashtable javax.naming.Reference java.lang.String java.lang.Class java.lang.ClassLoader
      StackMap stack: java.lang.ClassNotFoundException
         9: pop
        10: .line 133
            goto 15
        11: .line 135
      StackMap locals:
      StackMap stack:
            aload 6 /* beanClassName */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 7 /* beanClass */
        12: .line 136
            goto 15
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
        13: astore 9 /* e */
        start local 9 // java.lang.ClassNotFoundException e
        14: .line 137
            aload 9 /* e */
            invokevirtual java.lang.ClassNotFoundException.printStackTrace:()V
        end local 9 // java.lang.ClassNotFoundException e
        15: .line 140
      StackMap locals:
      StackMap stack:
            aload 7 /* beanClass */
            ifnonnull 19
        16: .line 141
            new javax.naming.NamingException
            dup
        17: .line 142
            new java.lang.StringBuilder
            dup
            ldc "Class not found: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* beanClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 141
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 145
      StackMap locals:
      StackMap stack:
            aload 7 /* beanClass */
            invokestatic java.beans.Introspector.getBeanInfo:(Ljava/lang/Class;)Ljava/beans/BeanInfo;
            astore 9 /* bi */
        start local 9 // java.beans.BeanInfo bi
        20: .line 146
            aload 9 /* bi */
            invokeinterface java.beans.BeanInfo.getPropertyDescriptors:()[Ljava/beans/PropertyDescriptor;
            astore 10 /* pda */
        start local 10 // java.beans.PropertyDescriptor[] pda
        21: .line 148
            aload 7 /* beanClass */
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getConstructor:([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;
            astore 11 /* bean */
        start local 11 // java.lang.Object bean
        22: .line 151
            aload 5 /* ref */
            ldc "forceString"
            invokevirtual javax.naming.Reference.get:(Ljava/lang/String;)Ljavax/naming/RefAddr;
            astore 12 /* ra */
        start local 12 // javax.naming.RefAddr ra
        23: .line 152
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 13 /* forced */
        start local 13 // java.util.Map forced
        24: .line 155
            aload 12 /* ra */
            ifnull 52
        25: .line 156
            aload 12 /* ra */
            invokevirtual javax.naming.RefAddr.getContent:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 14 /* value */
        start local 14 // java.lang.String value
        26: .line 157
            iconst_1
            anewarray java.lang.Class
            astore 15 /* paramTypes */
        start local 15 // java.lang.Class[] paramTypes
        27: .line 158
            aload 15 /* paramTypes */
            iconst_0
            ldc Ljava/lang/String;
            aastore
        28: .line 163
            aload 14 /* value */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 21
            arraylength
            istore 20
            iconst_0
            istore 19
            goto 51
      StackMap locals: org.apache.naming.factory.BeanFactory java.lang.Object javax.naming.Name javax.naming.Context java.util.Hashtable javax.naming.Reference java.lang.String java.lang.Class java.lang.ClassLoader java.beans.BeanInfo java.beans.PropertyDescriptor[] java.lang.Object javax.naming.RefAddr java.util.Map java.lang.String java.lang.Class[] top top top int int java.lang.String[]
      StackMap stack:
        29: aload 21
            iload 19
            aaload
            astore 18 /* param */
        start local 18 // java.lang.String param
        30: .line 164
            aload 18 /* param */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 18 /* param */
        31: .line 168
            aload 18 /* param */
            bipush 61
            invokevirtual java.lang.String.indexOf:(I)I
            istore 17 /* index */
        start local 17 // int index
        32: .line 169
            iload 17 /* index */
            iflt 36
        33: .line 170
            aload 18 /* param */
            iload 17 /* index */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 16 /* setterName */
        start local 16 // java.lang.String setterName
        34: .line 171
            aload 18 /* param */
            iconst_0
            iload 17 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 18 /* param */
        35: .line 172
            goto 40
        end local 16 // java.lang.String setterName
        36: .line 173
      StackMap locals: org.apache.naming.factory.BeanFactory java.lang.Object javax.naming.Name javax.naming.Context java.util.Hashtable javax.naming.Reference java.lang.String java.lang.Class java.lang.ClassLoader java.beans.BeanInfo java.beans.PropertyDescriptor[] java.lang.Object javax.naming.RefAddr java.util.Map java.lang.String java.lang.Class[] top int java.lang.String int int java.lang.String[]
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "set"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        37: .line 174
            aload 18 /* param */
            iconst_0
            iconst_1
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        38: .line 175
            aload 18 /* param */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        39: .line 173
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 16 /* setterName */
        start local 16 // java.lang.String setterName
        40: .line 178
      StackMap locals: org.apache.naming.factory.BeanFactory java.lang.Object javax.naming.Name javax.naming.Context java.util.Hashtable javax.naming.Reference java.lang.String java.lang.Class java.lang.ClassLoader java.beans.BeanInfo java.beans.PropertyDescriptor[] java.lang.Object javax.naming.RefAddr java.util.Map java.lang.String java.lang.Class[] java.lang.String int java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 13 /* forced */
            aload 18 /* param */
        41: .line 179
            aload 7 /* beanClass */
            aload 16 /* setterName */
            aload 15 /* paramTypes */
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
        42: .line 178
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        43: .line 180
            goto 50
      StackMap locals:
      StackMap stack: java.lang.Exception
        44: pop
        45: .line 181
            new javax.naming.NamingException
            dup
        46: .line 182
            new java.lang.StringBuilder
            dup
            ldc "Forced String setter "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 16 /* setterName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        47: .line 183
            ldc " not found for property "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 18 /* param */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        48: .line 182
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        49: .line 181
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            athrow
        end local 18 // java.lang.String param
        end local 17 // int index
        end local 16 // java.lang.String setterName
        50: .line 163
      StackMap locals: org.apache.naming.factory.BeanFactory java.lang.Object javax.naming.Name javax.naming.Context java.util.Hashtable javax.naming.Reference java.lang.String java.lang.Class java.lang.ClassLoader java.beans.BeanInfo java.beans.PropertyDescriptor[] java.lang.Object javax.naming.RefAddr java.util.Map java.lang.String java.lang.Class[] top top top int int java.lang.String[]
      StackMap stack:
            iinc 19 1
      StackMap locals:
      StackMap stack:
        51: iload 19
            iload 20
            if_icmplt 29
        end local 15 // java.lang.Class[] paramTypes
        end local 14 // java.lang.String value
        52: .line 188
      StackMap locals: org.apache.naming.factory.BeanFactory java.lang.Object javax.naming.Name javax.naming.Context java.util.Hashtable javax.naming.Reference java.lang.String java.lang.Class java.lang.ClassLoader java.beans.BeanInfo java.beans.PropertyDescriptor[] java.lang.Object javax.naming.RefAddr java.util.Map
      StackMap stack:
            aload 5 /* ref */
            invokevirtual javax.naming.Reference.getAll:()Ljava/util/Enumeration;
            astore 15 /* e */
        start local 15 // java.util.Enumeration e
        53: .line 190
            goto 136
        54: .line 192
      StackMap locals: org.apache.naming.factory.BeanFactory java.lang.Object javax.naming.Name javax.naming.Context java.util.Hashtable javax.naming.Reference java.lang.String java.lang.Class java.lang.ClassLoader java.beans.BeanInfo java.beans.PropertyDescriptor[] java.lang.Object javax.naming.RefAddr java.util.Map top java.util.Enumeration
      StackMap stack:
            aload 15 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast javax.naming.RefAddr
            astore 12 /* ra */
        55: .line 193
            aload 12 /* ra */
            invokevirtual javax.naming.RefAddr.getType:()Ljava/lang/String;
            astore 16 /* propName */
        start local 16 // java.lang.String propName
        56: .line 195
            aload 16 /* propName */
            ldc "factory"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 136
        57: .line 196
            aload 16 /* propName */
            ldc "scope"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 136
            aload 16 /* propName */
            ldc "auth"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 136
        58: .line 197
            aload 16 /* propName */
            ldc "forceString"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 136
        59: .line 198
            aload 16 /* propName */
            ldc "singleton"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 61
        60: .line 199
            goto 136
        61: .line 202
      StackMap locals: java.lang.String
      StackMap stack:
            aload 12 /* ra */
            invokevirtual javax.naming.RefAddr.getContent:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 14 /* value */
        start local 14 // java.lang.String value
        62: .line 204
            iconst_1
            anewarray java.lang.Object
            astore 17 /* valueArray */
        start local 17 // java.lang.Object[] valueArray
        63: .line 207
            aload 13 /* forced */
            aload 16 /* propName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.reflect.Method
            astore 18 /* method */
        start local 18 // java.lang.reflect.Method method
        64: .line 208
            aload 18 /* method */
            ifnull 74
        65: .line 209
            aload 17 /* valueArray */
            iconst_0
            aload 14 /* value */
            aastore
        66: .line 211
            aload 18 /* method */
            aload 11 /* bean */
            aload 17 /* valueArray */
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        67: .line 212
            goto 136
        68: .line 214
      StackMap locals: org.apache.naming.factory.BeanFactory java.lang.Object javax.naming.Name javax.naming.Context java.util.Hashtable javax.naming.Reference java.lang.String java.lang.Class java.lang.ClassLoader java.beans.BeanInfo java.beans.PropertyDescriptor[] java.lang.Object javax.naming.RefAddr java.util.Map java.lang.String java.util.Enumeration java.lang.String java.lang.Object[] java.lang.reflect.Method
      StackMap stack: java.lang.Exception
            pop
        69: .line 215
            new javax.naming.NamingException
            dup
        70: .line 216
            new java.lang.StringBuilder
            dup
            ldc "Forced String setter "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 18 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        71: .line 217
            ldc " threw exception for property "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 16 /* propName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        72: .line 216
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        73: .line 215
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            athrow
        74: .line 222
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 19 /* i */
        start local 19 // int i
        75: .line 223
            iconst_0
            istore 19 /* i */
            goto 131
        76: .line 225
      StackMap locals: int
      StackMap stack:
            aload 10 /* pda */
            iload 19 /* i */
            aaload
            invokevirtual java.beans.PropertyDescriptor.getName:()Ljava/lang/String;
            aload 16 /* propName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 130
        77: .line 227
            aload 10 /* pda */
            iload 19 /* i */
            aaload
            invokevirtual java.beans.PropertyDescriptor.getPropertyType:()Ljava/lang/Class;
            astore 20 /* propType */
        start local 20 // java.lang.Class propType
        78: .line 229
            aload 20 /* propType */
            ldc Ljava/lang/String;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 81
        79: .line 230
            aload 17 /* valueArray */
            iconst_0
            aload 14 /* value */
            aastore
        80: .line 231
            goto 121
      StackMap locals: java.lang.Class
      StackMap stack:
        81: aload 20 /* propType */
            ldc Ljava/lang/Character;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 83
        82: .line 232
            aload 20 /* propType */
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 87
        83: .line 233
      StackMap locals:
      StackMap stack:
            aload 17 /* valueArray */
            iconst_0
        84: .line 234
            aload 14 /* value */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
        85: .line 233
            aastore
        86: .line 235
            goto 121
      StackMap locals:
      StackMap stack:
        87: aload 20 /* propType */
            ldc Ljava/lang/Byte;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 89
        88: .line 236
            aload 20 /* propType */
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 91
        89: .line 237
      StackMap locals:
      StackMap stack:
            aload 17 /* valueArray */
            iconst_0
            aload 14 /* value */
            invokestatic java.lang.Byte.valueOf:(Ljava/lang/String;)Ljava/lang/Byte;
            aastore
        90: .line 238
            goto 121
      StackMap locals:
      StackMap stack:
        91: aload 20 /* propType */
            ldc Ljava/lang/Short;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 93
        92: .line 239
            aload 20 /* propType */
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 95
        93: .line 240
      StackMap locals:
      StackMap stack:
            aload 17 /* valueArray */
            iconst_0
            aload 14 /* value */
            invokestatic java.lang.Short.valueOf:(Ljava/lang/String;)Ljava/lang/Short;
            aastore
        94: .line 241
            goto 121
      StackMap locals:
      StackMap stack:
        95: aload 20 /* propType */
            ldc Ljava/lang/Integer;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 97
        96: .line 242
            aload 20 /* propType */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 99
        97: .line 243
      StackMap locals:
      StackMap stack:
            aload 17 /* valueArray */
            iconst_0
            aload 14 /* value */
            invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
            aastore
        98: .line 244
            goto 121
      StackMap locals:
      StackMap stack:
        99: aload 20 /* propType */
            ldc Ljava/lang/Long;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 101
       100: .line 245
            aload 20 /* propType */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 103
       101: .line 246
      StackMap locals:
      StackMap stack:
            aload 17 /* valueArray */
            iconst_0
            aload 14 /* value */
            invokestatic java.lang.Long.valueOf:(Ljava/lang/String;)Ljava/lang/Long;
            aastore
       102: .line 247
            goto 121
      StackMap locals:
      StackMap stack:
       103: aload 20 /* propType */
            ldc Ljava/lang/Float;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 105
       104: .line 248
            aload 20 /* propType */
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 107
       105: .line 249
      StackMap locals:
      StackMap stack:
            aload 17 /* valueArray */
            iconst_0
            aload 14 /* value */
            invokestatic java.lang.Float.valueOf:(Ljava/lang/String;)Ljava/lang/Float;
            aastore
       106: .line 250
            goto 121
      StackMap locals:
      StackMap stack:
       107: aload 20 /* propType */
            ldc Ljava/lang/Double;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 109
       108: .line 251
            aload 20 /* propType */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 111
       109: .line 252
      StackMap locals:
      StackMap stack:
            aload 17 /* valueArray */
            iconst_0
            aload 14 /* value */
            invokestatic java.lang.Double.valueOf:(Ljava/lang/String;)Ljava/lang/Double;
            aastore
       110: .line 253
            goto 121
      StackMap locals:
      StackMap stack:
       111: aload 20 /* propType */
            ldc Ljava/lang/Boolean;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 113
       112: .line 254
            aload 20 /* propType */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 115
       113: .line 255
      StackMap locals:
      StackMap stack:
            aload 17 /* valueArray */
            iconst_0
            aload 14 /* value */
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
            aastore
       114: .line 256
            goto 121
       115: .line 257
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
       116: .line 258
            new java.lang.StringBuilder
            dup
            ldc "String conversion for property "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 16 /* propName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       117: .line 259
            ldc " of type '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 20 /* propType */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       118: .line 260
            ldc "' not available"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       119: .line 258
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       120: .line 257
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            athrow
       121: .line 263
      StackMap locals:
      StackMap stack:
            aload 10 /* pda */
            iload 19 /* i */
            aaload
            invokevirtual java.beans.PropertyDescriptor.getWriteMethod:()Ljava/lang/reflect/Method;
            astore 21 /* setProp */
        start local 21 // java.lang.reflect.Method setProp
       122: .line 264
            aload 21 /* setProp */
            ifnull 125
       123: .line 265
            aload 21 /* setProp */
            aload 11 /* bean */
            aload 17 /* valueArray */
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
       124: .line 266
            goto 132
       125: .line 267
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            new javax.naming.NamingException
            dup
       126: .line 268
            new java.lang.StringBuilder
            dup
            ldc "Write not allowed for property: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       127: .line 269
            aload 16 /* propName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       128: .line 268
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       129: .line 267
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            athrow
        end local 21 // java.lang.reflect.Method setProp
        end local 20 // java.lang.Class propType
       130: .line 223
      StackMap locals:
      StackMap stack:
            iinc 19 /* i */ 1
      StackMap locals:
      StackMap stack:
       131: iload 19 /* i */
            aload 10 /* pda */
            arraylength
            if_icmplt 76
       132: .line 278
      StackMap locals:
      StackMap stack:
            iload 19 /* i */
            aload 10 /* pda */
            arraylength
            if_icmpne 136
       133: .line 279
            new javax.naming.NamingException
            dup
       134: .line 280
            new java.lang.StringBuilder
            dup
            ldc "No set method found for property: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 16 /* propName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       135: .line 279
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            athrow
        end local 19 // int i
        end local 18 // java.lang.reflect.Method method
        end local 17 // java.lang.Object[] valueArray
        end local 16 // java.lang.String propName
        end local 14 // java.lang.String value
       136: .line 190
      StackMap locals: org.apache.naming.factory.BeanFactory java.lang.Object javax.naming.Name javax.naming.Context java.util.Hashtable javax.naming.Reference java.lang.String java.lang.Class java.lang.ClassLoader java.beans.BeanInfo java.beans.PropertyDescriptor[] java.lang.Object javax.naming.RefAddr java.util.Map top java.util.Enumeration
      StackMap stack:
            aload 15 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 54
       137: .line 285
            aload 11 /* bean */
       138: areturn
        end local 15 // java.util.Enumeration e
        end local 13 // java.util.Map forced
        end local 12 // javax.naming.RefAddr ra
        end local 11 // java.lang.Object bean
        end local 10 // java.beans.PropertyDescriptor[] pda
        end local 9 // java.beans.BeanInfo bi
        end local 8 // java.lang.ClassLoader tcl
        end local 7 // java.lang.Class beanClass
        end local 6 // java.lang.String beanClassName
        end local 5 // javax.naming.Reference ref
       139: .line 287
      StackMap locals: org.apache.naming.factory.BeanFactory java.lang.Object javax.naming.Name javax.naming.Context java.util.Hashtable
      StackMap stack: java.beans.IntrospectionException
            astore 5 /* ie */
        start local 5 // java.beans.IntrospectionException ie
       140: .line 288
            new javax.naming.NamingException
            dup
            aload 5 /* ie */
            invokevirtual java.beans.IntrospectionException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 6 /* ne */
        start local 6 // javax.naming.NamingException ne
       141: .line 289
            aload 6 /* ne */
            aload 5 /* ie */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
       142: .line 290
            aload 6 /* ne */
            athrow
        end local 6 // javax.naming.NamingException ne
        end local 5 // java.beans.IntrospectionException ie
       143: .line 291
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 5 /* e */
        start local 5 // java.lang.ReflectiveOperationException e
       144: .line 292
            aload 5 /* e */
            invokevirtual java.lang.ReflectiveOperationException.getCause:()Ljava/lang/Throwable;
            astore 6 /* cause */
        start local 6 // java.lang.Throwable cause
       145: .line 293
            aload 6 /* cause */
            instanceof java.lang.ThreadDeath
            ifeq 147
       146: .line 294
            aload 6 /* cause */
            checkcast java.lang.ThreadDeath
            athrow
       147: .line 296
      StackMap locals: java.lang.ReflectiveOperationException java.lang.Throwable
      StackMap stack:
            aload 6 /* cause */
            instanceof java.lang.VirtualMachineError
            ifeq 149
       148: .line 297
            aload 6 /* cause */
            checkcast java.lang.VirtualMachineError
            athrow
       149: .line 299
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 5 /* e */
            invokevirtual java.lang.ReflectiveOperationException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 7 /* ne */
        start local 7 // javax.naming.NamingException ne
       150: .line 300
            aload 7 /* ne */
            aload 5 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
       151: .line 301
            aload 7 /* ne */
            athrow
        end local 7 // javax.naming.NamingException ne
        end local 6 // java.lang.Throwable cause
        end local 5 // java.lang.ReflectiveOperationException e
       152: .line 305
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        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.naming.factory.BeanFactory this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0  153     0           this  Lorg/apache/naming/factory/BeanFactory;
            0  153     1            obj  Ljava/lang/Object;
            0  153     2           name  Ljavax/naming/Name;
            0  153     3        nameCtx  Ljavax/naming/Context;
            0  153     4    environment  Ljava/util/Hashtable<**>;
            2  139     5            ref  Ljavax/naming/Reference;
            3  139     6  beanClassName  Ljava/lang/String;
            4  139     7      beanClass  Ljava/lang/Class<*>;
            6  139     8            tcl  Ljava/lang/ClassLoader;
           14   15     9              e  Ljava/lang/ClassNotFoundException;
           20  139     9             bi  Ljava/beans/BeanInfo;
           21  139    10            pda  [Ljava/beans/PropertyDescriptor;
           22  139    11           bean  Ljava/lang/Object;
           23  139    12             ra  Ljavax/naming/RefAddr;
           24  139    13         forced  Ljava/util/Map<Ljava/lang/String;Ljava/lang/reflect/Method;>;
           26   52    14          value  Ljava/lang/String;
           62  136    14          value  Ljava/lang/String;
           27   52    15     paramTypes  [Ljava/lang/Class;
           34   36    16     setterName  Ljava/lang/String;
           40   50    16     setterName  Ljava/lang/String;
           32   50    17          index  I
           30   50    18          param  Ljava/lang/String;
           53  139    15              e  Ljava/util/Enumeration<Ljavax/naming/RefAddr;>;
           56  136    16       propName  Ljava/lang/String;
           63  136    17     valueArray  [Ljava/lang/Object;
           64  136    18         method  Ljava/lang/reflect/Method;
           75  136    19              i  I
           78  130    20       propType  Ljava/lang/Class<*>;
          122  130    21        setProp  Ljava/lang/reflect/Method;
          140  143     5             ie  Ljava/beans/IntrospectionException;
          141  143     6             ne  Ljavax/naming/NamingException;
          144  152     5              e  Ljava/lang/ReflectiveOperationException;
          145  152     6          cause  Ljava/lang/Throwable;
          150  152     7             ne  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           7     8       9  Class java.lang.ClassNotFoundException
          11    12      13  Class java.lang.ClassNotFoundException
          40    43      44  Class java.lang.NoSuchMethodException
          40    43      44  Class java.lang.SecurityException
          66    67      68  Class java.lang.IllegalAccessException
          66    67      68  Class java.lang.IllegalArgumentException
          66    67      68  Class java.lang.reflect.InvocationTargetException
           1   138     139  Class java.beans.IntrospectionException
           1   138     143  Class java.lang.ReflectiveOperationException
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljava/lang/Object;Ljavax/naming/Name;Ljavax/naming/Context;Ljava/util/Hashtable<**>;)Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      obj          
      name         
      nameCtx      
      environment  
}
SourceFile: "BeanFactory.java"