public class org.springframework.jmx.export.MBeanExporter extends org.springframework.jmx.support.MBeanRegistrationSupport implements org.springframework.jmx.export.MBeanExportOperations, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.SmartInitializingSingleton, org.springframework.beans.factory.DisposableBean
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.jmx.export.MBeanExporter
  super_class: org.springframework.jmx.support.MBeanRegistrationSupport
{
  public static final int AUTODETECT_NONE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int AUTODETECT_MBEAN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int AUTODETECT_ASSEMBLER;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int AUTODETECT_ALL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

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

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

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

  private static final org.springframework.core.Constants constants;
    descriptor: Lorg/springframework/core/Constants;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private java.util.Map<java.lang.String, java.lang.Object> beans;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

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

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

  private org.springframework.jmx.export.assembler.MBeanInfoAssembler assembler;
    descriptor: Lorg/springframework/jmx/export/assembler/MBeanInfoAssembler;
    flags: (0x0002) ACC_PRIVATE

  private org.springframework.jmx.export.naming.ObjectNamingStrategy namingStrategy;
    descriptor: Lorg/springframework/jmx/export/naming/ObjectNamingStrategy;
    flags: (0x0002) ACC_PRIVATE

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

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

  private java.util.Set<java.lang.String> excludedBeans;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private org.springframework.jmx.export.MBeanExporterListener[] listeners;
    descriptor: [Lorg/springframework/jmx/export/MBeanExporterListener;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private org.springframework.jmx.export.NotificationListenerBean[] notificationListeners;
    descriptor: [Lorg/springframework/jmx/export/NotificationListenerBean;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private final java.util.Map<org.springframework.jmx.export.NotificationListenerBean, javax.management.ObjectName[]> registeredNotificationListeners;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lorg/springframework/jmx/export/NotificationListenerBean;[Ljavax/management/ObjectName;>;

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

  private org.springframework.beans.factory.ListableBeanFactory beanFactory;
    descriptor: Lorg/springframework/beans/factory/ListableBeanFactory;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 141
            new org.springframework.core.Constants
            dup
            ldc Lorg/springframework/jmx/export/MBeanExporter;
            invokespecial org.springframework.core.Constants.<init>:(Ljava/lang/Class;)V
            putstatic org.springframework.jmx.export.MBeanExporter.constants:Lorg/springframework/core/Constants;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.jmx.export.MBeanExporter this
         0: .line 102
            aload 0 /* this */
            invokespecial org.springframework.jmx.support.MBeanRegistrationSupport.<init>:()V
         1: .line 152
            aload 0 /* this */
            iconst_0
            putfield org.springframework.jmx.export.MBeanExporter.allowEagerInit:Z
         2: .line 155
            aload 0 /* this */
            new org.springframework.jmx.export.assembler.SimpleReflectiveMBeanInfoAssembler
            dup
            invokespecial org.springframework.jmx.export.assembler.SimpleReflectiveMBeanInfoAssembler.<init>:()V
            putfield org.springframework.jmx.export.MBeanExporter.assembler:Lorg/springframework/jmx/export/assembler/MBeanInfoAssembler;
         3: .line 158
            aload 0 /* this */
            new org.springframework.jmx.export.naming.KeyNamingStrategy
            dup
            invokespecial org.springframework.jmx.export.naming.KeyNamingStrategy.<init>:()V
            putfield org.springframework.jmx.export.MBeanExporter.namingStrategy:Lorg/springframework/jmx/export/naming/ObjectNamingStrategy;
         4: .line 161
            aload 0 /* this */
            iconst_1
            putfield org.springframework.jmx.export.MBeanExporter.ensureUniqueRuntimeObjectNames:Z
         5: .line 164
            aload 0 /* this */
            iconst_1
            putfield org.springframework.jmx.export.MBeanExporter.exposeManagedResourceClassLoader:Z
         6: .line 167
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.springframework.jmx.export.MBeanExporter.excludedBeans:Ljava/util/Set;
         7: .line 178
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield org.springframework.jmx.export.MBeanExporter.registeredNotificationListeners:Ljava/util/Map;
         8: .line 182
            aload 0 /* this */
            invokestatic org.springframework.util.ClassUtils.getDefaultClassLoader:()Ljava/lang/ClassLoader;
            putfield org.springframework.jmx.export.MBeanExporter.beanClassLoader:Ljava/lang/ClassLoader;
         9: .line 102
            return
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/springframework/jmx/export/MBeanExporter;

  public void setBeans(java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.util.Map beans
         0: .line 207
            aload 0 /* this */
            aload 1 /* beans */
            putfield org.springframework.jmx.export.MBeanExporter.beans:Ljava/util/Map;
         1: .line 208
            return
        end local 1 // java.util.Map beans
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/springframework/jmx/export/MBeanExporter;
            0    2     1  beans  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)V
    MethodParameters:
       Name  Flags
      beans  

  public void setAutodetect(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // boolean autodetect
         0: .line 221
            aload 0 /* this */
            iload 1 /* autodetect */
            ifeq 1
            iconst_3
            goto 2
      StackMap locals:
      StackMap stack: org.springframework.jmx.export.MBeanExporter
         1: iconst_0
      StackMap locals: org.springframework.jmx.export.MBeanExporter int
      StackMap stack: org.springframework.jmx.export.MBeanExporter int
         2: invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putfield org.springframework.jmx.export.MBeanExporter.autodetectMode:Ljava/lang/Integer;
         3: .line 222
            return
        end local 1 // boolean autodetect
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/springframework/jmx/export/MBeanExporter;
            0    4     1  autodetect  Z
    MethodParameters:
            Name  Flags
      autodetect  

  public void setAutodetectMode(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // int autodetectMode
         0: .line 235
            getstatic org.springframework.jmx.export.MBeanExporter.constants:Lorg/springframework/core/Constants;
            ldc "AUTODETECT_"
            invokevirtual org.springframework.core.Constants.getValues:(Ljava/lang/String;)Ljava/util/Set;
            iload 1 /* autodetectMode */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 236
            new java.lang.IllegalArgumentException
            dup
            ldc "Only values of autodetect constants allowed"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 238
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* autodetectMode */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putfield org.springframework.jmx.export.MBeanExporter.autodetectMode:Ljava/lang/Integer;
         3: .line 239
            return
        end local 1 // int autodetectMode
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/springframework/jmx/export/MBeanExporter;
            0    4     1  autodetectMode  I
    MethodParameters:
                Name  Flags
      autodetectMode  

  public void setAutodetectModeName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.lang.String constantName
         0: .line 252
            aload 1 /* constantName */
            ldc "AUTODETECT_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 2
         1: .line 253
            new java.lang.IllegalArgumentException
            dup
            ldc "Only autodetect constants allowed"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.springframework.jmx.export.MBeanExporter.constants:Lorg/springframework/core/Constants;
            aload 1 /* constantName */
            invokevirtual org.springframework.core.Constants.asNumber:(Ljava/lang/String;)Ljava/lang/Number;
            checkcast java.lang.Integer
            putfield org.springframework.jmx.export.MBeanExporter.autodetectMode:Ljava/lang/Integer;
         3: .line 256
            return
        end local 1 // java.lang.String constantName
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/springframework/jmx/export/MBeanExporter;
            0    4     1  constantName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      constantName  

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

  public void setAssembler(org.springframework.jmx.export.assembler.MBeanInfoAssembler);
    descriptor: (Lorg/springframework/jmx/export/assembler/MBeanInfoAssembler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // org.springframework.jmx.export.assembler.MBeanInfoAssembler assembler
         0: .line 281
            aload 0 /* this */
            aload 1 /* assembler */
            putfield org.springframework.jmx.export.MBeanExporter.assembler:Lorg/springframework/jmx/export/assembler/MBeanInfoAssembler;
         1: .line 282
            return
        end local 1 // org.springframework.jmx.export.assembler.MBeanInfoAssembler assembler
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/springframework/jmx/export/MBeanExporter;
            0    2     1  assembler  Lorg/springframework/jmx/export/assembler/MBeanInfoAssembler;
    MethodParameters:
           Name  Flags
      assembler  

  public void setNamingStrategy(org.springframework.jmx.export.naming.ObjectNamingStrategy);
    descriptor: (Lorg/springframework/jmx/export/naming/ObjectNamingStrategy;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // org.springframework.jmx.export.naming.ObjectNamingStrategy namingStrategy
         0: .line 291
            aload 0 /* this */
            aload 1 /* namingStrategy */
            putfield org.springframework.jmx.export.MBeanExporter.namingStrategy:Lorg/springframework/jmx/export/naming/ObjectNamingStrategy;
         1: .line 292
            return
        end local 1 // org.springframework.jmx.export.naming.ObjectNamingStrategy namingStrategy
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/springframework/jmx/export/MBeanExporter;
            0    2     1  namingStrategy  Lorg/springframework/jmx/export/naming/ObjectNamingStrategy;
    MethodParameters:
                Name  Flags
      namingStrategy  

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

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

  public void setExcludedBeans(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.lang.String[] excludedBeans
         0: .line 323
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.excludedBeans:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
         1: .line 324
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.excludedBeans:Ljava/util/Set;
            aload 1 /* excludedBeans */
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
         2: .line 325
            return
        end local 1 // java.lang.String[] excludedBeans
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/springframework/jmx/export/MBeanExporter;
            0    3     1  excludedBeans  [Ljava/lang/String;
    MethodParameters:
               Name  Flags
      excludedBeans  

  public void addExcludedBean(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.lang.String excludedBean
         0: .line 331
            aload 1 /* excludedBean */
            ldc "ExcludedBean must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 332
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.excludedBeans:Ljava/util/Set;
            aload 1 /* excludedBean */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         2: .line 333
            return
        end local 1 // java.lang.String excludedBean
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/springframework/jmx/export/MBeanExporter;
            0    3     1  excludedBean  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      excludedBean  

  public void setListeners(org.springframework.jmx.export.MBeanExporterListener[]);
    descriptor: ([Lorg/springframework/jmx/export/MBeanExporterListener;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // org.springframework.jmx.export.MBeanExporterListener[] listeners
         0: .line 341
            aload 0 /* this */
            aload 1 /* listeners */
            putfield org.springframework.jmx.export.MBeanExporter.listeners:[Lorg/springframework/jmx/export/MBeanExporterListener;
         1: .line 342
            return
        end local 1 // org.springframework.jmx.export.MBeanExporterListener[] listeners
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/springframework/jmx/export/MBeanExporter;
            0    2     1  listeners  [Lorg/springframework/jmx/export/MBeanExporterListener;
    MethodParameters:
           Name  Flags
      listeners  

  public void setNotificationListeners(org.springframework.jmx.export.NotificationListenerBean[]);
    descriptor: ([Lorg/springframework/jmx/export/NotificationListenerBean;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // org.springframework.jmx.export.NotificationListenerBean[] notificationListeners
         0: .line 353
            aload 0 /* this */
            aload 1 /* notificationListeners */
            putfield org.springframework.jmx.export.MBeanExporter.notificationListeners:[Lorg/springframework/jmx/export/NotificationListenerBean;
         1: .line 354
            return
        end local 1 // org.springframework.jmx.export.NotificationListenerBean[] notificationListeners
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0                   this  Lorg/springframework/jmx/export/MBeanExporter;
            0    2     1  notificationListeners  [Lorg/springframework/jmx/export/NotificationListenerBean;
    MethodParameters:
                       Name  Flags
      notificationListeners  

  public void setNotificationListenerMappings(java.util.Map<?, ? extends javax.management.NotificationListener>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.util.Map listeners
         0: .line 371
            aload 1 /* listeners */
            ldc "'listeners' must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 373
            new java.util.ArrayList
            dup
            aload 1 /* listeners */
            invokeinterface java.util.Map.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
         2: .line 372
            astore 2 /* notificationListeners */
        start local 2 // java.util.List notificationListeners
         3: .line 375
            aload 1 /* listeners */
            aload 2 /* notificationListeners */
            invokedynamic accept(Ljava/util/List;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  org/springframework/jmx/export/MBeanExporter.lambda$0(Ljava/util/List;Ljava/lang/Object;Ljavax/management/NotificationListener;)V (6)
                  (Ljava/lang/Object;Ljavax/management/NotificationListener;)V
            invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
         4: .line 386
            aload 0 /* this */
            aload 2 /* notificationListeners */
            iconst_0
            anewarray org.springframework.jmx.export.NotificationListenerBean
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.springframework.jmx.export.NotificationListenerBean[]
            putfield org.springframework.jmx.export.MBeanExporter.notificationListeners:[Lorg/springframework/jmx/export/NotificationListenerBean;
         5: .line 387
            return
        end local 2 // java.util.List notificationListeners
        end local 1 // java.util.Map listeners
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    6     0                   this  Lorg/springframework/jmx/export/MBeanExporter;
            0    6     1              listeners  Ljava/util/Map<*+Ljavax/management/NotificationListener;>;
            3    6     2  notificationListeners  Ljava/util/List<Lorg/springframework/jmx/export/NotificationListenerBean;>;
    Signature: (Ljava/util/Map<*+Ljavax/management/NotificationListener;>;)V
    MethodParameters:
           Name  Flags
      listeners  

  public void setBeanClassLoader(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.lang.ClassLoader classLoader
         0: .line 391
            aload 0 /* this */
            aload 1 /* classLoader */
            putfield org.springframework.jmx.export.MBeanExporter.beanClassLoader:Ljava/lang/ClassLoader;
         1: .line 392
            return
        end local 1 // java.lang.ClassLoader classLoader
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/springframework/jmx/export/MBeanExporter;
            0    2     1  classLoader  Ljava/lang/ClassLoader;
    MethodParameters:
             Name  Flags
      classLoader  

  public void setBeanFactory(org.springframework.beans.factory.BeanFactory);
    descriptor: (Lorg/springframework/beans/factory/BeanFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // org.springframework.beans.factory.BeanFactory beanFactory
         0: .line 404
            aload 1 /* beanFactory */
            instanceof org.springframework.beans.factory.ListableBeanFactory
            ifeq 3
         1: .line 405
            aload 0 /* this */
            aload 1 /* beanFactory */
            checkcast org.springframework.beans.factory.ListableBeanFactory
            putfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
         2: .line 406
            goto 4
         3: .line 408
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            ldc "MBeanExporter not running in a ListableBeanFactory: autodetection of MBeans not available."
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         4: .line 410
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.springframework.beans.factory.BeanFactory beanFactory
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lorg/springframework/jmx/export/MBeanExporter;
            0    5     1  beanFactory  Lorg/springframework/beans/factory/BeanFactory;
    MethodParameters:
             Name  Flags
      beanFactory  

  public void afterPropertiesSet();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.jmx.export.MBeanExporter this
         0: .line 421
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.server:Ljavax/management/MBeanServer;
            ifnonnull 2
         1: .line 422
            aload 0 /* this */
            invokestatic org.springframework.jmx.support.JmxUtils.locateMBeanServer:()Ljavax/management/MBeanServer;
            putfield org.springframework.jmx.export.MBeanExporter.server:Ljavax/management/MBeanServer;
         2: .line 424
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/jmx/export/MBeanExporter;

  public void afterSingletonsInstantiated();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.springframework.jmx.export.MBeanExporter this
         0: .line 433
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            ldc "Registering beans for JMX exposure on startup"
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         1: .line 434
            aload 0 /* this */
            invokevirtual org.springframework.jmx.export.MBeanExporter.registerBeans:()V
         2: .line 435
            aload 0 /* this */
            invokevirtual org.springframework.jmx.export.MBeanExporter.registerNotificationListeners:()V
         3: .line 436
            goto 8
         4: .line 437
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 1 /* ex */
        start local 1 // java.lang.RuntimeException ex
         5: .line 439
            aload 0 /* this */
            invokevirtual org.springframework.jmx.export.MBeanExporter.unregisterNotificationListeners:()V
         6: .line 440
            aload 0 /* this */
            invokevirtual org.springframework.jmx.export.MBeanExporter.unregisterBeans:()V
         7: .line 441
            aload 1 /* ex */
            athrow
        end local 1 // java.lang.RuntimeException ex
         8: .line 443
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/springframework/jmx/export/MBeanExporter;
            5    8     1    ex  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.RuntimeException

  public void destroy();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.jmx.export.MBeanExporter this
         0: .line 451
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            ldc "Unregistering JMX-exposed beans on shutdown"
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
         1: .line 452
            aload 0 /* this */
            invokevirtual org.springframework.jmx.export.MBeanExporter.unregisterNotificationListeners:()V
         2: .line 453
            aload 0 /* this */
            invokevirtual org.springframework.jmx.export.MBeanExporter.unregisterBeans:()V
         3: .line 454
            return
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/springframework/jmx/export/MBeanExporter;

  public javax.management.ObjectName registerManagedResource(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljavax/management/ObjectName;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.lang.Object managedResource
         0: .line 463
            aload 1 /* managedResource */
            ldc "Managed resource must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 466
            aload 0 /* this */
            aload 1 /* managedResource */
            aconst_null
            invokevirtual org.springframework.jmx.export.MBeanExporter.getObjectName:(Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/ObjectName;
            astore 2 /* objectName */
        start local 2 // javax.management.ObjectName objectName
         2: .line 467
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.ensureUniqueRuntimeObjectNames:Z
            ifeq 7
         3: .line 468
            aload 2 /* objectName */
            aload 1 /* managedResource */
            invokestatic org.springframework.jmx.support.JmxUtils.appendIdentityToObjectName:(Ljavax/management/ObjectName;Ljava/lang/Object;)Ljavax/management/ObjectName;
            astore 2 /* objectName */
         4: .line 470
            goto 7
        end local 2 // javax.management.ObjectName objectName
         5: .line 471
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* ex */
        start local 3 // java.lang.Throwable ex
         6: .line 472
            new org.springframework.jmx.export.MBeanExportException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to generate ObjectName for MBean ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* managedResource */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* ex */
            invokespecial org.springframework.jmx.export.MBeanExportException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Throwable ex
        start local 2 // javax.management.ObjectName objectName
         7: .line 474
      StackMap locals: javax.management.ObjectName
      StackMap stack:
            aload 0 /* this */
            aload 1 /* managedResource */
            aload 2 /* objectName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.registerManagedResource:(Ljava/lang/Object;Ljavax/management/ObjectName;)V
         8: .line 475
            aload 2 /* objectName */
            areturn
        end local 2 // javax.management.ObjectName objectName
        end local 1 // java.lang.Object managedResource
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lorg/springframework/jmx/export/MBeanExporter;
            0    9     1  managedResource  Ljava/lang/Object;
            2    5     2       objectName  Ljavax/management/ObjectName;
            7    9     2       objectName  Ljavax/management/ObjectName;
            6    7     3               ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     4       5  Class java.lang.Throwable
    Exceptions:
      throws org.springframework.jmx.export.MBeanExportException
    MethodParameters:
                 Name  Flags
      managedResource  

  public void registerManagedResource(java.lang.Object, javax.management.ObjectName);
    descriptor: (Ljava/lang/Object;Ljavax/management/ObjectName;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.lang.Object managedResource
        start local 2 // javax.management.ObjectName objectName
         0: .line 480
            aload 1 /* managedResource */
            ldc "Managed resource must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 481
            aload 2 /* objectName */
            ldc "ObjectName must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 483
            aload 0 /* this */
            aload 1 /* managedResource */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual org.springframework.jmx.export.MBeanExporter.isMBean:(Ljava/lang/Class;)Z
            ifeq 5
         3: .line 484
            aload 0 /* this */
            aload 1 /* managedResource */
            aload 2 /* objectName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.doRegister:(Ljava/lang/Object;Ljavax/management/ObjectName;)V
         4: .line 485
            goto 13
         5: .line 487
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* managedResource */
            aload 1 /* managedResource */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual org.springframework.jmx.export.MBeanExporter.createAndConfigureMBean:(Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/modelmbean/ModelMBean;
            astore 3 /* mbean */
        start local 3 // javax.management.modelmbean.ModelMBean mbean
         6: .line 488
            aload 0 /* this */
            aload 3 /* mbean */
            aload 2 /* objectName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.doRegister:(Ljava/lang/Object;Ljavax/management/ObjectName;)V
         7: .line 489
            aload 0 /* this */
            aload 1 /* managedResource */
            aload 3 /* mbean */
            aload 2 /* objectName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.injectNotificationPublisherIfNecessary:(Ljava/lang/Object;Ljavax/management/modelmbean/ModelMBean;Ljavax/management/ObjectName;)V
        end local 3 // javax.management.modelmbean.ModelMBean mbean
         8: .line 491
            goto 13
         9: .line 492
      StackMap locals:
      StackMap stack: javax.management.JMException
            astore 3 /* ex */
        start local 3 // javax.management.JMException ex
        10: .line 493
            new org.springframework.jmx.export.UnableToRegisterMBeanException
            dup
        11: .line 494
            new java.lang.StringBuilder
            dup
            ldc "Unable to register MBean ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* managedResource */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "] with object name ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* objectName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* ex */
        12: .line 493
            invokespecial org.springframework.jmx.export.UnableToRegisterMBeanException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // javax.management.JMException ex
        13: .line 496
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javax.management.ObjectName objectName
        end local 1 // java.lang.Object managedResource
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   14     0             this  Lorg/springframework/jmx/export/MBeanExporter;
            0   14     1  managedResource  Ljava/lang/Object;
            0   14     2       objectName  Ljavax/management/ObjectName;
            6    8     3            mbean  Ljavax/management/modelmbean/ModelMBean;
           10   13     3               ex  Ljavax/management/JMException;
      Exception table:
        from    to  target  type
           2     8       9  Class javax.management.JMException
    Exceptions:
      throws org.springframework.jmx.export.MBeanExportException
    MethodParameters:
                 Name  Flags
      managedResource  
      objectName       

  public void unregisterManagedResource(javax.management.ObjectName);
    descriptor: (Ljavax/management/ObjectName;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // javax.management.ObjectName objectName
         0: .line 500
            aload 1 /* objectName */
            ldc "ObjectName must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 501
            aload 0 /* this */
            aload 1 /* objectName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.doUnregister:(Ljavax/management/ObjectName;)V
         2: .line 502
            return
        end local 1 // javax.management.ObjectName objectName
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/springframework/jmx/export/MBeanExporter;
            0    3     1  objectName  Ljavax/management/ObjectName;
    MethodParameters:
            Name  Flags
      objectName  

  protected void registerBeans();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.springframework.jmx.export.MBeanExporter this
         0: .line 524
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beans:Ljava/util/Map;
            ifnonnull 4
         1: .line 525
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.springframework.jmx.export.MBeanExporter.beans:Ljava/util/Map;
         2: .line 527
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.autodetectMode:Ljava/lang/Integer;
            ifnonnull 4
         3: .line 528
            aload 0 /* this */
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putfield org.springframework.jmx.export.MBeanExporter.autodetectMode:Ljava/lang/Integer;
         4: .line 533
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.autodetectMode:Ljava/lang/Integer;
            ifnull 5
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.autodetectMode:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 1 /* mode */
        start local 1 // int mode
         7: .line 534
            iload 1 /* mode */
            ifeq 16
         8: .line 535
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
            ifnonnull 10
         9: .line 536
            new org.springframework.jmx.export.MBeanExportException
            dup
            ldc "Cannot autodetect MBeans if not running in a BeanFactory"
            invokespecial org.springframework.jmx.export.MBeanExportException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 538
      StackMap locals: int
      StackMap stack:
            iload 1 /* mode */
            iconst_1
            if_icmpeq 11
            iload 1 /* mode */
            iconst_3
            if_icmpne 13
        11: .line 540
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            ldc "Autodetecting user-defined JMX MBeans"
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        12: .line 541
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beans:Ljava/util/Map;
            aload 0 /* this */
            invokedynamic include(Lorg/springframework/jmx/export/MBeanExporter;)Lorg/springframework/jmx/export/MBeanExporter$AutodetectCallback;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Class;Ljava/lang/String;)Z
                  org/springframework/jmx/export/MBeanExporter.lambda$1(Ljava/lang/Class;Ljava/lang/String;)Z (7)
                  (Ljava/lang/Class;Ljava/lang/String;)Z
            invokevirtual org.springframework.jmx.export.MBeanExporter.autodetect:(Ljava/util/Map;Lorg/springframework/jmx/export/MBeanExporter$AutodetectCallback;)V
        13: .line 544
      StackMap locals:
      StackMap stack:
            iload 1 /* mode */
            iconst_2
            if_icmpeq 14
            iload 1 /* mode */
            iconst_3
            if_icmpne 16
        14: .line 545
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.assembler:Lorg/springframework/jmx/export/assembler/MBeanInfoAssembler;
            instanceof org.springframework.jmx.export.assembler.AutodetectCapableMBeanInfoAssembler
            ifeq 16
        15: .line 546
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beans:Ljava/util/Map;
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.assembler:Lorg/springframework/jmx/export/assembler/MBeanInfoAssembler;
            checkcast org.springframework.jmx.export.assembler.AutodetectCapableMBeanInfoAssembler
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic include(Lorg/springframework/jmx/export/assembler/AutodetectCapableMBeanInfoAssembler;)Lorg/springframework/jmx/export/MBeanExporter$AutodetectCallback;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Class;Ljava/lang/String;)Z
                  org/springframework/jmx/export/assembler/AutodetectCapableMBeanInfoAssembler.includeBean(Ljava/lang/Class;Ljava/lang/String;)Z (9 itf)
                  (Ljava/lang/Class;Ljava/lang/String;)Z
            invokevirtual org.springframework.jmx.export.MBeanExporter.autodetect:(Ljava/util/Map;Lorg/springframework/jmx/export/MBeanExporter$AutodetectCallback;)V
        16: .line 550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beans:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 18
        17: .line 551
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beans:Ljava/util/Map;
            aload 0 /* this */
            invokedynamic accept(Lorg/springframework/jmx/export/MBeanExporter;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  org/springframework/jmx/export/MBeanExporter.lambda$3(Ljava/lang/String;Ljava/lang/Object;)V (7)
                  (Ljava/lang/String;Ljava/lang/Object;)V
            invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
        18: .line 553
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int mode
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lorg/springframework/jmx/export/MBeanExporter;
            7   19     1  mode  I

  protected boolean isBeanDefinitionLazyInit(org.springframework.beans.factory.ListableBeanFactory, java.lang.String);
    descriptor: (Lorg/springframework/beans/factory/ListableBeanFactory;Ljava/lang/String;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // org.springframework.beans.factory.ListableBeanFactory beanFactory
        start local 2 // java.lang.String beanName
         0: .line 563
            aload 1 /* beanFactory */
            instanceof org.springframework.beans.factory.config.ConfigurableListableBeanFactory
            ifeq 3
            aload 1 /* beanFactory */
            aload 2 /* beanName */
            invokeinterface org.springframework.beans.factory.ListableBeanFactory.containsBeanDefinition:(Ljava/lang/String;)Z
            ifeq 3
         1: .line 564
            aload 1 /* beanFactory */
            checkcast org.springframework.beans.factory.config.ConfigurableListableBeanFactory
            aload 2 /* beanName */
            invokeinterface org.springframework.beans.factory.config.ConfigurableListableBeanFactory.getBeanDefinition:(Ljava/lang/String;)Lorg/springframework/beans/factory/config/BeanDefinition;
            invokeinterface org.springframework.beans.factory.config.BeanDefinition.isLazyInit:()Z
            ifeq 3
         2: .line 563
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 2 // java.lang.String beanName
        end local 1 // org.springframework.beans.factory.ListableBeanFactory beanFactory
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/springframework/jmx/export/MBeanExporter;
            0    4     1  beanFactory  Lorg/springframework/beans/factory/ListableBeanFactory;
            0    4     2     beanName  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      beanFactory  
      beanName     

  protected javax.management.ObjectName registerBeanNameOrInstance(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/ObjectName;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.lang.Object mapValue
        start local 2 // java.lang.String beanKey
         0: .line 589
            aload 1 /* mapValue */
            instanceof java.lang.String
            ifeq 14
         1: .line 591
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
            ifnonnull 3
         2: .line 592
            new org.springframework.jmx.export.MBeanExportException
            dup
            ldc "Cannot resolve bean names if not running in a BeanFactory"
            invokespecial org.springframework.jmx.export.MBeanExportException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 594
      StackMap locals:
      StackMap stack:
            aload 1 /* mapValue */
            checkcast java.lang.String
            astore 3 /* beanName */
        start local 3 // java.lang.String beanName
         4: .line 595
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
            aload 3 /* beanName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.isBeanDefinitionLazyInit:(Lorg/springframework/beans/factory/ListableBeanFactory;Ljava/lang/String;)Z
            ifeq 9
         5: .line 596
            aload 0 /* this */
            aload 3 /* beanName */
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.MBeanExporter.registerLazyInit:(Ljava/lang/String;Ljava/lang/String;)Ljavax/management/ObjectName;
            astore 4 /* objectName */
        start local 4 // javax.management.ObjectName objectName
         6: .line 597
            aload 0 /* this */
            aload 3 /* beanName */
            aload 4 /* objectName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.replaceNotificationListenerBeanNameKeysIfNecessary:(Ljava/lang/String;Ljavax/management/ObjectName;)V
         7: .line 598
            aload 4 /* objectName */
         8: areturn
        end local 4 // javax.management.ObjectName objectName
         9: .line 601
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
            aload 3 /* beanName */
            invokeinterface org.springframework.beans.factory.ListableBeanFactory.getBean:(Ljava/lang/String;)Ljava/lang/Object;
            astore 4 /* bean */
        start local 4 // java.lang.Object bean
        10: .line 602
            aload 0 /* this */
            aload 4 /* bean */
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.MBeanExporter.registerBeanInstance:(Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/ObjectName;
            astore 5 /* objectName */
        start local 5 // javax.management.ObjectName objectName
        11: .line 603
            aload 0 /* this */
            aload 3 /* beanName */
            aload 5 /* objectName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.replaceNotificationListenerBeanNameKeysIfNecessary:(Ljava/lang/String;Ljavax/management/ObjectName;)V
        12: .line 604
            aload 5 /* objectName */
        13: areturn
        end local 5 // javax.management.ObjectName objectName
        end local 4 // java.lang.Object bean
        end local 3 // java.lang.String beanName
        14: .line 609
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
            ifnull 26
        15: .line 611
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
            aload 1 /* mapValue */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            iconst_0
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.allowEagerInit:Z
            invokeinterface org.springframework.beans.factory.ListableBeanFactory.getBeansOfType:(Ljava/lang/Class;ZZ)Ljava/util/Map;
        16: .line 610
            astore 3 /* beansOfSameType */
        start local 3 // java.util.Map beansOfSameType
        17: .line 612
            aload 3 /* beansOfSameType */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 25
      StackMap locals: org.springframework.jmx.export.MBeanExporter java.lang.Object java.lang.String java.util.Map top java.util.Iterator
      StackMap stack:
        18: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
        19: .line 613
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            aload 1 /* mapValue */
            if_acmpne 25
        20: .line 614
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* beanName */
        start local 6 // java.lang.String beanName
        21: .line 615
            aload 0 /* this */
            aload 1 /* mapValue */
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.MBeanExporter.registerBeanInstance:(Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/ObjectName;
            astore 7 /* objectName */
        start local 7 // javax.management.ObjectName objectName
        22: .line 616
            aload 0 /* this */
            aload 6 /* beanName */
            aload 7 /* objectName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.replaceNotificationListenerBeanNameKeysIfNecessary:(Ljava/lang/String;Ljavax/management/ObjectName;)V
        23: .line 617
            aload 7 /* objectName */
        24: areturn
        end local 7 // javax.management.ObjectName objectName
        end local 6 // java.lang.String beanName
        end local 4 // java.util.Map$Entry entry
        25: .line 612
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        end local 3 // java.util.Map beansOfSameType
        26: .line 621
      StackMap locals: org.springframework.jmx.export.MBeanExporter java.lang.Object java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* mapValue */
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.MBeanExporter.registerBeanInstance:(Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/ObjectName;
        27: areturn
        28: .line 624
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* ex */
        start local 3 // java.lang.Throwable ex
        29: .line 625
            new org.springframework.jmx.export.UnableToRegisterMBeanException
            dup
        30: .line 626
            new java.lang.StringBuilder
            dup
            ldc "Unable to register MBean ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* mapValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "] with key '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* beanKey */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* ex */
        31: .line 625
            invokespecial org.springframework.jmx.export.UnableToRegisterMBeanException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Throwable ex
        end local 2 // java.lang.String beanKey
        end local 1 // java.lang.Object mapValue
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   32     0             this  Lorg/springframework/jmx/export/MBeanExporter;
            0   32     1         mapValue  Ljava/lang/Object;
            0   32     2          beanKey  Ljava/lang/String;
            4   14     3         beanName  Ljava/lang/String;
            6    9     4       objectName  Ljavax/management/ObjectName;
           10   14     4             bean  Ljava/lang/Object;
           11   14     5       objectName  Ljavax/management/ObjectName;
           17   26     3  beansOfSameType  Ljava/util/Map<Ljava/lang/String;*>;
           19   25     4            entry  Ljava/util/Map$Entry<Ljava/lang/String;*>;
           21   25     6         beanName  Ljava/lang/String;
           22   25     7       objectName  Ljavax/management/ObjectName;
           29   32     3               ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     8      28  Class java.lang.Throwable
           9    13      28  Class java.lang.Throwable
          14    24      28  Class java.lang.Throwable
          25    27      28  Class java.lang.Throwable
    Exceptions:
      throws org.springframework.jmx.export.MBeanExportException
    MethodParameters:
          Name  Flags
      mapValue  
      beanKey   

  private void replaceNotificationListenerBeanNameKeysIfNecessary(java.lang.String, javax.management.ObjectName);
    descriptor: (Ljava/lang/String;Ljavax/management/ObjectName;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.lang.String beanName
        start local 2 // javax.management.ObjectName objectName
         0: .line 638
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.notificationListeners:[Lorg/springframework/jmx/export/NotificationListenerBean;
            ifnull 6
         1: .line 639
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.notificationListeners:[Lorg/springframework/jmx/export/NotificationListenerBean;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 5
      StackMap locals: org.springframework.jmx.export.MBeanExporter java.lang.String javax.management.ObjectName top int int org.springframework.jmx.export.NotificationListenerBean[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* notificationListener */
        start local 3 // org.springframework.jmx.export.NotificationListenerBean notificationListener
         3: .line 640
            aload 3 /* notificationListener */
            aload 1 /* beanName */
            aload 2 /* objectName */
            invokevirtual org.springframework.jmx.export.NotificationListenerBean.replaceObjectName:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 3 // org.springframework.jmx.export.NotificationListenerBean notificationListener
         4: .line 639
            iinc 4 1
      StackMap locals:
      StackMap stack:
         5: iload 4
            iload 5
            if_icmplt 2
         6: .line 643
      StackMap locals: org.springframework.jmx.export.MBeanExporter java.lang.String javax.management.ObjectName
      StackMap stack:
            return
        end local 2 // javax.management.ObjectName objectName
        end local 1 // java.lang.String beanName
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    7     0                  this  Lorg/springframework/jmx/export/MBeanExporter;
            0    7     1              beanName  Ljava/lang/String;
            0    7     2            objectName  Ljavax/management/ObjectName;
            3    4     3  notificationListener  Lorg/springframework/jmx/export/NotificationListenerBean;
    MethodParameters:
            Name  Flags
      beanName    
      objectName  

  private javax.management.ObjectName registerBeanInstance(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/ObjectName;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.lang.Object bean
        start local 2 // java.lang.String beanKey
         0: .line 654
            aload 0 /* this */
            aload 1 /* bean */
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.MBeanExporter.getObjectName:(Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/ObjectName;
            astore 3 /* objectName */
        start local 3 // javax.management.ObjectName objectName
         1: .line 655
            aconst_null
            astore 4 /* mbeanToExpose */
        start local 4 // java.lang.Object mbeanToExpose
         2: .line 656
            aload 0 /* this */
            aload 1 /* bean */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual org.springframework.jmx.export.MBeanExporter.isMBean:(Ljava/lang/Class;)Z
            ifeq 5
         3: .line 657
            aload 1 /* bean */
            astore 4 /* mbeanToExpose */
         4: .line 658
            goto 8
         5: .line 660
      StackMap locals: javax.management.ObjectName java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 1 /* bean */
            invokevirtual org.springframework.jmx.export.MBeanExporter.adaptMBeanIfPossible:(Ljava/lang/Object;)Ljavax/management/DynamicMBean;
            astore 5 /* adaptedBean */
        start local 5 // javax.management.DynamicMBean adaptedBean
         6: .line 661
            aload 5 /* adaptedBean */
            ifnull 8
         7: .line 662
            aload 5 /* adaptedBean */
            astore 4 /* mbeanToExpose */
        end local 5 // javax.management.DynamicMBean adaptedBean
         8: .line 666
      StackMap locals:
      StackMap stack:
            aload 4 /* mbeanToExpose */
            ifnull 15
         9: .line 667
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 13
        10: .line 668
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Located MBean '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* beanKey */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "': registering with JMX server as MBean ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 669
            aload 3 /* objectName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 668
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        13: .line 671
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* mbeanToExpose */
            aload 3 /* objectName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.doRegister:(Ljava/lang/Object;Ljavax/management/ObjectName;)V
        14: .line 672
            goto 22
        15: .line 674
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 19
        16: .line 675
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Located managed bean '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* beanKey */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "': registering with JMX server as MBean ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 676
            aload 3 /* objectName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 675
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        19: .line 678
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* bean */
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.MBeanExporter.createAndConfigureMBean:(Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/modelmbean/ModelMBean;
            astore 5 /* mbean */
        start local 5 // javax.management.modelmbean.ModelMBean mbean
        20: .line 679
            aload 0 /* this */
            aload 5 /* mbean */
            aload 3 /* objectName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.doRegister:(Ljava/lang/Object;Ljavax/management/ObjectName;)V
        21: .line 680
            aload 0 /* this */
            aload 1 /* bean */
            aload 5 /* mbean */
            aload 3 /* objectName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.injectNotificationPublisherIfNecessary:(Ljava/lang/Object;Ljavax/management/modelmbean/ModelMBean;Ljavax/management/ObjectName;)V
        end local 5 // javax.management.modelmbean.ModelMBean mbean
        22: .line 683
      StackMap locals:
      StackMap stack:
            aload 3 /* objectName */
            areturn
        end local 4 // java.lang.Object mbeanToExpose
        end local 3 // javax.management.ObjectName objectName
        end local 2 // java.lang.String beanKey
        end local 1 // java.lang.Object bean
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0           this  Lorg/springframework/jmx/export/MBeanExporter;
            0   23     1           bean  Ljava/lang/Object;
            0   23     2        beanKey  Ljava/lang/String;
            1   23     3     objectName  Ljavax/management/ObjectName;
            2   23     4  mbeanToExpose  Ljava/lang/Object;
            6    8     5    adaptedBean  Ljavax/management/DynamicMBean;
           20   22     5          mbean  Ljavax/management/modelmbean/ModelMBean;
    Exceptions:
      throws javax.management.JMException
    MethodParameters:
         Name  Flags
      bean     
      beanKey  

  private javax.management.ObjectName registerLazyInit(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljavax/management/ObjectName;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.lang.String beanName
        start local 2 // java.lang.String beanKey
         0: .line 695
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ldc "No BeanFactory set"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         3: .line 697
            new org.springframework.aop.framework.ProxyFactory
            dup
            invokespecial org.springframework.aop.framework.ProxyFactory.<init>:()V
            astore 3 /* proxyFactory */
        start local 3 // org.springframework.aop.framework.ProxyFactory proxyFactory
         4: .line 698
            aload 3 /* proxyFactory */
            iconst_1
            invokevirtual org.springframework.aop.framework.ProxyFactory.setProxyTargetClass:(Z)V
         5: .line 699
            aload 3 /* proxyFactory */
            iconst_1
            invokevirtual org.springframework.aop.framework.ProxyFactory.setFrozen:(Z)V
         6: .line 701
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
            aload 1 /* beanName */
            invokeinterface org.springframework.beans.factory.ListableBeanFactory.getType:(Ljava/lang/String;)Ljava/lang/Class;
            invokevirtual org.springframework.jmx.export.MBeanExporter.isMBean:(Ljava/lang/Class;)Z
            ifeq 19
         7: .line 703
            new org.springframework.aop.target.LazyInitTargetSource
            dup
            invokespecial org.springframework.aop.target.LazyInitTargetSource.<init>:()V
            astore 4 /* targetSource */
        start local 4 // org.springframework.aop.target.LazyInitTargetSource targetSource
         8: .line 704
            aload 4 /* targetSource */
            aload 1 /* beanName */
            invokevirtual org.springframework.aop.target.LazyInitTargetSource.setTargetBeanName:(Ljava/lang/String;)V
         9: .line 705
            aload 4 /* targetSource */
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
            invokevirtual org.springframework.aop.target.LazyInitTargetSource.setBeanFactory:(Lorg/springframework/beans/factory/BeanFactory;)V
        10: .line 706
            aload 3 /* proxyFactory */
            aload 4 /* targetSource */
            invokevirtual org.springframework.aop.framework.ProxyFactory.setTargetSource:(Lorg/springframework/aop/TargetSource;)V
        11: .line 708
            aload 3 /* proxyFactory */
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanClassLoader:Ljava/lang/ClassLoader;
            invokevirtual org.springframework.aop.framework.ProxyFactory.getProxy:(Ljava/lang/ClassLoader;)Ljava/lang/Object;
            astore 5 /* proxy */
        start local 5 // java.lang.Object proxy
        12: .line 709
            aload 0 /* this */
            aload 5 /* proxy */
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.MBeanExporter.getObjectName:(Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/ObjectName;
            astore 6 /* objectName */
        start local 6 // javax.management.ObjectName objectName
        13: .line 710
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 17
        14: .line 711
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Located MBean '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* beanKey */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "': registering with JMX server as lazy-init MBean ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 712
            aload 6 /* objectName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 711
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        17: .line 714
      StackMap locals: org.springframework.jmx.export.MBeanExporter java.lang.String java.lang.String org.springframework.aop.framework.ProxyFactory org.springframework.aop.target.LazyInitTargetSource java.lang.Object javax.management.ObjectName
      StackMap stack:
            aload 0 /* this */
            aload 5 /* proxy */
            aload 6 /* objectName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.doRegister:(Ljava/lang/Object;Ljavax/management/ObjectName;)V
        18: .line 715
            aload 6 /* objectName */
            areturn
        end local 6 // javax.management.ObjectName objectName
        end local 5 // java.lang.Object proxy
        end local 4 // org.springframework.aop.target.LazyInitTargetSource targetSource
        19: .line 720
      StackMap locals:
      StackMap stack:
            new org.springframework.jmx.export.MBeanExporter$NotificationPublisherAwareLazyTargetSource
            dup
            aload 0 /* this */
            invokespecial org.springframework.jmx.export.MBeanExporter$NotificationPublisherAwareLazyTargetSource.<init>:(Lorg/springframework/jmx/export/MBeanExporter;)V
            astore 4 /* targetSource */
        start local 4 // org.springframework.jmx.export.MBeanExporter$NotificationPublisherAwareLazyTargetSource targetSource
        20: .line 721
            aload 4 /* targetSource */
            aload 1 /* beanName */
            invokevirtual org.springframework.jmx.export.MBeanExporter$NotificationPublisherAwareLazyTargetSource.setTargetBeanName:(Ljava/lang/String;)V
        21: .line 722
            aload 4 /* targetSource */
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
            invokevirtual org.springframework.jmx.export.MBeanExporter$NotificationPublisherAwareLazyTargetSource.setBeanFactory:(Lorg/springframework/beans/factory/BeanFactory;)V
        22: .line 723
            aload 3 /* proxyFactory */
            aload 4 /* targetSource */
            invokevirtual org.springframework.aop.framework.ProxyFactory.setTargetSource:(Lorg/springframework/aop/TargetSource;)V
        23: .line 725
            aload 3 /* proxyFactory */
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanClassLoader:Ljava/lang/ClassLoader;
            invokevirtual org.springframework.aop.framework.ProxyFactory.getProxy:(Ljava/lang/ClassLoader;)Ljava/lang/Object;
            astore 5 /* proxy */
        start local 5 // java.lang.Object proxy
        24: .line 726
            aload 0 /* this */
            aload 5 /* proxy */
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.MBeanExporter.getObjectName:(Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/ObjectName;
            astore 6 /* objectName */
        start local 6 // javax.management.ObjectName objectName
        25: .line 727
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 29
        26: .line 728
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Located simple bean '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* beanKey */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "': registering with JMX server as lazy-init MBean ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        27: .line 729
            aload 6 /* objectName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        28: .line 728
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        29: .line 731
      StackMap locals: org.springframework.jmx.export.MBeanExporter$NotificationPublisherAwareLazyTargetSource java.lang.Object javax.management.ObjectName
      StackMap stack:
            aload 0 /* this */
            aload 5 /* proxy */
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.MBeanExporter.createAndConfigureMBean:(Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/modelmbean/ModelMBean;
            astore 7 /* mbean */
        start local 7 // javax.management.modelmbean.ModelMBean mbean
        30: .line 732
            aload 4 /* targetSource */
            aload 7 /* mbean */
            invokevirtual org.springframework.jmx.export.MBeanExporter$NotificationPublisherAwareLazyTargetSource.setModelMBean:(Ljavax/management/modelmbean/ModelMBean;)V
        31: .line 733
            aload 4 /* targetSource */
            aload 6 /* objectName */
            invokevirtual org.springframework.jmx.export.MBeanExporter$NotificationPublisherAwareLazyTargetSource.setObjectName:(Ljavax/management/ObjectName;)V
        32: .line 734
            aload 0 /* this */
            aload 7 /* mbean */
            aload 6 /* objectName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.doRegister:(Ljava/lang/Object;Ljavax/management/ObjectName;)V
        33: .line 735
            aload 6 /* objectName */
            areturn
        end local 7 // javax.management.modelmbean.ModelMBean mbean
        end local 6 // javax.management.ObjectName objectName
        end local 5 // java.lang.Object proxy
        end local 4 // org.springframework.jmx.export.MBeanExporter$NotificationPublisherAwareLazyTargetSource targetSource
        end local 3 // org.springframework.aop.framework.ProxyFactory proxyFactory
        end local 2 // java.lang.String beanKey
        end local 1 // java.lang.String beanName
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   34     0          this  Lorg/springframework/jmx/export/MBeanExporter;
            0   34     1      beanName  Ljava/lang/String;
            0   34     2       beanKey  Ljava/lang/String;
            4   34     3  proxyFactory  Lorg/springframework/aop/framework/ProxyFactory;
            8   19     4  targetSource  Lorg/springframework/aop/target/LazyInitTargetSource;
           12   19     5         proxy  Ljava/lang/Object;
           13   19     6    objectName  Ljavax/management/ObjectName;
           20   34     4  targetSource  Lorg/springframework/jmx/export/MBeanExporter$NotificationPublisherAwareLazyTargetSource;
           24   34     5         proxy  Ljava/lang/Object;
           25   34     6    objectName  Ljavax/management/ObjectName;
           30   34     7         mbean  Ljavax/management/modelmbean/ModelMBean;
    Exceptions:
      throws javax.management.JMException
    MethodParameters:
          Name  Flags
      beanName  
      beanKey   

  protected javax.management.ObjectName getObjectName(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/ObjectName;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.lang.Object bean
        start local 2 // java.lang.String beanKey
         0: .line 751
            aload 1 /* bean */
            instanceof org.springframework.jmx.export.naming.SelfNaming
            ifeq 2
         1: .line 752
            aload 1 /* bean */
            checkcast org.springframework.jmx.export.naming.SelfNaming
            invokeinterface org.springframework.jmx.export.naming.SelfNaming.getObjectName:()Ljavax/management/ObjectName;
            areturn
         2: .line 755
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.namingStrategy:Lorg/springframework/jmx/export/naming/ObjectNamingStrategy;
            aload 1 /* bean */
            aload 2 /* beanKey */
            invokeinterface org.springframework.jmx.export.naming.ObjectNamingStrategy.getObjectName:(Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/ObjectName;
            areturn
        end local 2 // java.lang.String beanKey
        end local 1 // java.lang.Object bean
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/springframework/jmx/export/MBeanExporter;
            0    3     1     bean  Ljava/lang/Object;
            0    3     2  beanKey  Ljava/lang/String;
    Exceptions:
      throws javax.management.MalformedObjectNameException
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
         Name  Flags
      bean     
      beanKey  

  protected boolean isMBean(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.lang.Class beanClass
         0: .line 770
            aload 1 /* beanClass */
            invokestatic org.springframework.jmx.support.JmxUtils.isMBean:(Ljava/lang/Class;)Z
            ireturn
        end local 1 // java.lang.Class beanClass
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/springframework/jmx/export/MBeanExporter;
            0    1     1  beanClass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
           Name  Flags
      beanClass  

  protected javax.management.DynamicMBean adaptMBeanIfPossible(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljavax/management/DynamicMBean;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.lang.Object bean
         0: .line 784
            aload 1 /* bean */
            invokestatic org.springframework.aop.support.AopUtils.getTargetClass:(Ljava/lang/Object;)Ljava/lang/Class;
            astore 2 /* targetClass */
        start local 2 // java.lang.Class targetClass
         1: .line 785
            aload 2 /* targetClass */
            aload 1 /* bean */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 16
         2: .line 786
            aload 2 /* targetClass */
            invokestatic org.springframework.jmx.support.JmxUtils.getMXBeanInterface:(Ljava/lang/Class;)Ljava/lang/Class;
            astore 3 /* ifc */
        start local 3 // java.lang.Class ifc
         3: .line 787
            aload 3 /* ifc */
            ifnull 9
         4: .line 788
            aload 3 /* ifc */
            aload 1 /* bean */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 8
         5: .line 789
            new javax.management.NotCompliantMBeanException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Managed bean ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* bean */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         6: .line 790
            ldc "] has a target class with an MXBean interface but does not expose it in the proxy"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 789
            invokespecial javax.management.NotCompliantMBeanException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 792
      StackMap locals: java.lang.Class java.lang.Class
      StackMap stack:
            new javax.management.StandardMBean
            dup
            aload 1 /* bean */
            aload 3 /* ifc */
            iconst_1
            invokespecial javax.management.StandardMBean.<init>:(Ljava/lang/Object;Ljava/lang/Class;Z)V
            areturn
         9: .line 795
      StackMap locals:
      StackMap stack:
            aload 2 /* targetClass */
            invokestatic org.springframework.jmx.support.JmxUtils.getMBeanInterface:(Ljava/lang/Class;)Ljava/lang/Class;
            astore 3 /* ifc */
        10: .line 796
            aload 3 /* ifc */
            ifnull 16
        11: .line 797
            aload 3 /* ifc */
            aload 1 /* bean */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 15
        12: .line 798
            new javax.management.NotCompliantMBeanException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Managed bean ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* bean */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        13: .line 799
            ldc "] has a target class with an MBean interface but does not expose it in the proxy"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 798
            invokespecial javax.management.NotCompliantMBeanException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 801
      StackMap locals:
      StackMap stack:
            new javax.management.StandardMBean
            dup
            aload 1 /* bean */
            aload 3 /* ifc */
            invokespecial javax.management.StandardMBean.<init>:(Ljava/lang/Object;Ljava/lang/Class;)V
            areturn
        end local 3 // java.lang.Class ifc
        16: .line 805
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.Class targetClass
        end local 1 // java.lang.Object bean
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0         this  Lorg/springframework/jmx/export/MBeanExporter;
            0   17     1         bean  Ljava/lang/Object;
            1   17     2  targetClass  Ljava/lang/Class<*>;
            3   16     3          ifc  Ljava/lang/Class<*>;
    Exceptions:
      throws javax.management.JMException
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      bean  

  protected javax.management.modelmbean.ModelMBean createAndConfigureMBean(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/modelmbean/ModelMBean;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.lang.Object managedResource
        start local 2 // java.lang.String beanKey
         0: .line 819
            aload 0 /* this */
            invokevirtual org.springframework.jmx.export.MBeanExporter.createModelMBean:()Ljavax/management/modelmbean/ModelMBean;
            astore 3 /* mbean */
        start local 3 // javax.management.modelmbean.ModelMBean mbean
         1: .line 820
            aload 3 /* mbean */
            aload 0 /* this */
            aload 1 /* managedResource */
            aload 2 /* beanKey */
            invokevirtual org.springframework.jmx.export.MBeanExporter.getMBeanInfo:(Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/modelmbean/ModelMBeanInfo;
            invokeinterface javax.management.modelmbean.ModelMBean.setModelMBeanInfo:(Ljavax/management/modelmbean/ModelMBeanInfo;)V
         2: .line 821
            aload 3 /* mbean */
            aload 1 /* managedResource */
            ldc "ObjectReference"
            invokeinterface javax.management.modelmbean.ModelMBean.setManagedResource:(Ljava/lang/Object;Ljava/lang/String;)V
         3: .line 822
            aload 3 /* mbean */
         4: areturn
        end local 3 // javax.management.modelmbean.ModelMBean mbean
         5: .line 824
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* ex */
        start local 3 // java.lang.Throwable ex
         6: .line 825
            new org.springframework.jmx.export.MBeanExportException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not create ModelMBean for managed resource ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 826
            aload 1 /* managedResource */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "] with key '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* beanKey */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* ex */
         8: .line 825
            invokespecial org.springframework.jmx.export.MBeanExportException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Throwable ex
        end local 2 // java.lang.String beanKey
        end local 1 // java.lang.Object managedResource
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lorg/springframework/jmx/export/MBeanExporter;
            0    9     1  managedResource  Ljava/lang/Object;
            0    9     2          beanKey  Ljava/lang/String;
            1    5     3            mbean  Ljavax/management/modelmbean/ModelMBean;
            6    9     3               ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     4       5  Class java.lang.Throwable
    Exceptions:
      throws org.springframework.jmx.export.MBeanExportException
    MethodParameters:
                 Name  Flags
      managedResource  
      beanKey          

  protected javax.management.modelmbean.ModelMBean createModelMBean();
    descriptor: ()Ljavax/management/modelmbean/ModelMBean;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.jmx.export.MBeanExporter this
         0: .line 839
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.exposeManagedResourceClassLoader:Z
            ifeq 1
            new org.springframework.jmx.export.SpringModelMBean
            dup
            invokespecial org.springframework.jmx.export.SpringModelMBean.<init>:()V
            goto 2
      StackMap locals:
      StackMap stack:
         1: new javax.management.modelmbean.RequiredModelMBean
            dup
            invokespecial javax.management.modelmbean.RequiredModelMBean.<init>:()V
      StackMap locals:
      StackMap stack: javax.management.modelmbean.RequiredModelMBean
         2: areturn
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/jmx/export/MBeanExporter;
    Exceptions:
      throws javax.management.MBeanException

  private javax.management.modelmbean.ModelMBeanInfo getMBeanInfo(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/modelmbean/ModelMBeanInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.lang.Object managedBean
        start local 2 // java.lang.String beanKey
         0: .line 847
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.assembler:Lorg/springframework/jmx/export/assembler/MBeanInfoAssembler;
            aload 1 /* managedBean */
            aload 2 /* beanKey */
            invokeinterface org.springframework.jmx.export.assembler.MBeanInfoAssembler.getMBeanInfo:(Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/modelmbean/ModelMBeanInfo;
            astore 3 /* info */
        start local 3 // javax.management.modelmbean.ModelMBeanInfo info
         1: .line 848
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
            ifeq 6
            aload 3 /* info */
            invokeinterface javax.management.modelmbean.ModelMBeanInfo.getAttributes:()[Ljavax/management/MBeanAttributeInfo;
            invokestatic org.springframework.util.ObjectUtils.isEmpty:([Ljava/lang/Object;)Z
            ifeq 6
         2: .line 849
            aload 3 /* info */
            invokeinterface javax.management.modelmbean.ModelMBeanInfo.getOperations:()[Ljavax/management/MBeanOperationInfo;
            invokestatic org.springframework.util.ObjectUtils.isEmpty:([Ljava/lang/Object;)Z
            ifeq 6
         3: .line 850
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Bean with key '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* beanKey */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 851
            ldc "' has been registered as an MBean but has no exposed attributes or operations"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 850
            invokeinterface org.apache.commons.logging.Log.info:(Ljava/lang/Object;)V
         6: .line 853
      StackMap locals: javax.management.modelmbean.ModelMBeanInfo
      StackMap stack:
            aload 3 /* info */
            areturn
        end local 3 // javax.management.modelmbean.ModelMBeanInfo info
        end local 2 // java.lang.String beanKey
        end local 1 // java.lang.Object managedBean
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/springframework/jmx/export/MBeanExporter;
            0    7     1  managedBean  Ljava/lang/Object;
            0    7     2      beanKey  Ljava/lang/String;
            1    7     3         info  Ljavax/management/modelmbean/ModelMBeanInfo;
    Exceptions:
      throws javax.management.JMException
    MethodParameters:
             Name  Flags
      managedBean  
      beanKey      

  private void autodetect(java.util.Map<java.lang.String, java.lang.Object>, org.springframework.jmx.export.MBeanExporter$AutodetectCallback);
    descriptor: (Ljava/util/Map;Lorg/springframework/jmx/export/MBeanExporter$AutodetectCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.util.Map beans
        start local 2 // org.springframework.jmx.export.MBeanExporter$AutodetectCallback callback
         0: .line 869
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ldc "No BeanFactory set"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         3: .line 870
            new java.util.LinkedHashSet
            dup
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
            invokeinterface org.springframework.beans.factory.ListableBeanFactory.getBeanDefinitionCount:()I
            invokespecial java.util.LinkedHashSet.<init>:(I)V
            astore 3 /* beanNames */
        start local 3 // java.util.Set beanNames
         4: .line 871
            aload 3 /* beanNames */
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
            invokeinterface org.springframework.beans.factory.ListableBeanFactory.getBeanDefinitionNames:()[Ljava/lang/String;
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
         5: .line 872
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
            instanceof org.springframework.beans.factory.config.ConfigurableBeanFactory
            ifeq 7
         6: .line 873
            aload 3 /* beanNames */
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
            checkcast org.springframework.beans.factory.config.ConfigurableBeanFactory
            invokeinterface org.springframework.beans.factory.config.ConfigurableBeanFactory.getSingletonNames:()[Ljava/lang/String;
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
         7: .line 876
      StackMap locals: java.util.Set
      StackMap stack:
            aload 3 /* beanNames */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 33
      StackMap locals: org.springframework.jmx.export.MBeanExporter java.util.Map org.springframework.jmx.export.MBeanExporter$AutodetectCallback java.util.Set top java.util.Iterator
      StackMap stack:
         8: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* beanName */
        start local 4 // java.lang.String beanName
         9: .line 877
            aload 0 /* this */
            aload 4 /* beanName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.isExcluded:(Ljava/lang/String;)Z
            ifne 33
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
            aload 4 /* beanName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.isBeanDefinitionAbstract:(Lorg/springframework/beans/factory/ListableBeanFactory;Ljava/lang/String;)Z
            ifne 33
        10: .line 879
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
            aload 4 /* beanName */
            invokeinterface org.springframework.beans.factory.ListableBeanFactory.getType:(Ljava/lang/String;)Ljava/lang/Class;
            astore 6 /* beanClass */
        start local 6 // java.lang.Class beanClass
        11: .line 880
            aload 6 /* beanClass */
            ifnull 33
            aload 2 /* callback */
            aload 6 /* beanClass */
            aload 4 /* beanName */
            invokeinterface org.springframework.jmx.export.MBeanExporter$AutodetectCallback.include:(Ljava/lang/Class;Ljava/lang/String;)Z
            ifeq 33
        12: .line 881
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
            aload 4 /* beanName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.isBeanDefinitionLazyInit:(Lorg/springframework/beans/factory/ListableBeanFactory;Ljava/lang/String;)Z
            istore 7 /* lazyInit */
        start local 7 // boolean lazyInit
        13: .line 882
            aconst_null
            astore 8 /* beanInstance */
        start local 8 // java.lang.Object beanInstance
        14: .line 883
            iload 7 /* lazyInit */
            ifne 18
        15: .line 884
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.beanFactory:Lorg/springframework/beans/factory/ListableBeanFactory;
            aload 4 /* beanName */
            invokeinterface org.springframework.beans.factory.ListableBeanFactory.getBean:(Ljava/lang/String;)Ljava/lang/Object;
            astore 8 /* beanInstance */
        16: .line 885
            aload 6 /* beanClass */
            aload 8 /* beanInstance */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 18
        17: .line 886
            goto 33
        18: .line 889
      StackMap locals: org.springframework.jmx.export.MBeanExporter java.util.Map org.springframework.jmx.export.MBeanExporter$AutodetectCallback java.util.Set java.lang.String java.util.Iterator java.lang.Class int java.lang.Object
      StackMap stack:
            aload 4 /* beanName */
            invokestatic org.springframework.aop.scope.ScopedProxyUtils.isScopedTarget:(Ljava/lang/String;)Z
            ifne 27
            aload 1 /* beans */
            aload 4 /* beanName */
            invokeinterface java.util.Map.containsValue:(Ljava/lang/Object;)Z
            ifne 27
        19: .line 890
            aload 8 /* beanInstance */
            ifnull 21
        20: .line 891
            aload 1 /* beans */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            aload 8 /* beanInstance */
            invokestatic org.springframework.util.CollectionUtils.containsInstance:(Ljava/util/Collection;Ljava/lang/Object;)Z
            ifne 27
        21: .line 893
      StackMap locals:
      StackMap stack:
            aload 1 /* beans */
            aload 4 /* beanName */
            aload 8 /* beanInstance */
            ifnull 22
            aload 8 /* beanInstance */
            goto 23
      StackMap locals: org.springframework.jmx.export.MBeanExporter java.util.Map org.springframework.jmx.export.MBeanExporter$AutodetectCallback java.util.Set java.lang.String java.util.Iterator java.lang.Class int java.lang.Object
      StackMap stack: java.util.Map java.lang.String
        22: aload 4 /* beanName */
      StackMap locals: org.springframework.jmx.export.MBeanExporter java.util.Map org.springframework.jmx.export.MBeanExporter$AutodetectCallback java.util.Set java.lang.String java.util.Iterator java.lang.Class int java.lang.Object
      StackMap stack: java.util.Map java.lang.String java.lang.Object
        23: invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 894
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 33
        25: .line 895
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Bean with name '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* beanName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' has been autodetected for JMX exposure"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        26: .line 897
            goto 33
        27: .line 899
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
            ifeq 33
        28: .line 900
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Bean with name '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* beanName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' is already registered for JMX exposure"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;)V
        end local 8 // java.lang.Object beanInstance
        end local 7 // boolean lazyInit
        end local 6 // java.lang.Class beanClass
        29: .line 904
            goto 33
        30: .line 905
      StackMap locals: org.springframework.jmx.export.MBeanExporter java.util.Map org.springframework.jmx.export.MBeanExporter$AutodetectCallback java.util.Set java.lang.String java.util.Iterator
      StackMap stack: org.springframework.beans.factory.CannotLoadBeanClassException
            astore 6 /* ex */
        start local 6 // org.springframework.beans.factory.CannotLoadBeanClassException ex
        31: .line 906
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.allowEagerInit:Z
            ifeq 33
        32: .line 907
            aload 6 /* ex */
            athrow
        end local 6 // org.springframework.beans.factory.CannotLoadBeanClassException ex
        end local 4 // java.lang.String beanName
        33: .line 876
      StackMap locals: org.springframework.jmx.export.MBeanExporter java.util.Map org.springframework.jmx.export.MBeanExporter$AutodetectCallback java.util.Set top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        34: .line 913
            return
        end local 3 // java.util.Set beanNames
        end local 2 // org.springframework.jmx.export.MBeanExporter$AutodetectCallback callback
        end local 1 // java.util.Map beans
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   35     0          this  Lorg/springframework/jmx/export/MBeanExporter;
            0   35     1         beans  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            0   35     2      callback  Lorg/springframework/jmx/export/MBeanExporter$AutodetectCallback;
            4   35     3     beanNames  Ljava/util/Set<Ljava/lang/String;>;
            9   33     4      beanName  Ljava/lang/String;
           11   29     6     beanClass  Ljava/lang/Class<*>;
           13   29     7      lazyInit  Z
           14   29     8  beanInstance  Ljava/lang/Object;
           31   33     6            ex  Lorg/springframework/beans/factory/CannotLoadBeanClassException;
      Exception table:
        from    to  target  type
          10    17      30  Class org.springframework.beans.factory.CannotLoadBeanClassException
          18    29      30  Class org.springframework.beans.factory.CannotLoadBeanClassException
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;Lorg/springframework/jmx/export/MBeanExporter$AutodetectCallback;)V
    MethodParameters:
          Name  Flags
      beans     
      callback  

  private boolean isExcluded(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.lang.String beanName
         0: .line 919
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.excludedBeans:Ljava/util/Set;
            aload 1 /* beanName */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 4
         1: .line 920
            aload 1 /* beanName */
            ldc "&"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 921
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.excludedBeans:Ljava/util/Set;
            aload 1 /* beanName */
            ldc "&"
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 919
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
        end local 1 // java.lang.String beanName
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/springframework/jmx/export/MBeanExporter;
            0    5     1  beanName  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      beanName  

  private boolean isBeanDefinitionAbstract(org.springframework.beans.factory.ListableBeanFactory, java.lang.String);
    descriptor: (Lorg/springframework/beans/factory/ListableBeanFactory;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // org.springframework.beans.factory.ListableBeanFactory beanFactory
        start local 2 // java.lang.String beanName
         0: .line 928
            aload 1 /* beanFactory */
            instanceof org.springframework.beans.factory.config.ConfigurableListableBeanFactory
            ifeq 3
            aload 1 /* beanFactory */
            aload 2 /* beanName */
            invokeinterface org.springframework.beans.factory.ListableBeanFactory.containsBeanDefinition:(Ljava/lang/String;)Z
            ifeq 3
         1: .line 929
            aload 1 /* beanFactory */
            checkcast org.springframework.beans.factory.config.ConfigurableListableBeanFactory
            aload 2 /* beanName */
            invokeinterface org.springframework.beans.factory.config.ConfigurableListableBeanFactory.getBeanDefinition:(Ljava/lang/String;)Lorg/springframework/beans/factory/config/BeanDefinition;
            invokeinterface org.springframework.beans.factory.config.BeanDefinition.isAbstract:()Z
            ifeq 3
         2: .line 928
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 2 // java.lang.String beanName
        end local 1 // org.springframework.beans.factory.ListableBeanFactory beanFactory
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/springframework/jmx/export/MBeanExporter;
            0    4     1  beanFactory  Lorg/springframework/beans/factory/ListableBeanFactory;
            0    4     2     beanName  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      beanFactory  
      beanName     

  private void injectNotificationPublisherIfNecessary(java.lang.Object, javax.management.modelmbean.ModelMBean, javax.management.ObjectName);
    descriptor: (Ljava/lang/Object;Ljavax/management/modelmbean/ModelMBean;Ljavax/management/ObjectName;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.lang.Object managedResource
        start local 2 // javax.management.modelmbean.ModelMBean modelMBean
        start local 3 // javax.management.ObjectName objectName
         0: .line 944
            aload 1 /* managedResource */
            instanceof org.springframework.jmx.export.notification.NotificationPublisherAware
            ifeq 4
            aload 2 /* modelMBean */
            ifnull 4
            aload 3 /* objectName */
            ifnull 4
         1: .line 945
            aload 1 /* managedResource */
            checkcast org.springframework.jmx.export.notification.NotificationPublisherAware
         2: .line 946
            new org.springframework.jmx.export.notification.ModelMBeanNotificationPublisher
            dup
            aload 2 /* modelMBean */
            aload 3 /* objectName */
            aload 1 /* managedResource */
            invokespecial org.springframework.jmx.export.notification.ModelMBeanNotificationPublisher.<init>:(Ljavax/management/modelmbean/ModelMBeanNotificationBroadcaster;Ljavax/management/ObjectName;Ljava/lang/Object;)V
         3: .line 945
            invokeinterface org.springframework.jmx.export.notification.NotificationPublisherAware.setNotificationPublisher:(Lorg/springframework/jmx/export/notification/NotificationPublisher;)V
         4: .line 948
      StackMap locals:
      StackMap stack:
            return
        end local 3 // javax.management.ObjectName objectName
        end local 2 // javax.management.modelmbean.ModelMBean modelMBean
        end local 1 // java.lang.Object managedResource
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lorg/springframework/jmx/export/MBeanExporter;
            0    5     1  managedResource  Ljava/lang/Object;
            0    5     2       modelMBean  Ljavax/management/modelmbean/ModelMBean;
            0    5     3       objectName  Ljavax/management/ObjectName;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
        org.springframework.lang.Nullable()
    MethodParameters:
                 Name  Flags
      managedResource  
      modelMBean       
      objectName       

  private void registerNotificationListeners();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=1
        start local 0 // org.springframework.jmx.export.MBeanExporter this
         0: .line 955
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.notificationListeners:[Lorg/springframework/jmx/export/NotificationListenerBean;
            ifnull 22
         1: .line 956
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.server:Ljavax/management/MBeanServer;
            ifnull 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: ldc "No MBeanServer available"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         4: .line 957
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.notificationListeners:[Lorg/springframework/jmx/export/NotificationListenerBean;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 21
      StackMap locals: org.springframework.jmx.export.MBeanExporter top int int org.springframework.jmx.export.NotificationListenerBean[]
      StackMap stack:
         5: aload 4
            iload 2
            aaload
            astore 1 /* bean */
        start local 1 // org.springframework.jmx.export.NotificationListenerBean bean
         6: .line 959
            aload 1 /* bean */
            invokevirtual org.springframework.jmx.export.NotificationListenerBean.getResolvedObjectNames:()[Ljavax/management/ObjectName;
            astore 5 /* mappedObjectNames */
        start local 5 // javax.management.ObjectName[] mappedObjectNames
         7: .line 960
            aload 5 /* mappedObjectNames */
            ifnonnull 9
         8: .line 962
            aload 0 /* this */
            invokevirtual org.springframework.jmx.export.MBeanExporter.getRegisteredObjectNames:()[Ljavax/management/ObjectName;
            astore 5 /* mappedObjectNames */
         9: .line 964
      StackMap locals: org.springframework.jmx.export.MBeanExporter org.springframework.jmx.export.NotificationListenerBean int int org.springframework.jmx.export.NotificationListenerBean[] javax.management.ObjectName[]
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.registeredNotificationListeners:Ljava/util/Map;
            aload 1 /* bean */
            aload 5 /* mappedObjectNames */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 20
        10: .line 965
            aload 5 /* mappedObjectNames */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 16
      StackMap locals: org.springframework.jmx.export.MBeanExporter org.springframework.jmx.export.NotificationListenerBean int int org.springframework.jmx.export.NotificationListenerBean[] javax.management.ObjectName[] top int int javax.management.ObjectName[]
      StackMap stack:
        11: aload 9
            iload 7
            aaload
            astore 6 /* mappedObjectName */
        start local 6 // javax.management.ObjectName mappedObjectName
        12: .line 966
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.server:Ljavax/management/MBeanServer;
            aload 6 /* mappedObjectName */
            aload 1 /* bean */
            invokevirtual org.springframework.jmx.export.NotificationListenerBean.getNotificationListener:()Ljavax/management/NotificationListener;
        13: .line 967
            aload 1 /* bean */
            invokevirtual org.springframework.jmx.export.NotificationListenerBean.getNotificationFilter:()Ljavax/management/NotificationFilter;
            aload 1 /* bean */
            invokevirtual org.springframework.jmx.export.NotificationListenerBean.getHandback:()Ljava/lang/Object;
        14: .line 966
            invokeinterface javax.management.MBeanServer.addNotificationListener:(Ljavax/management/ObjectName;Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;)V
        end local 6 // javax.management.ObjectName mappedObjectName
        15: .line 965
            iinc 7 1
      StackMap locals:
      StackMap stack:
        16: iload 7
            iload 8
            if_icmplt 11
        end local 5 // javax.management.ObjectName[] mappedObjectNames
        17: .line 970
            goto 20
        18: .line 971
      StackMap locals: org.springframework.jmx.export.MBeanExporter org.springframework.jmx.export.NotificationListenerBean int int org.springframework.jmx.export.NotificationListenerBean[]
      StackMap stack: java.lang.Throwable
            astore 5 /* ex */
        start local 5 // java.lang.Throwable ex
        19: .line 972
            new org.springframework.jmx.export.MBeanExportException
            dup
            ldc "Unable to register NotificationListener"
            aload 5 /* ex */
            invokespecial org.springframework.jmx.export.MBeanExportException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.Throwable ex
        end local 1 // org.springframework.jmx.export.NotificationListenerBean bean
        20: .line 957
      StackMap locals: org.springframework.jmx.export.MBeanExporter top int int org.springframework.jmx.export.NotificationListenerBean[]
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
        21: iload 2
            iload 3
            if_icmplt 5
        22: .line 976
      StackMap locals: org.springframework.jmx.export.MBeanExporter
      StackMap stack:
            return
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   23     0               this  Lorg/springframework/jmx/export/MBeanExporter;
            6   20     1               bean  Lorg/springframework/jmx/export/NotificationListenerBean;
            7   17     5  mappedObjectNames  [Ljavax/management/ObjectName;
           12   15     6   mappedObjectName  Ljavax/management/ObjectName;
           19   20     5                 ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           6    17      18  Class java.lang.Throwable
    Exceptions:
      throws org.springframework.jmx.export.MBeanExportException

  private void unregisterNotificationListeners();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.jmx.export.MBeanExporter this
         0: .line 983
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.server:Ljavax/management/MBeanServer;
            ifnull 2
         1: .line 984
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.registeredNotificationListeners:Ljava/util/Map;
            aload 0 /* this */
            invokedynamic accept(Lorg/springframework/jmx/export/MBeanExporter;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  org/springframework/jmx/export/MBeanExporter.lambda$4(Lorg/springframework/jmx/export/NotificationListenerBean;[Ljavax/management/ObjectName;)V (7)
                  (Lorg/springframework/jmx/export/NotificationListenerBean;[Ljavax/management/ObjectName;)V
            invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
         2: .line 998
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.registeredNotificationListeners:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         3: .line 999
            return
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/springframework/jmx/export/MBeanExporter;

  protected void onRegister(javax.management.ObjectName);
    descriptor: (Ljavax/management/ObjectName;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // javax.management.ObjectName objectName
         0: .line 1013
            aload 0 /* this */
            aload 1 /* objectName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.notifyListenersOfRegistration:(Ljavax/management/ObjectName;)V
         1: .line 1014
            return
        end local 1 // javax.management.ObjectName objectName
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/springframework/jmx/export/MBeanExporter;
            0    2     1  objectName  Ljavax/management/ObjectName;
    MethodParameters:
            Name  Flags
      objectName  

  protected void onUnregister(javax.management.ObjectName);
    descriptor: (Ljavax/management/ObjectName;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // javax.management.ObjectName objectName
         0: .line 1028
            aload 0 /* this */
            aload 1 /* objectName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.notifyListenersOfUnregistration:(Ljavax/management/ObjectName;)V
         1: .line 1029
            return
        end local 1 // javax.management.ObjectName objectName
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/springframework/jmx/export/MBeanExporter;
            0    2     1  objectName  Ljavax/management/ObjectName;
    MethodParameters:
            Name  Flags
      objectName  

  private void notifyListenersOfRegistration(javax.management.ObjectName);
    descriptor: (Ljavax/management/ObjectName;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // javax.management.ObjectName objectName
         0: .line 1037
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.listeners:[Lorg/springframework/jmx/export/MBeanExporterListener;
            ifnull 6
         1: .line 1038
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.listeners:[Lorg/springframework/jmx/export/MBeanExporterListener;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: org.springframework.jmx.export.MBeanExporter javax.management.ObjectName top int int org.springframework.jmx.export.MBeanExporterListener[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* listener */
        start local 2 // org.springframework.jmx.export.MBeanExporterListener listener
         3: .line 1039
            aload 2 /* listener */
            aload 1 /* objectName */
            invokeinterface org.springframework.jmx.export.MBeanExporterListener.mbeanRegistered:(Ljavax/management/ObjectName;)V
        end local 2 // org.springframework.jmx.export.MBeanExporterListener listener
         4: .line 1038
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 2
         6: .line 1042
      StackMap locals: org.springframework.jmx.export.MBeanExporter javax.management.ObjectName
      StackMap stack:
            return
        end local 1 // javax.management.ObjectName objectName
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/springframework/jmx/export/MBeanExporter;
            0    7     1  objectName  Ljavax/management/ObjectName;
            3    4     2    listener  Lorg/springframework/jmx/export/MBeanExporterListener;
    MethodParameters:
            Name  Flags
      objectName  

  private void notifyListenersOfUnregistration(javax.management.ObjectName);
    descriptor: (Ljavax/management/ObjectName;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // javax.management.ObjectName objectName
         0: .line 1049
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.listeners:[Lorg/springframework/jmx/export/MBeanExporterListener;
            ifnull 6
         1: .line 1050
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.listeners:[Lorg/springframework/jmx/export/MBeanExporterListener;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: org.springframework.jmx.export.MBeanExporter javax.management.ObjectName top int int org.springframework.jmx.export.MBeanExporterListener[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* listener */
        start local 2 // org.springframework.jmx.export.MBeanExporterListener listener
         3: .line 1051
            aload 2 /* listener */
            aload 1 /* objectName */
            invokeinterface org.springframework.jmx.export.MBeanExporterListener.mbeanUnregistered:(Ljavax/management/ObjectName;)V
        end local 2 // org.springframework.jmx.export.MBeanExporterListener listener
         4: .line 1050
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 2
         6: .line 1054
      StackMap locals: org.springframework.jmx.export.MBeanExporter javax.management.ObjectName
      StackMap stack:
            return
        end local 1 // javax.management.ObjectName objectName
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/springframework/jmx/export/MBeanExporter;
            0    7     1  objectName  Ljavax/management/ObjectName;
            3    4     2    listener  Lorg/springframework/jmx/export/MBeanExporterListener;
    MethodParameters:
            Name  Flags
      objectName  

  private static void lambda$0(java.util.List, java.lang.Object, javax.management.NotificationListener);
    descriptor: (Ljava/util/List;Ljava/lang/Object;Ljavax/management/NotificationListener;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=3
        start local 1 // java.lang.Object key
        start local 2 // javax.management.NotificationListener listener
         0: .line 377
            new org.springframework.jmx.export.NotificationListenerBean
            dup
            aload 2 /* listener */
            invokespecial org.springframework.jmx.export.NotificationListenerBean.<init>:(Ljavax/management/NotificationListener;)V
            astore 3 /* bean */
        start local 3 // org.springframework.jmx.export.NotificationListenerBean bean
         1: .line 379
            aload 1 /* key */
            ifnull 3
            ldc "*"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 381
            aload 3 /* bean */
            aload 1 /* key */
            invokevirtual org.springframework.jmx.export.NotificationListenerBean.setMappedObjectName:(Ljava/lang/Object;)V
         3: .line 383
      StackMap locals: org.springframework.jmx.export.NotificationListenerBean
      StackMap stack:
            aload 0
            aload 3 /* bean */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // org.springframework.jmx.export.NotificationListenerBean bean
         4: .line 384
            return
        end local 2 // javax.management.NotificationListener listener
        end local 1 // java.lang.Object key
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     1       key  Ljava/lang/Object;
            0    5     2  listener  Ljavax/management/NotificationListener;
            1    4     3      bean  Lorg/springframework/jmx/export/NotificationListenerBean;

  private boolean lambda$1(java.lang.Class, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.lang.Class beanClass
        start local 2 // java.lang.String beanName
         0: .line 541
            aload 0 /* this */
            aload 1 /* beanClass */
            invokevirtual org.springframework.jmx.export.MBeanExporter.isMBean:(Ljava/lang/Class;)Z
            ireturn
        end local 2 // java.lang.String beanName
        end local 1 // java.lang.Class beanClass
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/springframework/jmx/export/MBeanExporter;
            0    1     1  beanClass  Ljava/lang/Class<*>;
            0    1     2   beanName  Ljava/lang/String;

  private void lambda$3(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // java.lang.String beanName
        start local 2 // java.lang.Object instance
         0: .line 551
            aload 0 /* this */
            aload 2 /* instance */
            aload 1 /* beanName */
            invokevirtual org.springframework.jmx.export.MBeanExporter.registerBeanNameOrInstance:(Ljava/lang/Object;Ljava/lang/String;)Ljavax/management/ObjectName;
            return
        end local 2 // java.lang.Object instance
        end local 1 // java.lang.String beanName
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/springframework/jmx/export/MBeanExporter;
            0    1     1  beanName  Ljava/lang/String;
            0    1     2  instance  Ljava/lang/Object;

  private void lambda$4(org.springframework.jmx.export.NotificationListenerBean, javax.management.ObjectName[]);
    descriptor: (Lorg/springframework/jmx/export/NotificationListenerBean;[Ljavax/management/ObjectName;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.springframework.jmx.export.MBeanExporter this
        start local 1 // org.springframework.jmx.export.NotificationListenerBean bean
        start local 2 // javax.management.ObjectName[] mappedObjectNames
         0: .line 985
            aload 2 /* mappedObjectNames */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 10
      StackMap locals: org.springframework.jmx.export.MBeanExporter org.springframework.jmx.export.NotificationListenerBean javax.management.ObjectName[] top int int javax.management.ObjectName[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* mappedObjectName */
        start local 3 // javax.management.ObjectName mappedObjectName
         2: .line 987
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.server:Ljavax/management/MBeanServer;
            aload 3 /* mappedObjectName */
            aload 1 /* bean */
            invokevirtual org.springframework.jmx.export.NotificationListenerBean.getNotificationListener:()Ljavax/management/NotificationListener;
         3: .line 988
            aload 1 /* bean */
            invokevirtual org.springframework.jmx.export.NotificationListenerBean.getNotificationFilter:()Ljavax/management/NotificationFilter;
            aload 1 /* bean */
            invokevirtual org.springframework.jmx.export.NotificationListenerBean.getHandback:()Ljava/lang/Object;
         4: .line 987
            invokeinterface javax.management.MBeanServer.removeNotificationListener:(Ljavax/management/ObjectName;Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;)V
         5: .line 989
            goto 9
         6: .line 990
      StackMap locals: org.springframework.jmx.export.MBeanExporter org.springframework.jmx.export.NotificationListenerBean javax.management.ObjectName[] javax.management.ObjectName int int javax.management.ObjectName[]
      StackMap stack: java.lang.Throwable
            astore 7 /* ex */
        start local 7 // java.lang.Throwable ex
         7: .line 991
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 9
         8: .line 992
            aload 0 /* this */
            getfield org.springframework.jmx.export.MBeanExporter.logger:Lorg/apache/commons/logging/Log;
            ldc "Unable to unregister NotificationListener"
            aload 7 /* ex */
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 7 // java.lang.Throwable ex
        end local 3 // javax.management.ObjectName mappedObjectName
         9: .line 985
      StackMap locals: org.springframework.jmx.export.MBeanExporter org.springframework.jmx.export.NotificationListenerBean javax.management.ObjectName[] top int int javax.management.ObjectName[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        10: iload 4
            iload 5
            if_icmplt 1
        11: .line 996
            return
        end local 2 // javax.management.ObjectName[] mappedObjectNames
        end local 1 // org.springframework.jmx.export.NotificationListenerBean bean
        end local 0 // org.springframework.jmx.export.MBeanExporter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   12     0               this  Lorg/springframework/jmx/export/MBeanExporter;
            0   12     1               bean  Lorg/springframework/jmx/export/NotificationListenerBean;
            0   12     2  mappedObjectNames  [Ljavax/management/ObjectName;
            2    9     3   mappedObjectName  Ljavax/management/ObjectName;
            7    9     7                 ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     5       6  Class java.lang.Throwable
}
SourceFile: "MBeanExporter.java"
NestMembers:
  org.springframework.jmx.export.MBeanExporter$AutodetectCallback  org.springframework.jmx.export.MBeanExporter$NotificationPublisherAwareLazyTargetSource
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  private abstract AutodetectCallback = org.springframework.jmx.export.MBeanExporter$AutodetectCallback of org.springframework.jmx.export.MBeanExporter
  private NotificationPublisherAwareLazyTargetSource = org.springframework.jmx.export.MBeanExporter$NotificationPublisherAwareLazyTargetSource of org.springframework.jmx.export.MBeanExporter