public abstract class org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler extends org.springframework.jmx.export.assembler.AbstractMBeanInfoAssembler
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler
  super_class: org.springframework.jmx.export.assembler.AbstractMBeanInfoAssembler
{
  protected static final java.lang.String FIELD_GET_METHOD;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "getMethod"

  protected static final java.lang.String FIELD_SET_METHOD;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "setMethod"

  protected static final java.lang.String FIELD_ROLE;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "role"

  protected static final java.lang.String ROLE_GETTER;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "getter"

  protected static final java.lang.String ROLE_SETTER;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "setter"

  protected static final java.lang.String ROLE_OPERATION;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "operation"

  protected static final java.lang.String FIELD_VISIBILITY;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "visibility"

  protected static final int ATTRIBUTE_OPERATION_VISIBILITY;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  protected static final java.lang.String FIELD_CLASS;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "class"

  protected static final java.lang.String FIELD_LOG;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "log"

  protected static final java.lang.String FIELD_LOG_FILE;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "logFile"

  protected static final java.lang.String FIELD_CURRENCY_TIME_LIMIT;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "currencyTimeLimit"

  protected static final java.lang.String FIELD_DEFAULT;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "default"

  protected static final java.lang.String FIELD_PERSIST_POLICY;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "persistPolicy"

  protected static final java.lang.String FIELD_PERSIST_PERIOD;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "persistPeriod"

  protected static final java.lang.String FIELD_PERSIST_LOCATION;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "persistLocation"

  protected static final java.lang.String FIELD_PERSIST_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "persistName"

  protected static final java.lang.String FIELD_DISPLAY_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "displayName"

  protected static final java.lang.String FIELD_UNITS;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "units"

  protected static final java.lang.String FIELD_METRIC_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "metricType"

  protected static final java.lang.String FIELD_METRIC_CATEGORY;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "metricCategory"

  private java.lang.Integer defaultCurrencyTimeLimit;
    descriptor: Ljava/lang/Integer;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private boolean useStrictCasing;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean exposeClassDescriptor;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private org.springframework.core.ParameterNameDiscoverer parameterNameDiscoverer;
    descriptor: Lorg/springframework/core/ParameterNameDiscoverer;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
         0: .line 63
            aload 0 /* this */
            invokespecial org.springframework.jmx.export.assembler.AbstractMBeanInfoAssembler.<init>:()V
         1: .line 181
            aload 0 /* this */
            iconst_1
            putfield org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.useStrictCasing:Z
         2: .line 183
            aload 0 /* this */
            iconst_0
            putfield org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.exposeClassDescriptor:Z
         3: .line 186
            aload 0 /* this */
            new org.springframework.core.DefaultParameterNameDiscoverer
            dup
            invokespecial org.springframework.core.DefaultParameterNameDiscoverer.<init>:()V
            putfield org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.parameterNameDiscoverer:Lorg/springframework/core/ParameterNameDiscoverer;
         4: .line 63
            return
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;

  public void setDefaultCurrencyTimeLimit(java.lang.Integer);
    descriptor: (Ljava/lang/Integer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
        start local 1 // java.lang.Integer defaultCurrencyTimeLimit
         0: .line 210
            aload 0 /* this */
            aload 1 /* defaultCurrencyTimeLimit */
            putfield org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.defaultCurrencyTimeLimit:Ljava/lang/Integer;
         1: .line 211
            return
        end local 1 // java.lang.Integer defaultCurrencyTimeLimit
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    2     0                      this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;
            0    2     1  defaultCurrencyTimeLimit  Ljava/lang/Integer;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                          Name  Flags
      defaultCurrencyTimeLimit  

  protected java.lang.Integer getDefaultCurrencyTimeLimit();
    descriptor: ()Ljava/lang/Integer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
         0: .line 218
            aload 0 /* this */
            getfield org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.defaultCurrencyTimeLimit:Ljava/lang/Integer;
            areturn
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setUseStrictCasing(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
        start local 1 // boolean useStrictCasing
         0: .line 229
            aload 0 /* this */
            iload 1 /* useStrictCasing */
            putfield org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.useStrictCasing:Z
         1: .line 230
            return
        end local 1 // boolean useStrictCasing
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;
            0    2     1  useStrictCasing  Z
    MethodParameters:
                 Name  Flags
      useStrictCasing  

  protected boolean isUseStrictCasing();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
         0: .line 236
            aload 0 /* this */
            getfield org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.useStrictCasing:Z
            ireturn
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;

  public void setExposeClassDescriptor(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
        start local 1 // boolean exposeClassDescriptor
         0: .line 256
            aload 0 /* this */
            iload 1 /* exposeClassDescriptor */
            putfield org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.exposeClassDescriptor:Z
         1: .line 257
            return
        end local 1 // boolean exposeClassDescriptor
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0                   this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;
            0    2     1  exposeClassDescriptor  Z
    MethodParameters:
                       Name  Flags
      exposeClassDescriptor  

  protected boolean isExposeClassDescriptor();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
         0: .line 263
            aload 0 /* this */
            getfield org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.exposeClassDescriptor:Z
            ireturn
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;

  public void setParameterNameDiscoverer(org.springframework.core.ParameterNameDiscoverer);
    descriptor: (Lorg/springframework/core/ParameterNameDiscoverer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
        start local 1 // org.springframework.core.ParameterNameDiscoverer parameterNameDiscoverer
         0: .line 272
            aload 0 /* this */
            aload 1 /* parameterNameDiscoverer */
            putfield org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.parameterNameDiscoverer:Lorg/springframework/core/ParameterNameDiscoverer;
         1: .line 273
            return
        end local 1 // org.springframework.core.ParameterNameDiscoverer parameterNameDiscoverer
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    2     0                     this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;
            0    2     1  parameterNameDiscoverer  Lorg/springframework/core/ParameterNameDiscoverer;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                         Name  Flags
      parameterNameDiscoverer  

  protected org.springframework.core.ParameterNameDiscoverer getParameterNameDiscoverer();
    descriptor: ()Lorg/springframework/core/ParameterNameDiscoverer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
         0: .line 281
            aload 0 /* this */
            getfield org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.parameterNameDiscoverer:Lorg/springframework/core/ParameterNameDiscoverer;
            areturn
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  protected javax.management.modelmbean.ModelMBeanAttributeInfo[] getAttributeInfo(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)[Ljavax/management/modelmbean/ModelMBeanAttributeInfo;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=15, args_size=3
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
        start local 1 // java.lang.Object managedBean
        start local 2 // java.lang.String beanKey
         0: .line 299
            aload 0 /* this */
            aload 1 /* managedBean */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.getClassToExpose:(Ljava/lang/Object;)Ljava/lang/Class;
            invokestatic org.springframework.beans.BeanUtils.getPropertyDescriptors:(Ljava/lang/Class;)[Ljava/beans/PropertyDescriptor;
            astore 3 /* props */
        start local 3 // java.beans.PropertyDescriptor[] props
         1: .line 300
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* infos */
        start local 4 // java.util.List infos
         2: .line 302
            aload 3 /* props */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 25
      StackMap locals: org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler java.lang.Object java.lang.String java.beans.PropertyDescriptor[] java.util.List top int int java.beans.PropertyDescriptor[]
      StackMap stack:
         3: aload 8
            iload 6
            aaload
            astore 5 /* prop */
        start local 5 // java.beans.PropertyDescriptor prop
         4: .line 303
            aload 5 /* prop */
            invokevirtual java.beans.PropertyDescriptor.getReadMethod:()Ljava/lang/reflect/Method;
            astore 9 /* getter */
        start local 9 // java.lang.reflect.Method getter
         5: .line 304
            aload 9 /* getter */
            ifnull 7
            aload 9 /* getter */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpne 7
         6: .line 305
            goto 24
         7: .line 307
      StackMap locals: org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler java.lang.Object java.lang.String java.beans.PropertyDescriptor[] java.util.List java.beans.PropertyDescriptor int int java.beans.PropertyDescriptor[] java.lang.reflect.Method
      StackMap stack:
            aload 9 /* getter */
            ifnull 9
            aload 0 /* this */
            aload 9 /* getter */
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.includeReadAttribute:(Ljava/lang/reflect/Method;Ljava/lang/String;)Z
            ifne 9
         8: .line 308
            aconst_null
            astore 9 /* getter */
         9: .line 311
      StackMap locals:
      StackMap stack:
            aload 5 /* prop */
            invokevirtual java.beans.PropertyDescriptor.getWriteMethod:()Ljava/lang/reflect/Method;
            astore 10 /* setter */
        start local 10 // java.lang.reflect.Method setter
        10: .line 312
            aload 10 /* setter */
            ifnull 12
            aload 0 /* this */
            aload 10 /* setter */
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.includeWriteAttribute:(Ljava/lang/reflect/Method;Ljava/lang/String;)Z
            ifne 12
        11: .line 313
            aconst_null
            astore 10 /* setter */
        12: .line 316
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 9 /* getter */
            ifnonnull 13
            aload 10 /* setter */
            ifnull 24
        13: .line 318
      StackMap locals:
      StackMap stack:
            aload 5 /* prop */
            aload 0 /* this */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.isUseStrictCasing:()Z
            invokestatic org.springframework.jmx.support.JmxUtils.getAttributeName:(Ljava/beans/PropertyDescriptor;Z)Ljava/lang/String;
            astore 11 /* attrName */
        start local 11 // java.lang.String attrName
        14: .line 319
            aload 0 /* this */
            aload 5 /* prop */
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.getAttributeDescription:(Ljava/beans/PropertyDescriptor;Ljava/lang/String;)Ljava/lang/String;
            astore 12 /* description */
        start local 12 // java.lang.String description
        15: .line 320
            new javax.management.modelmbean.ModelMBeanAttributeInfo
            dup
            aload 11 /* attrName */
            aload 12 /* description */
            aload 9 /* getter */
            aload 10 /* setter */
            invokespecial javax.management.modelmbean.ModelMBeanAttributeInfo.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V
            astore 13 /* info */
        start local 13 // javax.management.modelmbean.ModelMBeanAttributeInfo info
        16: .line 322
            aload 13 /* info */
            invokevirtual javax.management.modelmbean.ModelMBeanAttributeInfo.getDescriptor:()Ljavax/management/Descriptor;
            astore 14 /* desc */
        start local 14 // javax.management.Descriptor desc
        17: .line 323
            aload 9 /* getter */
            ifnull 19
        18: .line 324
            aload 14 /* desc */
            ldc "getMethod"
            aload 9 /* getter */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokeinterface javax.management.Descriptor.setField:(Ljava/lang/String;Ljava/lang/Object;)V
        19: .line 326
      StackMap locals: org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler java.lang.Object java.lang.String java.beans.PropertyDescriptor[] java.util.List java.beans.PropertyDescriptor int int java.beans.PropertyDescriptor[] java.lang.reflect.Method java.lang.reflect.Method java.lang.String java.lang.String javax.management.modelmbean.ModelMBeanAttributeInfo javax.management.Descriptor
      StackMap stack:
            aload 10 /* setter */
            ifnull 21
        20: .line 327
            aload 14 /* desc */
            ldc "setMethod"
            aload 10 /* setter */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokeinterface javax.management.Descriptor.setField:(Ljava/lang/String;Ljava/lang/Object;)V
        21: .line 330
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 14 /* desc */
            aload 9 /* getter */
            aload 10 /* setter */
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.populateAttributeDescriptor:(Ljavax/management/Descriptor;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/String;)V
        22: .line 331
            aload 13 /* info */
            aload 14 /* desc */
            invokevirtual javax.management.modelmbean.ModelMBeanAttributeInfo.setDescriptor:(Ljavax/management/Descriptor;)V
        23: .line 332
            aload 4 /* infos */
            aload 13 /* info */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 14 // javax.management.Descriptor desc
        end local 13 // javax.management.modelmbean.ModelMBeanAttributeInfo info
        end local 12 // java.lang.String description
        end local 11 // java.lang.String attrName
        end local 10 // java.lang.reflect.Method setter
        end local 9 // java.lang.reflect.Method getter
        end local 5 // java.beans.PropertyDescriptor prop
        24: .line 302
      StackMap locals: org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler java.lang.Object java.lang.String java.beans.PropertyDescriptor[] java.util.List top int int java.beans.PropertyDescriptor[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        25: iload 6
            iload 7
            if_icmplt 3
        26: .line 336
            aload 4 /* infos */
            iconst_0
            anewarray javax.management.modelmbean.ModelMBeanAttributeInfo
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast javax.management.modelmbean.ModelMBeanAttributeInfo[]
            areturn
        end local 4 // java.util.List infos
        end local 3 // java.beans.PropertyDescriptor[] props
        end local 2 // java.lang.String beanKey
        end local 1 // java.lang.Object managedBean
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   27     0         this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;
            0   27     1  managedBean  Ljava/lang/Object;
            0   27     2      beanKey  Ljava/lang/String;
            1   27     3        props  [Ljava/beans/PropertyDescriptor;
            2   27     4        infos  Ljava/util/List<Ljavax/management/modelmbean/ModelMBeanAttributeInfo;>;
            4   24     5         prop  Ljava/beans/PropertyDescriptor;
            5   24     9       getter  Ljava/lang/reflect/Method;
           10   24    10       setter  Ljava/lang/reflect/Method;
           14   24    11     attrName  Ljava/lang/String;
           15   24    12  description  Ljava/lang/String;
           16   24    13         info  Ljavax/management/modelmbean/ModelMBeanAttributeInfo;
           17   24    14         desc  Ljavax/management/Descriptor;
    Exceptions:
      throws javax.management.JMException
    MethodParameters:
             Name  Flags
      managedBean  
      beanKey      

  protected javax.management.modelmbean.ModelMBeanOperationInfo[] getOperationInfo(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)[Ljavax/management/modelmbean/ModelMBeanOperationInfo;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
        start local 1 // java.lang.Object managedBean
        start local 2 // java.lang.String beanKey
         0: .line 353
            aload 0 /* this */
            aload 1 /* managedBean */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.getClassToExpose:(Ljava/lang/Object;)Ljava/lang/Class;
            invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
            astore 3 /* methods */
        start local 3 // java.lang.reflect.Method[] methods
         1: .line 354
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* infos */
        start local 4 // java.util.List infos
         2: .line 356
            aload 3 /* methods */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 33
      StackMap locals: org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler java.lang.Object java.lang.String java.lang.reflect.Method[] java.util.List top int int java.lang.reflect.Method[]
      StackMap stack:
         3: aload 8
            iload 6
            aaload
            astore 5 /* method */
        start local 5 // java.lang.reflect.Method method
         4: .line 357
            aload 5 /* method */
            invokevirtual java.lang.reflect.Method.isSynthetic:()Z
            ifeq 6
         5: .line 358
            goto 32
         6: .line 360
      StackMap locals: org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler java.lang.Object java.lang.String java.lang.reflect.Method[] java.util.List java.lang.reflect.Method int int java.lang.reflect.Method[]
      StackMap stack:
            ldc Ljava/lang/Object;
            aload 5 /* method */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            if_acmpne 8
         7: .line 361
            goto 32
         8: .line 364
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 9 /* info */
        start local 9 // javax.management.modelmbean.ModelMBeanOperationInfo info
         9: .line 365
            aload 5 /* method */
            invokestatic org.springframework.beans.BeanUtils.findPropertyForMethod:(Ljava/lang/reflect/Method;)Ljava/beans/PropertyDescriptor;
            astore 10 /* pd */
        start local 10 // java.beans.PropertyDescriptor pd
        10: .line 366
            aload 10 /* pd */
            ifnull 22
            aload 5 /* method */
            aload 10 /* pd */
            invokevirtual java.beans.PropertyDescriptor.getReadMethod:()Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.equals:(Ljava/lang/Object;)Z
            ifeq 11
            aload 0 /* this */
            aload 5 /* method */
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.includeReadAttribute:(Ljava/lang/reflect/Method;Ljava/lang/String;)Z
            ifne 12
        11: .line 367
      StackMap locals: javax.management.modelmbean.ModelMBeanOperationInfo java.beans.PropertyDescriptor
      StackMap stack:
            aload 5 /* method */
            aload 10 /* pd */
            invokevirtual java.beans.PropertyDescriptor.getWriteMethod:()Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.equals:(Ljava/lang/Object;)Z
            ifeq 22
            aload 0 /* this */
            aload 5 /* method */
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.includeWriteAttribute:(Ljava/lang/reflect/Method;Ljava/lang/String;)Z
            ifeq 22
        12: .line 370
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* method */
            aload 10 /* pd */
            invokevirtual java.beans.PropertyDescriptor.getName:()Ljava/lang/String;
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.createModelMBeanOperationInfo:(Ljava/lang/reflect/Method;Ljava/lang/String;Ljava/lang/String;)Ljavax/management/modelmbean/ModelMBeanOperationInfo;
            astore 9 /* info */
        13: .line 371
            aload 9 /* info */
            invokevirtual javax.management.modelmbean.ModelMBeanOperationInfo.getDescriptor:()Ljavax/management/Descriptor;
            astore 11 /* desc */
        start local 11 // javax.management.Descriptor desc
        14: .line 372
            aload 5 /* method */
            aload 10 /* pd */
            invokevirtual java.beans.PropertyDescriptor.getReadMethod:()Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.equals:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 373
            aload 11 /* desc */
            ldc "role"
            ldc "getter"
            invokeinterface javax.management.Descriptor.setField:(Ljava/lang/String;Ljava/lang/Object;)V
        16: .line 374
            goto 18
        17: .line 376
      StackMap locals: javax.management.Descriptor
      StackMap stack:
            aload 11 /* desc */
            ldc "role"
            ldc "setter"
            invokeinterface javax.management.Descriptor.setField:(Ljava/lang/String;Ljava/lang/Object;)V
        18: .line 378
      StackMap locals:
      StackMap stack:
            aload 11 /* desc */
            ldc "visibility"
            iconst_4
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface javax.management.Descriptor.setField:(Ljava/lang/String;Ljava/lang/Object;)V
        19: .line 379
            aload 0 /* this */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.isExposeClassDescriptor:()Z
            ifeq 21
        20: .line 380
            aload 11 /* desc */
            ldc "class"
            aload 0 /* this */
            aload 1 /* managedBean */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.getClassForDescriptor:(Ljava/lang/Object;)Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokeinterface javax.management.Descriptor.setField:(Ljava/lang/String;Ljava/lang/Object;)V
        21: .line 382
      StackMap locals:
      StackMap stack:
            aload 9 /* info */
            aload 11 /* desc */
            invokevirtual javax.management.modelmbean.ModelMBeanOperationInfo.setDescriptor:(Ljavax/management/Descriptor;)V
        end local 11 // javax.management.Descriptor desc
        22: .line 386
      StackMap locals:
      StackMap stack:
            aload 9 /* info */
            ifnonnull 30
            aload 0 /* this */
            aload 5 /* method */
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.includeOperation:(Ljava/lang/reflect/Method;Ljava/lang/String;)Z
            ifeq 30
        23: .line 387
            aload 0 /* this */
            aload 5 /* method */
            aload 5 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.createModelMBeanOperationInfo:(Ljava/lang/reflect/Method;Ljava/lang/String;Ljava/lang/String;)Ljavax/management/modelmbean/ModelMBeanOperationInfo;
            astore 9 /* info */
        24: .line 388
            aload 9 /* info */
            invokevirtual javax.management.modelmbean.ModelMBeanOperationInfo.getDescriptor:()Ljavax/management/Descriptor;
            astore 11 /* desc */
        start local 11 // javax.management.Descriptor desc
        25: .line 389
            aload 11 /* desc */
            ldc "role"
            ldc "operation"
            invokeinterface javax.management.Descriptor.setField:(Ljava/lang/String;Ljava/lang/Object;)V
        26: .line 390
            aload 0 /* this */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.isExposeClassDescriptor:()Z
            ifeq 28
        27: .line 391
            aload 11 /* desc */
            ldc "class"
            aload 0 /* this */
            aload 1 /* managedBean */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.getClassForDescriptor:(Ljava/lang/Object;)Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokeinterface javax.management.Descriptor.setField:(Ljava/lang/String;Ljava/lang/Object;)V
        28: .line 393
      StackMap locals: javax.management.Descriptor
      StackMap stack:
            aload 0 /* this */
            aload 11 /* desc */
            aload 5 /* method */
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.populateOperationDescriptor:(Ljavax/management/Descriptor;Ljava/lang/reflect/Method;Ljava/lang/String;)V
        29: .line 394
            aload 9 /* info */
            aload 11 /* desc */
            invokevirtual javax.management.modelmbean.ModelMBeanOperationInfo.setDescriptor:(Ljavax/management/Descriptor;)V
        end local 11 // javax.management.Descriptor desc
        30: .line 397
      StackMap locals:
      StackMap stack:
            aload 9 /* info */
            ifnull 32
        31: .line 398
            aload 4 /* infos */
            aload 9 /* info */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // java.beans.PropertyDescriptor pd
        end local 9 // javax.management.modelmbean.ModelMBeanOperationInfo info
        end local 5 // java.lang.reflect.Method method
        32: .line 356
      StackMap locals: org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler java.lang.Object java.lang.String java.lang.reflect.Method[] java.util.List top int int java.lang.reflect.Method[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        33: iload 6
            iload 7
            if_icmplt 3
        34: .line 402
            aload 4 /* infos */
            iconst_0
            anewarray javax.management.modelmbean.ModelMBeanOperationInfo
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast javax.management.modelmbean.ModelMBeanOperationInfo[]
            areturn
        end local 4 // java.util.List infos
        end local 3 // java.lang.reflect.Method[] methods
        end local 2 // java.lang.String beanKey
        end local 1 // java.lang.Object managedBean
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   35     0         this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;
            0   35     1  managedBean  Ljava/lang/Object;
            0   35     2      beanKey  Ljava/lang/String;
            1   35     3      methods  [Ljava/lang/reflect/Method;
            2   35     4        infos  Ljava/util/List<Ljavax/management/modelmbean/ModelMBeanOperationInfo;>;
            4   32     5       method  Ljava/lang/reflect/Method;
            9   32     9         info  Ljavax/management/modelmbean/ModelMBeanOperationInfo;
           10   32    10           pd  Ljava/beans/PropertyDescriptor;
           14   22    11         desc  Ljavax/management/Descriptor;
           25   30    11         desc  Ljavax/management/Descriptor;
    MethodParameters:
             Name  Flags
      managedBean  
      beanKey      

  protected javax.management.modelmbean.ModelMBeanOperationInfo createModelMBeanOperationInfo(java.lang.reflect.Method, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/String;Ljava/lang/String;)Ljavax/management/modelmbean/ModelMBeanOperationInfo;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
        start local 1 // java.lang.reflect.Method method
        start local 2 // java.lang.String name
        start local 3 // java.lang.String beanKey
         0: .line 416
            aload 0 /* this */
            aload 1 /* method */
            aload 3 /* beanKey */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.getOperationParameters:(Ljava/lang/reflect/Method;Ljava/lang/String;)[Ljavax/management/MBeanParameterInfo;
            astore 4 /* params */
        start local 4 // javax.management.MBeanParameterInfo[] params
         1: .line 417
            aload 4 /* params */
            arraylength
            ifne 3
         2: .line 418
            new javax.management.modelmbean.ModelMBeanOperationInfo
            dup
            aload 0 /* this */
            aload 1 /* method */
            aload 3 /* beanKey */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.getOperationDescription:(Ljava/lang/reflect/Method;Ljava/lang/String;)Ljava/lang/String;
            aload 1 /* method */
            invokespecial javax.management.modelmbean.ModelMBeanOperationInfo.<init>:(Ljava/lang/String;Ljava/lang/reflect/Method;)V
            areturn
         3: .line 421
      StackMap locals: javax.management.MBeanParameterInfo[]
      StackMap stack:
            new javax.management.modelmbean.ModelMBeanOperationInfo
            dup
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
         4: .line 422
            aload 0 /* this */
            aload 1 /* method */
            aload 3 /* beanKey */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.getOperationDescription:(Ljava/lang/reflect/Method;Ljava/lang/String;)Ljava/lang/String;
         5: .line 423
            aload 0 /* this */
            aload 1 /* method */
            aload 3 /* beanKey */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.getOperationParameters:(Ljava/lang/reflect/Method;Ljava/lang/String;)[Ljavax/management/MBeanParameterInfo;
         6: .line 424
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         7: .line 425
            iconst_3
         8: .line 421
            invokespecial javax.management.modelmbean.ModelMBeanOperationInfo.<init>:(Ljava/lang/String;Ljava/lang/String;[Ljavax/management/MBeanParameterInfo;Ljava/lang/String;I)V
            areturn
        end local 4 // javax.management.MBeanParameterInfo[] params
        end local 3 // java.lang.String beanKey
        end local 2 // java.lang.String name
        end local 1 // java.lang.reflect.Method method
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;
            0    9     1   method  Ljava/lang/reflect/Method;
            0    9     2     name  Ljava/lang/String;
            0    9     3  beanKey  Ljava/lang/String;
            1    9     4   params  [Ljavax/management/MBeanParameterInfo;
    MethodParameters:
         Name  Flags
      method   
      name     
      beanKey  

  protected java.lang.Class<?> getClassForDescriptor();
    descriptor: (Ljava/lang/Object;)Ljava/lang/Class;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
        start local 1 // java.lang.Object managedBean
         0: .line 441
            aload 1 /* managedBean */
            invokestatic org.springframework.aop.support.AopUtils.isJdkDynamicProxy:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 442
            aload 1 /* managedBean */
            invokestatic org.springframework.aop.framework.AopProxyUtils.proxiedUserInterfaces:(Ljava/lang/Object;)[Ljava/lang/Class;
            iconst_0
            aaload
            areturn
         2: .line 444
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* managedBean */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.getClassToExpose:(Ljava/lang/Object;)Ljava/lang/Class;
            areturn
        end local 1 // java.lang.Object managedBean
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;
            0    3     1  managedBean  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)Ljava/lang/Class<*>;
    MethodParameters:
             Name  Flags
      managedBean  

  protected abstract boolean includeReadAttribute(java.lang.reflect.Method, java.lang.String);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/String;)Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      method   
      beanKey  

  protected abstract boolean includeWriteAttribute(java.lang.reflect.Method, java.lang.String);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/String;)Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      method   
      beanKey  

  protected abstract boolean includeOperation(java.lang.reflect.Method, java.lang.String);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/String;)Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      method   
      beanKey  

  protected java.lang.String getAttributeDescription(java.beans.PropertyDescriptor, java.lang.String);
    descriptor: (Ljava/beans/PropertyDescriptor;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
        start local 1 // java.beans.PropertyDescriptor propertyDescriptor
        start local 2 // java.lang.String beanKey
         0: .line 487
            aload 1 /* propertyDescriptor */
            invokevirtual java.beans.PropertyDescriptor.getDisplayName:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String beanKey
        end local 1 // java.beans.PropertyDescriptor propertyDescriptor
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;
            0    1     1  propertyDescriptor  Ljava/beans/PropertyDescriptor;
            0    1     2             beanKey  Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      propertyDescriptor  
      beanKey             

  protected java.lang.String getOperationDescription(java.lang.reflect.Method, java.lang.String);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
        start local 1 // java.lang.reflect.Method method
        start local 2 // java.lang.String beanKey
         0: .line 500
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String beanKey
        end local 1 // java.lang.reflect.Method method
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;
            0    1     1   method  Ljava/lang/reflect/Method;
            0    1     2  beanKey  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      method   
      beanKey  

  protected javax.management.MBeanParameterInfo[] getOperationParameters(java.lang.reflect.Method, java.lang.String);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/String;)[Ljavax/management/MBeanParameterInfo;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=8, args_size=3
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
        start local 1 // java.lang.reflect.Method method
        start local 2 // java.lang.String beanKey
         0: .line 512
            aload 0 /* this */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.getParameterNameDiscoverer:()Lorg/springframework/core/ParameterNameDiscoverer;
            astore 3 /* paramNameDiscoverer */
        start local 3 // org.springframework.core.ParameterNameDiscoverer paramNameDiscoverer
         1: .line 513
            aload 3 /* paramNameDiscoverer */
            ifnull 2
            aload 3 /* paramNameDiscoverer */
            aload 1 /* method */
            invokeinterface org.springframework.core.ParameterNameDiscoverer.getParameterNames:(Ljava/lang/reflect/Method;)[Ljava/lang/String;
            goto 3
      StackMap locals: org.springframework.core.ParameterNameDiscoverer
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String[]
         3: astore 4 /* paramNames */
        start local 4 // java.lang.String[] paramNames
         4: .line 514
            aload 4 /* paramNames */
            ifnonnull 6
         5: .line 515
            iconst_0
            anewarray javax.management.MBeanParameterInfo
            areturn
         6: .line 518
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 4 /* paramNames */
            arraylength
            anewarray javax.management.MBeanParameterInfo
            astore 5 /* info */
        start local 5 // javax.management.MBeanParameterInfo[] info
         7: .line 519
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            astore 6 /* typeParameters */
        start local 6 // java.lang.Class[] typeParameters
         8: .line 520
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         9: goto 12
        10: .line 521
      StackMap locals: javax.management.MBeanParameterInfo[] java.lang.Class[] int
      StackMap stack:
            aload 5 /* info */
            iload 7 /* i */
            new javax.management.MBeanParameterInfo
            dup
            aload 4 /* paramNames */
            iload 7 /* i */
            aaload
            aload 6 /* typeParameters */
            iload 7 /* i */
            aaload
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 4 /* paramNames */
            iload 7 /* i */
            aaload
            invokespecial javax.management.MBeanParameterInfo.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            aastore
        11: .line 520
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 7 /* i */
            aload 5 /* info */
            arraylength
            if_icmplt 10
        end local 7 // int i
        13: .line 524
            aload 5 /* info */
            areturn
        end local 6 // java.lang.Class[] typeParameters
        end local 5 // javax.management.MBeanParameterInfo[] info
        end local 4 // java.lang.String[] paramNames
        end local 3 // org.springframework.core.ParameterNameDiscoverer paramNameDiscoverer
        end local 2 // java.lang.String beanKey
        end local 1 // java.lang.reflect.Method method
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   14     0                 this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;
            0   14     1               method  Ljava/lang/reflect/Method;
            0   14     2              beanKey  Ljava/lang/String;
            1   14     3  paramNameDiscoverer  Lorg/springframework/core/ParameterNameDiscoverer;
            4   14     4           paramNames  [Ljava/lang/String;
            7   14     5                 info  [Ljavax/management/MBeanParameterInfo;
            8   14     6       typeParameters  [Ljava/lang/Class;
            9   13     7                    i  I
    MethodParameters:
         Name  Flags
      method   
      beanKey  

  protected void populateMBeanDescriptor(javax.management.Descriptor, java.lang.Object, java.lang.String);
    descriptor: (Ljavax/management/Descriptor;Ljava/lang/Object;Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
        start local 1 // javax.management.Descriptor descriptor
        start local 2 // java.lang.Object managedBean
        start local 3 // java.lang.String beanKey
         0: .line 540
            aload 0 /* this */
            aload 1 /* descriptor */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.applyDefaultCurrencyTimeLimit:(Ljavax/management/Descriptor;)V
         1: .line 541
            return
        end local 3 // java.lang.String beanKey
        end local 2 // java.lang.Object managedBean
        end local 1 // javax.management.Descriptor descriptor
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;
            0    2     1   descriptor  Ljavax/management/Descriptor;
            0    2     2  managedBean  Ljava/lang/Object;
            0    2     3      beanKey  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      descriptor   
      managedBean  
      beanKey      

  protected void populateAttributeDescriptor(javax.management.Descriptor, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.String);
    descriptor: (Ljavax/management/Descriptor;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
        start local 1 // javax.management.Descriptor desc
        start local 2 // java.lang.reflect.Method getter
        start local 3 // java.lang.reflect.Method setter
        start local 4 // java.lang.String beanKey
         0: .line 559
            aload 0 /* this */
            aload 1 /* desc */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.applyDefaultCurrencyTimeLimit:(Ljavax/management/Descriptor;)V
         1: .line 560
            return
        end local 4 // java.lang.String beanKey
        end local 3 // java.lang.reflect.Method setter
        end local 2 // java.lang.reflect.Method getter
        end local 1 // javax.management.Descriptor desc
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;
            0    2     1     desc  Ljavax/management/Descriptor;
            0    2     2   getter  Ljava/lang/reflect/Method;
            0    2     3   setter  Ljava/lang/reflect/Method;
            0    2     4  beanKey  Ljava/lang/String;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
        org.springframework.lang.Nullable()
      3:
    MethodParameters:
         Name  Flags
      desc     
      getter   
      setter   
      beanKey  

  protected void populateOperationDescriptor(javax.management.Descriptor, java.lang.reflect.Method, java.lang.String);
    descriptor: (Ljavax/management/Descriptor;Ljava/lang/reflect/Method;Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
        start local 1 // javax.management.Descriptor desc
        start local 2 // java.lang.reflect.Method method
        start local 3 // java.lang.String beanKey
         0: .line 575
            aload 0 /* this */
            aload 1 /* desc */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.applyDefaultCurrencyTimeLimit:(Ljavax/management/Descriptor;)V
         1: .line 576
            return
        end local 3 // java.lang.String beanKey
        end local 2 // java.lang.reflect.Method method
        end local 1 // javax.management.Descriptor desc
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;
            0    2     1     desc  Ljavax/management/Descriptor;
            0    2     2   method  Ljava/lang/reflect/Method;
            0    2     3  beanKey  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      desc     
      method   
      beanKey  

  protected final void applyDefaultCurrencyTimeLimit(javax.management.Descriptor);
    descriptor: (Ljavax/management/Descriptor;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
        start local 1 // javax.management.Descriptor desc
         0: .line 585
            aload 0 /* this */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.getDefaultCurrencyTimeLimit:()Ljava/lang/Integer;
            ifnull 2
         1: .line 586
            aload 1 /* desc */
            ldc "currencyTimeLimit"
            aload 0 /* this */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.getDefaultCurrencyTimeLimit:()Ljava/lang/Integer;
            invokevirtual java.lang.Integer.toString:()Ljava/lang/String;
            invokeinterface javax.management.Descriptor.setField:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 588
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.management.Descriptor desc
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;
            0    3     1  desc  Ljavax/management/Descriptor;
    MethodParameters:
      Name  Flags
      desc  

  protected void applyCurrencyTimeLimit(javax.management.Descriptor, int);
    descriptor: (Ljavax/management/Descriptor;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
        start local 1 // javax.management.Descriptor desc
        start local 2 // int currencyTimeLimit
         0: .line 602
            iload 2 /* currencyTimeLimit */
            ifle 3
         1: .line 604
            aload 1 /* desc */
            ldc "currencyTimeLimit"
            iload 2 /* currencyTimeLimit */
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            invokeinterface javax.management.Descriptor.setField:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 605
            goto 7
         3: .line 606
      StackMap locals:
      StackMap stack:
            iload 2 /* currencyTimeLimit */
            ifne 6
         4: .line 608
            aload 1 /* desc */
            ldc "currencyTimeLimit"
            ldc 2147483647
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            invokeinterface javax.management.Descriptor.setField:(Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 609
            goto 7
         6: .line 612
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* desc */
            invokevirtual org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler.applyDefaultCurrencyTimeLimit:(Ljavax/management/Descriptor;)V
         7: .line 614
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int currencyTimeLimit
        end local 1 // javax.management.Descriptor desc
        end local 0 // org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    8     0               this  Lorg/springframework/jmx/export/assembler/AbstractReflectiveMBeanInfoAssembler;
            0    8     1               desc  Ljavax/management/Descriptor;
            0    8     2  currencyTimeLimit  I
    MethodParameters:
                   Name  Flags
      desc               
      currencyTimeLimit  
}
SourceFile: "AbstractReflectiveMBeanInfoAssembler.java"