class org.springframework.aop.framework.CglibAopProxy implements org.springframework.aop.framework.AopProxy, java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.aop.framework.CglibAopProxy
  super_class: java.lang.Object
{
  private static final int AOP_PROXY;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int INVOKE_TARGET;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int NO_OVERRIDE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int DISPATCH_TARGET;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int DISPATCH_ADVISED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int INVOKE_EQUALS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  private static final int INVOKE_HASHCODE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  protected static final org.apache.commons.logging.Log logger;
    descriptor: Lorg/apache/commons/logging/Log;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  private static final java.util.Map<java.lang.Class<?>, java.lang.Boolean> validatedClasses;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class<*>;Ljava/lang/Boolean;>;

  protected final org.springframework.aop.framework.AdvisedSupport advised;
    descriptor: Lorg/springframework/aop/framework/AdvisedSupport;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected java.lang.Object[] constructorArgs;
    descriptor: [Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  protected java.lang.Class<?>[] constructorArgTypes;
    descriptor: [Ljava/lang/Class;
    flags: (0x0004) ACC_PROTECTED
    Signature: [Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private final transient org.springframework.aop.framework.CglibAopProxy$AdvisedDispatcher advisedDispatcher;
    descriptor: Lorg/springframework/aop/framework/CglibAopProxy$AdvisedDispatcher;
    flags: (0x0092) ACC_PRIVATE, ACC_FINAL, ACC_TRANSIENT

  private transient java.util.Map<java.lang.reflect.Method, java.lang.Integer> fixedInterceptorMap;
    descriptor: Ljava/util/Map;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
    Signature: Ljava/util/Map<Ljava/lang/reflect/Method;Ljava/lang/Integer;>;

  private transient int fixedInterceptorOffset;
    descriptor: I
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 98
            ldc Lorg/springframework/aop/framework/CglibAopProxy;
            invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            putstatic org.springframework.aop.framework.CglibAopProxy.logger:Lorg/apache/commons/logging/Log;
         1: .line 101
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            putstatic org.springframework.aop.framework.CglibAopProxy.validatedClasses:Ljava/util/Map;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.springframework.aop.framework.AdvisedSupport);
    descriptor: (Lorg/springframework/aop/framework/AdvisedSupport;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.aop.framework.CglibAopProxy this
        start local 1 // org.springframework.aop.framework.AdvisedSupport config
         0: .line 127
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 116
            aload 0 /* this */
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            putfield org.springframework.aop.framework.CglibAopProxy.fixedInterceptorMap:Ljava/util/Map;
         2: .line 128
            aload 1 /* config */
            ldc "AdvisedSupport must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         3: .line 129
            aload 1 /* config */
            invokevirtual org.springframework.aop.framework.AdvisedSupport.getAdvisorCount:()I
            ifne 5
            aload 1 /* config */
            invokevirtual org.springframework.aop.framework.AdvisedSupport.getTargetSource:()Lorg/springframework/aop/TargetSource;
            getstatic org.springframework.aop.framework.AdvisedSupport.EMPTY_TARGET_SOURCE:Lorg/springframework/aop/TargetSource;
            if_acmpne 5
         4: .line 130
            new org.springframework.aop.framework.AopConfigException
            dup
            ldc "No advisors and no TargetSource specified"
            invokespecial org.springframework.aop.framework.AopConfigException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 132
      StackMap locals: org.springframework.aop.framework.CglibAopProxy org.springframework.aop.framework.AdvisedSupport
      StackMap stack:
            aload 0 /* this */
            aload 1 /* config */
            putfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
         6: .line 133
            aload 0 /* this */
            new org.springframework.aop.framework.CglibAopProxy$AdvisedDispatcher
            dup
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokespecial org.springframework.aop.framework.CglibAopProxy$AdvisedDispatcher.<init>:(Lorg/springframework/aop/framework/AdvisedSupport;)V
            putfield org.springframework.aop.framework.CglibAopProxy.advisedDispatcher:Lorg/springframework/aop/framework/CglibAopProxy$AdvisedDispatcher;
         7: .line 134
            return
        end local 1 // org.springframework.aop.framework.AdvisedSupport config
        end local 0 // org.springframework.aop.framework.CglibAopProxy this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/springframework/aop/framework/CglibAopProxy;
            0    8     1  config  Lorg/springframework/aop/framework/AdvisedSupport;
    Exceptions:
      throws org.springframework.aop.framework.AopConfigException
    MethodParameters:
        Name  Flags
      config  

  public void setConstructorArguments([], java.lang.Class<?>[]);
    descriptor: ([Ljava/lang/Object;[Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.springframework.aop.framework.CglibAopProxy this
        start local 1 // java.lang.Object[] constructorArgs
        start local 2 // java.lang.Class[] constructorArgTypes
         0: .line 142
            aload 1 /* constructorArgs */
            ifnull 1
            aload 2 /* constructorArgTypes */
            ifnonnull 2
         1: .line 143
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Both 'constructorArgs' and 'constructorArgTypes' need to be specified"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 145
      StackMap locals:
      StackMap stack:
            aload 1 /* constructorArgs */
            arraylength
            aload 2 /* constructorArgTypes */
            arraylength
            if_icmpeq 6
         3: .line 146
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Number of 'constructorArgs' ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* constructorArgs */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         4: .line 147
            ldc ") must match number of 'constructorArgTypes' ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* constructorArgTypes */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 146
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 149
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* constructorArgs */
            putfield org.springframework.aop.framework.CglibAopProxy.constructorArgs:[Ljava/lang/Object;
         7: .line 150
            aload 0 /* this */
            aload 2 /* constructorArgTypes */
            putfield org.springframework.aop.framework.CglibAopProxy.constructorArgTypes:[Ljava/lang/Class;
         8: .line 151
            return
        end local 2 // java.lang.Class[] constructorArgTypes
        end local 1 // java.lang.Object[] constructorArgs
        end local 0 // org.springframework.aop.framework.CglibAopProxy this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    9     0                 this  Lorg/springframework/aop/framework/CglibAopProxy;
            0    9     1      constructorArgs  [Ljava/lang/Object;
            0    9     2  constructorArgTypes  [Ljava/lang/Class;
    Signature: ([Ljava/lang/Object;[Ljava/lang/Class<*>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
                     Name  Flags
      constructorArgs      
      constructorArgTypes  

  public java.lang.Object getProxy();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.aop.framework.CglibAopProxy this
         0: .line 156
            aload 0 /* this */
            aconst_null
            invokevirtual org.springframework.aop.framework.CglibAopProxy.getProxy:(Ljava/lang/ClassLoader;)Ljava/lang/Object;
            areturn
        end local 0 // org.springframework.aop.framework.CglibAopProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/aop/framework/CglibAopProxy;

  public java.lang.Object getProxy(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // org.springframework.aop.framework.CglibAopProxy this
        start local 1 // java.lang.ClassLoader classLoader
         0: .line 161
            getstatic org.springframework.aop.framework.CglibAopProxy.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isTraceEnabled:()Z
            ifeq 2
         1: .line 162
            getstatic org.springframework.aop.framework.CglibAopProxy.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Creating CGLIB proxy: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokevirtual org.springframework.aop.framework.AdvisedSupport.getTargetSource:()Lorg/springframework/aop/TargetSource;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.commons.logging.Log.trace:(Ljava/lang/Object;)V
         2: .line 166
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokevirtual org.springframework.aop.framework.AdvisedSupport.getTargetClass:()Ljava/lang/Class;
            astore 2 /* rootClass */
        start local 2 // java.lang.Class rootClass
         3: .line 167
            aload 2 /* rootClass */
            ifnull 4
            iconst_1
            goto 5
      StackMap locals: java.lang.Class
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: ldc "Target class must be available for creating a CGLIB proxy"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         6: .line 169
            aload 2 /* rootClass */
            astore 3 /* proxySuperClass */
        start local 3 // java.lang.Class proxySuperClass
         7: .line 170
            aload 2 /* rootClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            ldc "$$"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 15
         8: .line 171
            aload 2 /* rootClass */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 3 /* proxySuperClass */
         9: .line 172
            aload 2 /* rootClass */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            astore 4 /* additionalInterfaces */
        start local 4 // java.lang.Class[] additionalInterfaces
        10: .line 173
            aload 4 /* additionalInterfaces */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 14
      StackMap locals: org.springframework.aop.framework.CglibAopProxy java.lang.ClassLoader java.lang.Class java.lang.Class java.lang.Class[] top int int java.lang.Class[]
      StackMap stack:
        11: aload 8
            iload 6
            aaload
            astore 5 /* additionalInterface */
        start local 5 // java.lang.Class additionalInterface
        12: .line 174
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            aload 5 /* additionalInterface */
            invokevirtual org.springframework.aop.framework.AdvisedSupport.addInterface:(Ljava/lang/Class;)V
        end local 5 // java.lang.Class additionalInterface
        13: .line 173
            iinc 6 1
      StackMap locals:
      StackMap stack:
        14: iload 6
            iload 7
            if_icmplt 11
        end local 4 // java.lang.Class[] additionalInterfaces
        15: .line 179
      StackMap locals: org.springframework.aop.framework.CglibAopProxy java.lang.ClassLoader java.lang.Class java.lang.Class
      StackMap stack:
            aload 0 /* this */
            aload 3 /* proxySuperClass */
            aload 1 /* classLoader */
            invokevirtual org.springframework.aop.framework.CglibAopProxy.validateClassIfNecessary:(Ljava/lang/Class;Ljava/lang/ClassLoader;)V
        16: .line 182
            aload 0 /* this */
            invokevirtual org.springframework.aop.framework.CglibAopProxy.createEnhancer:()Lorg/springframework/cglib/proxy/Enhancer;
            astore 4 /* enhancer */
        start local 4 // org.springframework.cglib.proxy.Enhancer enhancer
        17: .line 183
            aload 1 /* classLoader */
            ifnull 22
        18: .line 184
            aload 4 /* enhancer */
            aload 1 /* classLoader */
            invokevirtual org.springframework.cglib.proxy.Enhancer.setClassLoader:(Ljava/lang/ClassLoader;)V
        19: .line 185
            aload 1 /* classLoader */
            instanceof org.springframework.core.SmartClassLoader
            ifeq 22
        20: .line 186
            aload 1 /* classLoader */
            checkcast org.springframework.core.SmartClassLoader
            aload 3 /* proxySuperClass */
            invokeinterface org.springframework.core.SmartClassLoader.isClassReloadable:(Ljava/lang/Class;)Z
            ifeq 22
        21: .line 187
            aload 4 /* enhancer */
            iconst_0
            invokevirtual org.springframework.cglib.proxy.Enhancer.setUseCache:(Z)V
        22: .line 190
      StackMap locals: org.springframework.cglib.proxy.Enhancer
      StackMap stack:
            aload 4 /* enhancer */
            aload 3 /* proxySuperClass */
            invokevirtual org.springframework.cglib.proxy.Enhancer.setSuperclass:(Ljava/lang/Class;)V
        23: .line 191
            aload 4 /* enhancer */
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokestatic org.springframework.aop.framework.AopProxyUtils.completeProxiedInterfaces:(Lorg/springframework/aop/framework/AdvisedSupport;)[Ljava/lang/Class;
            invokevirtual org.springframework.cglib.proxy.Enhancer.setInterfaces:([Ljava/lang/Class;)V
        24: .line 192
            aload 4 /* enhancer */
            getstatic org.springframework.cglib.core.SpringNamingPolicy.INSTANCE:Lorg/springframework/cglib/core/SpringNamingPolicy;
            invokevirtual org.springframework.cglib.proxy.Enhancer.setNamingPolicy:(Lorg/springframework/cglib/core/NamingPolicy;)V
        25: .line 193
            aload 4 /* enhancer */
            new org.springframework.cglib.core.ClassLoaderAwareGeneratorStrategy
            dup
            aload 1 /* classLoader */
            invokespecial org.springframework.cglib.core.ClassLoaderAwareGeneratorStrategy.<init>:(Ljava/lang/ClassLoader;)V
            invokevirtual org.springframework.cglib.proxy.Enhancer.setStrategy:(Lorg/springframework/cglib/core/GeneratorStrategy;)V
        26: .line 195
            aload 0 /* this */
            aload 2 /* rootClass */
            invokevirtual org.springframework.aop.framework.CglibAopProxy.getCallbacks:(Ljava/lang/Class;)[Lorg/springframework/cglib/proxy/Callback;
            astore 5 /* callbacks */
        start local 5 // org.springframework.cglib.proxy.Callback[] callbacks
        27: .line 196
            aload 5 /* callbacks */
            arraylength
            anewarray java.lang.Class
            astore 6 /* types */
        start local 6 // java.lang.Class[] types
        28: .line 197
            iconst_0
            istore 7 /* x */
        start local 7 // int x
        29: goto 32
        30: .line 198
      StackMap locals: org.springframework.cglib.proxy.Callback[] java.lang.Class[] int
      StackMap stack:
            aload 6 /* types */
            iload 7 /* x */
            aload 5 /* callbacks */
            iload 7 /* x */
            aaload
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aastore
        31: .line 197
            iinc 7 /* x */ 1
      StackMap locals:
      StackMap stack:
        32: iload 7 /* x */
            aload 6 /* types */
            arraylength
            if_icmplt 30
        end local 7 // int x
        33: .line 201
            aload 4 /* enhancer */
            new org.springframework.aop.framework.CglibAopProxy$ProxyCallbackFilter
            dup
        34: .line 202
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokevirtual org.springframework.aop.framework.AdvisedSupport.getConfigurationOnlyCopy:()Lorg/springframework/aop/framework/AdvisedSupport;
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.fixedInterceptorMap:Ljava/util/Map;
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.fixedInterceptorOffset:I
            invokespecial org.springframework.aop.framework.CglibAopProxy$ProxyCallbackFilter.<init>:(Lorg/springframework/aop/framework/AdvisedSupport;Ljava/util/Map;I)V
        35: .line 201
            invokevirtual org.springframework.cglib.proxy.Enhancer.setCallbackFilter:(Lorg/springframework/cglib/proxy/CallbackFilter;)V
        36: .line 203
            aload 4 /* enhancer */
            aload 6 /* types */
            invokevirtual org.springframework.cglib.proxy.Enhancer.setCallbackTypes:([Ljava/lang/Class;)V
        37: .line 206
            aload 0 /* this */
            aload 4 /* enhancer */
            aload 5 /* callbacks */
            invokevirtual org.springframework.aop.framework.CglibAopProxy.createProxyClassAndInstance:(Lorg/springframework/cglib/proxy/Enhancer;[Lorg/springframework/cglib/proxy/Callback;)Ljava/lang/Object;
        38: areturn
        end local 6 // java.lang.Class[] types
        end local 5 // org.springframework.cglib.proxy.Callback[] callbacks
        end local 4 // org.springframework.cglib.proxy.Enhancer enhancer
        end local 3 // java.lang.Class proxySuperClass
        end local 2 // java.lang.Class rootClass
        39: .line 208
      StackMap locals: org.springframework.aop.framework.CglibAopProxy java.lang.ClassLoader
      StackMap stack: java.lang.RuntimeException
            astore 2 /* ex */
        start local 2 // java.lang.RuntimeException ex
        40: .line 209
            new org.springframework.aop.framework.AopConfigException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not generate CGLIB subclass of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokevirtual org.springframework.aop.framework.AdvisedSupport.getTargetClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        41: .line 210
            ldc ": Common causes of this problem include using a final class or a non-visible class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        42: .line 211
            aload 2 /* ex */
        43: .line 209
            invokespecial org.springframework.aop.framework.AopConfigException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.RuntimeException ex
        44: .line 213
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* ex */
        start local 2 // java.lang.Throwable ex
        45: .line 215
            new org.springframework.aop.framework.AopConfigException
            dup
            ldc "Unexpected AOP exception"
            aload 2 /* ex */
            invokespecial org.springframework.aop.framework.AopConfigException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Throwable ex
        end local 1 // java.lang.ClassLoader classLoader
        end local 0 // org.springframework.aop.framework.CglibAopProxy this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   46     0                  this  Lorg/springframework/aop/framework/CglibAopProxy;
            0   46     1           classLoader  Ljava/lang/ClassLoader;
            3   39     2             rootClass  Ljava/lang/Class<*>;
            7   39     3       proxySuperClass  Ljava/lang/Class<*>;
           10   15     4  additionalInterfaces  [Ljava/lang/Class;
           12   13     5   additionalInterface  Ljava/lang/Class<*>;
           17   39     4              enhancer  Lorg/springframework/cglib/proxy/Enhancer;
           27   39     5             callbacks  [Lorg/springframework/cglib/proxy/Callback;
           28   39     6                 types  [Ljava/lang/Class;
           29   33     7                     x  I
           40   44     2                    ex  Ljava/lang/RuntimeException;
           45   46     2                    ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2    38      39  Class org.springframework.cglib.core.CodeGenerationException
           2    38      39  Class java.lang.IllegalArgumentException
           2    38      44  Class java.lang.Throwable
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
             Name  Flags
      classLoader  

  protected java.lang.Object createProxyClassAndInstance(org.springframework.cglib.proxy.Enhancer, org.springframework.cglib.proxy.Callback[]);
    descriptor: (Lorg/springframework/cglib/proxy/Enhancer;[Lorg/springframework/cglib/proxy/Callback;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.aop.framework.CglibAopProxy this
        start local 1 // org.springframework.cglib.proxy.Enhancer enhancer
        start local 2 // org.springframework.cglib.proxy.Callback[] callbacks
         0: .line 220
            aload 1 /* enhancer */
            iconst_0
            invokevirtual org.springframework.cglib.proxy.Enhancer.setInterceptDuringConstruction:(Z)V
         1: .line 221
            aload 1 /* enhancer */
            aload 2 /* callbacks */
            invokevirtual org.springframework.cglib.proxy.Enhancer.setCallbacks:([Lorg/springframework/cglib/proxy/Callback;)V
         2: .line 222
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.constructorArgs:[Ljava/lang/Object;
            ifnull 4
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.constructorArgTypes:[Ljava/lang/Class;
            ifnull 4
         3: .line 223
            aload 1 /* enhancer */
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.constructorArgTypes:[Ljava/lang/Class;
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.constructorArgs:[Ljava/lang/Object;
            invokevirtual org.springframework.cglib.proxy.Enhancer.create:([Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
            goto 5
         4: .line 224
      StackMap locals:
      StackMap stack:
            aload 1 /* enhancer */
            invokevirtual org.springframework.cglib.proxy.Enhancer.create:()Ljava/lang/Object;
         5: .line 222
      StackMap locals:
      StackMap stack: java.lang.Object
            areturn
        end local 2 // org.springframework.cglib.proxy.Callback[] callbacks
        end local 1 // org.springframework.cglib.proxy.Enhancer enhancer
        end local 0 // org.springframework.aop.framework.CglibAopProxy this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/springframework/aop/framework/CglibAopProxy;
            0    6     1   enhancer  Lorg/springframework/cglib/proxy/Enhancer;
            0    6     2  callbacks  [Lorg/springframework/cglib/proxy/Callback;
    MethodParameters:
           Name  Flags
      enhancer   
      callbacks  

  protected org.springframework.cglib.proxy.Enhancer createEnhancer();
    descriptor: ()Lorg/springframework/cglib/proxy/Enhancer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.aop.framework.CglibAopProxy this
         0: .line 232
            new org.springframework.cglib.proxy.Enhancer
            dup
            invokespecial org.springframework.cglib.proxy.Enhancer.<init>:()V
            areturn
        end local 0 // org.springframework.aop.framework.CglibAopProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/aop/framework/CglibAopProxy;

  private void validateClassIfNecessary(java.lang.Class<?>, java.lang.ClassLoader);
    descriptor: (Ljava/lang/Class;Ljava/lang/ClassLoader;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.springframework.aop.framework.CglibAopProxy this
        start local 1 // java.lang.Class proxySuperClass
        start local 2 // java.lang.ClassLoader proxyClassLoader
         0: .line 240
            getstatic org.springframework.aop.framework.CglibAopProxy.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isWarnEnabled:()Z
            ifeq 11
         1: .line 241
            getstatic org.springframework.aop.framework.CglibAopProxy.validatedClasses:Ljava/util/Map;
            dup
            astore 3
            monitorenter
         2: .line 242
            getstatic org.springframework.aop.framework.CglibAopProxy.validatedClasses:Ljava/util/Map;
            aload 1 /* proxySuperClass */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 7
         3: .line 243
            aload 0 /* this */
            aload 1 /* proxySuperClass */
            aload 2 /* proxyClassLoader */
         4: .line 244
            aload 1 /* proxySuperClass */
            invokestatic org.springframework.util.ClassUtils.getAllInterfacesForClassAsSet:(Ljava/lang/Class;)Ljava/util/Set;
         5: .line 243
            invokevirtual org.springframework.aop.framework.CglibAopProxy.doValidateClass:(Ljava/lang/Class;Ljava/lang/ClassLoader;Ljava/util/Set;)V
         6: .line 245
            getstatic org.springframework.aop.framework.CglibAopProxy.validatedClasses:Ljava/util/Map;
            aload 1 /* proxySuperClass */
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 241
      StackMap locals: java.util.Map
      StackMap stack:
            aload 3
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 3
            monitorexit
        10: athrow
        11: .line 249
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.ClassLoader proxyClassLoader
        end local 1 // java.lang.Class proxySuperClass
        end local 0 // org.springframework.aop.framework.CglibAopProxy this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   12     0              this  Lorg/springframework/aop/framework/CglibAopProxy;
            0   12     1   proxySuperClass  Ljava/lang/Class<*>;
            0   12     2  proxyClassLoader  Ljava/lang/ClassLoader;
      Exception table:
        from    to  target  type
           2     8       9  any
           9    10       9  any
    Signature: (Ljava/lang/Class<*>;Ljava/lang/ClassLoader;)V
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
                  Name  Flags
      proxySuperClass   
      proxyClassLoader  

  private void doValidateClass(java.lang.Class<?>, java.lang.ClassLoader, java.util.Set<java.lang.Class<?>>);
    descriptor: (Ljava/lang/Class;Ljava/lang/ClassLoader;Ljava/util/Set;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // org.springframework.aop.framework.CglibAopProxy this
        start local 1 // java.lang.Class proxySuperClass
        start local 2 // java.lang.ClassLoader proxyClassLoader
        start local 3 // java.util.Set ifcs
         0: .line 256
            aload 1 /* proxySuperClass */
            ldc Ljava/lang/Object;
            if_acmpeq 26
         1: .line 257
            aload 1 /* proxySuperClass */
            invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
            astore 4 /* methods */
        start local 4 // java.lang.reflect.Method[] methods
         2: .line 258
            aload 4 /* methods */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 24
      StackMap locals: org.springframework.aop.framework.CglibAopProxy java.lang.Class java.lang.ClassLoader java.util.Set java.lang.reflect.Method[] top int int java.lang.reflect.Method[]
      StackMap stack:
         3: aload 8
            iload 6
            aaload
            astore 5 /* method */
        start local 5 // java.lang.reflect.Method method
         4: .line 259
            aload 5 /* method */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            istore 9 /* mod */
        start local 9 // int mod
         5: .line 260
            iload 9 /* mod */
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifne 23
            iload 9 /* mod */
            invokestatic java.lang.reflect.Modifier.isPrivate:(I)Z
            ifne 23
         6: .line 261
            iload 9 /* mod */
            invokestatic java.lang.reflect.Modifier.isFinal:(I)Z
            ifeq 17
         7: .line 262
            getstatic org.springframework.aop.framework.CglibAopProxy.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
            ifeq 11
            aload 5 /* method */
            aload 3 /* ifcs */
            invokestatic org.springframework.aop.framework.CglibAopProxy.implementsInterface:(Ljava/lang/reflect/Method;Ljava/util/Set;)Z
            ifeq 11
         8: .line 263
            getstatic org.springframework.aop.framework.CglibAopProxy.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Unable to proxy interface-implementing method ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "] because "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 264
            ldc "it is marked as final: Consider using interface-based JDK proxies instead!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 263
            invokeinterface org.apache.commons.logging.Log.info:(Ljava/lang/Object;)V
        11: .line 266
      StackMap locals: org.springframework.aop.framework.CglibAopProxy java.lang.Class java.lang.ClassLoader java.util.Set java.lang.reflect.Method[] java.lang.reflect.Method int int java.lang.reflect.Method[] int
      StackMap stack:
            getstatic org.springframework.aop.framework.CglibAopProxy.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 23
        12: .line 267
            getstatic org.springframework.aop.framework.CglibAopProxy.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Final method ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "] cannot get proxied via CGLIB: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 268
            ldc "Calls to this method will NOT be routed to the target instance and "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 269
            ldc "might lead to NPEs against uninitialized fields in the proxy instance."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 267
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        16: .line 271
            goto 23
        17: .line 272
      StackMap locals:
      StackMap stack:
            getstatic org.springframework.aop.framework.CglibAopProxy.logger:Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
            ifeq 23
            iload 9 /* mod */
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifne 23
            iload 9 /* mod */
            invokestatic java.lang.reflect.Modifier.isProtected:(I)Z
            ifne 23
        18: .line 273
            aload 2 /* proxyClassLoader */
            ifnull 23
            aload 1 /* proxySuperClass */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            aload 2 /* proxyClassLoader */
            if_acmpeq 23
        19: .line 274
            getstatic org.springframework.aop.framework.CglibAopProxy.logger:Lorg/apache/commons/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Method ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "] is package-visible across different ClassLoaders "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        20: .line 275
            ldc "and cannot get proxied via CGLIB: Declare this method as public or protected "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        21: .line 276
            ldc "if you need to support invocations through the proxy."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        22: .line 274
            invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
        end local 9 // int mod
        end local 5 // java.lang.reflect.Method method
        23: .line 258
      StackMap locals: org.springframework.aop.framework.CglibAopProxy java.lang.Class java.lang.ClassLoader java.util.Set java.lang.reflect.Method[] top int int java.lang.reflect.Method[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        24: iload 6
            iload 7
            if_icmplt 3
        25: .line 280
            aload 0 /* this */
            aload 1 /* proxySuperClass */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            aload 2 /* proxyClassLoader */
            aload 3 /* ifcs */
            invokevirtual org.springframework.aop.framework.CglibAopProxy.doValidateClass:(Ljava/lang/Class;Ljava/lang/ClassLoader;Ljava/util/Set;)V
        end local 4 // java.lang.reflect.Method[] methods
        26: .line 282
      StackMap locals: org.springframework.aop.framework.CglibAopProxy java.lang.Class java.lang.ClassLoader java.util.Set
      StackMap stack:
            return
        end local 3 // java.util.Set ifcs
        end local 2 // java.lang.ClassLoader proxyClassLoader
        end local 1 // java.lang.Class proxySuperClass
        end local 0 // org.springframework.aop.framework.CglibAopProxy this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   27     0              this  Lorg/springframework/aop/framework/CglibAopProxy;
            0   27     1   proxySuperClass  Ljava/lang/Class<*>;
            0   27     2  proxyClassLoader  Ljava/lang/ClassLoader;
            0   27     3              ifcs  Ljava/util/Set<Ljava/lang/Class<*>;>;
            2   26     4           methods  [Ljava/lang/reflect/Method;
            4   23     5            method  Ljava/lang/reflect/Method;
            5   23     9               mod  I
    Signature: (Ljava/lang/Class<*>;Ljava/lang/ClassLoader;Ljava/util/Set<Ljava/lang/Class<*>;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
    MethodParameters:
                  Name  Flags
      proxySuperClass   
      proxyClassLoader  
      ifcs              

  private org.springframework.cglib.proxy.Callback[] getCallbacks(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)[Lorg/springframework/cglib/proxy/Callback;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=15, args_size=2
        start local 0 // org.springframework.aop.framework.CglibAopProxy this
        start local 1 // java.lang.Class rootClass
         0: .line 286
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokevirtual org.springframework.aop.framework.AdvisedSupport.isExposeProxy:()Z
            istore 2 /* exposeProxy */
        start local 2 // boolean exposeProxy
         1: .line 287
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokevirtual org.springframework.aop.framework.AdvisedSupport.isFrozen:()Z
            istore 3 /* isFrozen */
        start local 3 // boolean isFrozen
         2: .line 288
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokevirtual org.springframework.aop.framework.AdvisedSupport.getTargetSource:()Lorg/springframework/aop/TargetSource;
            invokeinterface org.springframework.aop.TargetSource.isStatic:()Z
            istore 4 /* isStatic */
        start local 4 // boolean isStatic
         3: .line 291
            new org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor
            dup
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokespecial org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.<init>:(Lorg/springframework/aop/framework/AdvisedSupport;)V
            astore 5 /* aopInterceptor */
        start local 5 // org.springframework.cglib.proxy.Callback aopInterceptor
         4: .line 296
            iload 2 /* exposeProxy */
            ifeq 10
         5: .line 297
            iload 4 /* isStatic */
            ifeq 7
         6: .line 298
            new org.springframework.aop.framework.CglibAopProxy$StaticUnadvisedExposedInterceptor
            dup
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokevirtual org.springframework.aop.framework.AdvisedSupport.getTargetSource:()Lorg/springframework/aop/TargetSource;
            invokeinterface org.springframework.aop.TargetSource.getTarget:()Ljava/lang/Object;
            invokespecial org.springframework.aop.framework.CglibAopProxy$StaticUnadvisedExposedInterceptor.<init>:(Ljava/lang/Object;)V
            goto 8
         7: .line 299
      StackMap locals: org.springframework.aop.framework.CglibAopProxy java.lang.Class int int int org.springframework.cglib.proxy.Callback
      StackMap stack:
            new org.springframework.aop.framework.CglibAopProxy$DynamicUnadvisedExposedInterceptor
            dup
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokevirtual org.springframework.aop.framework.AdvisedSupport.getTargetSource:()Lorg/springframework/aop/TargetSource;
            invokespecial org.springframework.aop.framework.CglibAopProxy$DynamicUnadvisedExposedInterceptor.<init>:(Lorg/springframework/aop/TargetSource;)V
         8: .line 297
      StackMap locals:
      StackMap stack: org.springframework.cglib.proxy.MethodInterceptor
            astore 6 /* targetInterceptor */
        start local 6 // org.springframework.cglib.proxy.Callback targetInterceptor
         9: .line 300
            goto 14
        end local 6 // org.springframework.cglib.proxy.Callback targetInterceptor
        10: .line 302
      StackMap locals:
      StackMap stack:
            iload 4 /* isStatic */
            ifeq 12
        11: .line 303
            new org.springframework.aop.framework.CglibAopProxy$StaticUnadvisedInterceptor
            dup
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokevirtual org.springframework.aop.framework.AdvisedSupport.getTargetSource:()Lorg/springframework/aop/TargetSource;
            invokeinterface org.springframework.aop.TargetSource.getTarget:()Ljava/lang/Object;
            invokespecial org.springframework.aop.framework.CglibAopProxy$StaticUnadvisedInterceptor.<init>:(Ljava/lang/Object;)V
            goto 13
        12: .line 304
      StackMap locals:
      StackMap stack:
            new org.springframework.aop.framework.CglibAopProxy$DynamicUnadvisedInterceptor
            dup
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokevirtual org.springframework.aop.framework.AdvisedSupport.getTargetSource:()Lorg/springframework/aop/TargetSource;
            invokespecial org.springframework.aop.framework.CglibAopProxy$DynamicUnadvisedInterceptor.<init>:(Lorg/springframework/aop/TargetSource;)V
        13: .line 302
      StackMap locals:
      StackMap stack: org.springframework.cglib.proxy.MethodInterceptor
            astore 6 /* targetInterceptor */
        start local 6 // org.springframework.cglib.proxy.Callback targetInterceptor
        14: .line 309
      StackMap locals: org.springframework.cglib.proxy.Callback
      StackMap stack:
            iload 4 /* isStatic */
            ifeq 16
        15: .line 310
            new org.springframework.aop.framework.CglibAopProxy$StaticDispatcher
            dup
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokevirtual org.springframework.aop.framework.AdvisedSupport.getTargetSource:()Lorg/springframework/aop/TargetSource;
            invokeinterface org.springframework.aop.TargetSource.getTarget:()Ljava/lang/Object;
            invokespecial org.springframework.aop.framework.CglibAopProxy$StaticDispatcher.<init>:(Ljava/lang/Object;)V
            goto 17
      StackMap locals:
      StackMap stack:
        16: new org.springframework.aop.framework.CglibAopProxy$SerializableNoOp
            dup
            invokespecial org.springframework.aop.framework.CglibAopProxy$SerializableNoOp.<init>:()V
        17: .line 309
      StackMap locals:
      StackMap stack: java.io.Serializable
            astore 7 /* targetDispatcher */
        start local 7 // org.springframework.cglib.proxy.Callback targetDispatcher
        18: .line 312
            bipush 7
            anewarray org.springframework.cglib.proxy.Callback
            dup
            iconst_0
        19: .line 313
            aload 5 /* aopInterceptor */
            aastore
            dup
            iconst_1
        20: .line 314
            aload 6 /* targetInterceptor */
            aastore
            dup
            iconst_2
        21: .line 315
            new org.springframework.aop.framework.CglibAopProxy$SerializableNoOp
            dup
            invokespecial org.springframework.aop.framework.CglibAopProxy$SerializableNoOp.<init>:()V
            aastore
            dup
            iconst_3
        22: .line 316
            aload 7 /* targetDispatcher */
            aastore
            dup
            iconst_4
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advisedDispatcher:Lorg/springframework/aop/framework/CglibAopProxy$AdvisedDispatcher;
            aastore
            dup
            iconst_5
        23: .line 317
            new org.springframework.aop.framework.CglibAopProxy$EqualsInterceptor
            dup
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokespecial org.springframework.aop.framework.CglibAopProxy$EqualsInterceptor.<init>:(Lorg/springframework/aop/framework/AdvisedSupport;)V
            aastore
            dup
            bipush 6
        24: .line 318
            new org.springframework.aop.framework.CglibAopProxy$HashCodeInterceptor
            dup
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokespecial org.springframework.aop.framework.CglibAopProxy$HashCodeInterceptor.<init>:(Lorg/springframework/aop/framework/AdvisedSupport;)V
            aastore
        25: .line 312
            astore 8 /* mainCallbacks */
        start local 8 // org.springframework.cglib.proxy.Callback[] mainCallbacks
        26: .line 326
            iload 4 /* isStatic */
            ifeq 45
            iload 3 /* isFrozen */
            ifeq 45
        27: .line 327
            aload 1 /* rootClass */
            invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
            astore 10 /* methods */
        start local 10 // java.lang.reflect.Method[] methods
        28: .line 328
            aload 10 /* methods */
            arraylength
            anewarray org.springframework.cglib.proxy.Callback
            astore 11 /* fixedCallbacks */
        start local 11 // org.springframework.cglib.proxy.Callback[] fixedCallbacks
        29: .line 329
            aload 0 /* this */
            aload 10 /* methods */
            arraylength
            invokestatic org.springframework.util.CollectionUtils.newHashMap:(I)Ljava/util/HashMap;
            putfield org.springframework.aop.framework.CglibAopProxy.fixedInterceptorMap:Ljava/util/Map;
        30: .line 332
            iconst_0
            istore 12 /* x */
        start local 12 // int x
        31: goto 39
        32: .line 333
      StackMap locals: org.springframework.aop.framework.CglibAopProxy java.lang.Class int int int org.springframework.cglib.proxy.Callback org.springframework.cglib.proxy.Callback org.springframework.cglib.proxy.Callback org.springframework.cglib.proxy.Callback[] top java.lang.reflect.Method[] org.springframework.cglib.proxy.Callback[] int
      StackMap stack:
            aload 10 /* methods */
            iload 12 /* x */
            aaload
            astore 13 /* method */
        start local 13 // java.lang.reflect.Method method
        33: .line 334
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            aload 13 /* method */
            aload 1 /* rootClass */
            invokevirtual org.springframework.aop.framework.AdvisedSupport.getInterceptorsAndDynamicInterceptionAdvice:(Ljava/lang/reflect/Method;Ljava/lang/Class;)Ljava/util/List;
            astore 14 /* chain */
        start local 14 // java.util.List chain
        34: .line 335
            aload 11 /* fixedCallbacks */
            iload 12 /* x */
            new org.springframework.aop.framework.CglibAopProxy$FixedChainStaticTargetInterceptor
            dup
        35: .line 336
            aload 14 /* chain */
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokevirtual org.springframework.aop.framework.AdvisedSupport.getTargetSource:()Lorg/springframework/aop/TargetSource;
            invokeinterface org.springframework.aop.TargetSource.getTarget:()Ljava/lang/Object;
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokevirtual org.springframework.aop.framework.AdvisedSupport.getTargetClass:()Ljava/lang/Class;
            invokespecial org.springframework.aop.framework.CglibAopProxy$FixedChainStaticTargetInterceptor.<init>:(Ljava/util/List;Ljava/lang/Object;Ljava/lang/Class;)V
        36: .line 335
            aastore
        37: .line 337
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.fixedInterceptorMap:Ljava/util/Map;
            aload 13 /* method */
            iload 12 /* x */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 14 // java.util.List chain
        end local 13 // java.lang.reflect.Method method
        38: .line 332
            iinc 12 /* x */ 1
      StackMap locals:
      StackMap stack:
        39: iload 12 /* x */
            aload 10 /* methods */
            arraylength
            if_icmplt 32
        end local 12 // int x
        40: .line 342
            aload 8 /* mainCallbacks */
            arraylength
            aload 11 /* fixedCallbacks */
            arraylength
            iadd
            anewarray org.springframework.cglib.proxy.Callback
            astore 9 /* callbacks */
        start local 9 // org.springframework.cglib.proxy.Callback[] callbacks
        41: .line 343
            aload 8 /* mainCallbacks */
            iconst_0
            aload 9 /* callbacks */
            iconst_0
            aload 8 /* mainCallbacks */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        42: .line 344
            aload 11 /* fixedCallbacks */
            iconst_0
            aload 9 /* callbacks */
            aload 8 /* mainCallbacks */
            arraylength
            aload 11 /* fixedCallbacks */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        43: .line 345
            aload 0 /* this */
            aload 8 /* mainCallbacks */
            arraylength
            putfield org.springframework.aop.framework.CglibAopProxy.fixedInterceptorOffset:I
        end local 11 // org.springframework.cglib.proxy.Callback[] fixedCallbacks
        end local 10 // java.lang.reflect.Method[] methods
        44: .line 346
            goto 46
        end local 9 // org.springframework.cglib.proxy.Callback[] callbacks
        45: .line 348
      StackMap locals: org.springframework.aop.framework.CglibAopProxy java.lang.Class int int int org.springframework.cglib.proxy.Callback org.springframework.cglib.proxy.Callback org.springframework.cglib.proxy.Callback org.springframework.cglib.proxy.Callback[]
      StackMap stack:
            aload 8 /* mainCallbacks */
            astore 9 /* callbacks */
        start local 9 // org.springframework.cglib.proxy.Callback[] callbacks
        46: .line 350
      StackMap locals: org.springframework.cglib.proxy.Callback[]
      StackMap stack:
            aload 9 /* callbacks */
            areturn
        end local 9 // org.springframework.cglib.proxy.Callback[] callbacks
        end local 8 // org.springframework.cglib.proxy.Callback[] mainCallbacks
        end local 7 // org.springframework.cglib.proxy.Callback targetDispatcher
        end local 6 // org.springframework.cglib.proxy.Callback targetInterceptor
        end local 5 // org.springframework.cglib.proxy.Callback aopInterceptor
        end local 4 // boolean isStatic
        end local 3 // boolean isFrozen
        end local 2 // boolean exposeProxy
        end local 1 // java.lang.Class rootClass
        end local 0 // org.springframework.aop.framework.CglibAopProxy this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   47     0               this  Lorg/springframework/aop/framework/CglibAopProxy;
            0   47     1          rootClass  Ljava/lang/Class<*>;
            1   47     2        exposeProxy  Z
            2   47     3           isFrozen  Z
            3   47     4           isStatic  Z
            4   47     5     aopInterceptor  Lorg/springframework/cglib/proxy/Callback;
            9   10     6  targetInterceptor  Lorg/springframework/cglib/proxy/Callback;
           14   47     6  targetInterceptor  Lorg/springframework/cglib/proxy/Callback;
           18   47     7   targetDispatcher  Lorg/springframework/cglib/proxy/Callback;
           26   47     8      mainCallbacks  [Lorg/springframework/cglib/proxy/Callback;
           41   45     9          callbacks  [Lorg/springframework/cglib/proxy/Callback;
           46   47     9          callbacks  [Lorg/springframework/cglib/proxy/Callback;
           28   44    10            methods  [Ljava/lang/reflect/Method;
           29   44    11     fixedCallbacks  [Lorg/springframework/cglib/proxy/Callback;
           31   40    12                  x  I
           33   38    13             method  Ljava/lang/reflect/Method;
           34   38    14              chain  Ljava/util/List<Ljava/lang/Object;>;
    Exceptions:
      throws java.lang.Exception
    Signature: (Ljava/lang/Class<*>;)[Lorg/springframework/cglib/proxy/Callback;
    MethodParameters:
           Name  Flags
      rootClass  

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.aop.framework.CglibAopProxy this
        start local 1 // java.lang.Object other
         0: .line 356
            aload 0 /* this */
            aload 1 /* other */
            if_acmpeq 3
            aload 1 /* other */
            instanceof org.springframework.aop.framework.CglibAopProxy
            ifeq 2
         1: .line 357
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            aload 1 /* other */
            checkcast org.springframework.aop.framework.CglibAopProxy
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokestatic org.springframework.aop.framework.AopProxyUtils.equalsInProxy:(Lorg/springframework/aop/framework/AdvisedSupport;Lorg/springframework/aop/framework/AdvisedSupport;)Z
            ifne 3
         2: .line 356
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 1 // java.lang.Object other
        end local 0 // org.springframework.aop.framework.CglibAopProxy this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/springframework/aop/framework/CglibAopProxy;
            0    4     1  other  Ljava/lang/Object;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
       Name  Flags
      other  

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.aop.framework.CglibAopProxy this
         0: .line 362
            ldc Lorg/springframework/aop/framework/CglibAopProxy;
            invokevirtual java.lang.Object.hashCode:()I
            bipush 13
            imul
            aload 0 /* this */
            getfield org.springframework.aop.framework.CglibAopProxy.advised:Lorg/springframework/aop/framework/AdvisedSupport;
            invokevirtual org.springframework.aop.framework.AdvisedSupport.getTargetSource:()Lorg/springframework/aop/TargetSource;
            invokevirtual java.lang.Object.hashCode:()I
            iadd
            ireturn
        end local 0 // org.springframework.aop.framework.CglibAopProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/aop/framework/CglibAopProxy;

  private static boolean implementsInterface(java.lang.reflect.Method, java.util.Set<java.lang.Class<?>>);
    descriptor: (Ljava/lang/reflect/Method;Ljava/util/Set;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.lang.reflect.Method method
        start local 1 // java.util.Set ifcs
         0: .line 370
            aload 1 /* ifcs */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: java.lang.reflect.Method java.util.Set top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 2 /* ifc */
        start local 2 // java.lang.Class ifc
         2: .line 371
            aload 2 /* ifc */
            aload 0 /* method */
            invokestatic org.springframework.util.ClassUtils.hasMethod:(Ljava/lang/Class;Ljava/lang/reflect/Method;)Z
            ifeq 4
         3: .line 372
            iconst_1
            ireturn
        end local 2 // java.lang.Class ifc
         4: .line 370
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 375
            iconst_0
            ireturn
        end local 1 // java.util.Set ifcs
        end local 0 // java.lang.reflect.Method method
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  method  Ljava/lang/reflect/Method;
            0    6     1    ifcs  Ljava/util/Set<Ljava/lang/Class<*>;>;
            2    4     2     ifc  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/reflect/Method;Ljava/util/Set<Ljava/lang/Class<*>;>;)Z
    MethodParameters:
        Name  Flags
      method  
      ifcs    

  private static java.lang.Object processReturnType(java.lang.Object, java.lang.Object, java.lang.reflect.Method, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Method;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // java.lang.Object proxy
        start local 1 // java.lang.Object target
        start local 2 // java.lang.reflect.Method method
        start local 3 // java.lang.Object returnValue
         0: .line 387
            aload 3 /* returnValue */
            ifnull 3
            aload 3 /* returnValue */
            aload 1 /* target */
            if_acmpne 3
         1: .line 388
            ldc Lorg/springframework/aop/RawTargetAccess;
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 3
         2: .line 391
            aload 0 /* proxy */
            astore 3 /* returnValue */
         3: .line 393
      StackMap locals:
      StackMap stack:
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            astore 4 /* returnType */
        start local 4 // java.lang.Class returnType
         4: .line 394
            aload 3 /* returnValue */
            ifnonnull 8
            aload 4 /* returnType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpeq 8
            aload 4 /* returnType */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 8
         5: .line 395
            new org.springframework.aop.AopInvocationException
            dup
         6: .line 396
            new java.lang.StringBuilder
            dup
            ldc "Null return value from advice does not match primitive return type for: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 395
            invokespecial org.springframework.aop.AopInvocationException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 398
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 3 /* returnValue */
            areturn
        end local 4 // java.lang.Class returnType
        end local 3 // java.lang.Object returnValue
        end local 2 // java.lang.reflect.Method method
        end local 1 // java.lang.Object target
        end local 0 // java.lang.Object proxy
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0        proxy  Ljava/lang/Object;
            0    9     1       target  Ljava/lang/Object;
            0    9     2       method  Ljava/lang/reflect/Method;
            0    9     3  returnValue  Ljava/lang/Object;
            4    9     4   returnType  Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
      3:
        org.springframework.lang.Nullable()
    MethodParameters:
             Name  Flags
      proxy        
      target       
      method       
      returnValue  
}
SourceFile: "CglibAopProxy.java"
NestMembers:
  org.springframework.aop.framework.CglibAopProxy$AdvisedDispatcher  org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation  org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor  org.springframework.aop.framework.CglibAopProxy$DynamicUnadvisedExposedInterceptor  org.springframework.aop.framework.CglibAopProxy$DynamicUnadvisedInterceptor  org.springframework.aop.framework.CglibAopProxy$EqualsInterceptor  org.springframework.aop.framework.CglibAopProxy$FixedChainStaticTargetInterceptor  org.springframework.aop.framework.CglibAopProxy$HashCodeInterceptor  org.springframework.aop.framework.CglibAopProxy$ProxyCallbackFilter  org.springframework.aop.framework.CglibAopProxy$SerializableNoOp  org.springframework.aop.framework.CglibAopProxy$StaticDispatcher  org.springframework.aop.framework.CglibAopProxy$StaticUnadvisedExposedInterceptor  org.springframework.aop.framework.CglibAopProxy$StaticUnadvisedInterceptor
InnerClasses:
  private AdvisedDispatcher = org.springframework.aop.framework.CglibAopProxy$AdvisedDispatcher of org.springframework.aop.framework.CglibAopProxy
  private CglibMethodInvocation = org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation of org.springframework.aop.framework.CglibAopProxy
  private DynamicAdvisedInterceptor = org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor of org.springframework.aop.framework.CglibAopProxy
  private DynamicUnadvisedExposedInterceptor = org.springframework.aop.framework.CglibAopProxy$DynamicUnadvisedExposedInterceptor of org.springframework.aop.framework.CglibAopProxy
  private DynamicUnadvisedInterceptor = org.springframework.aop.framework.CglibAopProxy$DynamicUnadvisedInterceptor of org.springframework.aop.framework.CglibAopProxy
  private EqualsInterceptor = org.springframework.aop.framework.CglibAopProxy$EqualsInterceptor of org.springframework.aop.framework.CglibAopProxy
  private FixedChainStaticTargetInterceptor = org.springframework.aop.framework.CglibAopProxy$FixedChainStaticTargetInterceptor of org.springframework.aop.framework.CglibAopProxy
  private HashCodeInterceptor = org.springframework.aop.framework.CglibAopProxy$HashCodeInterceptor of org.springframework.aop.framework.CglibAopProxy
  private ProxyCallbackFilter = org.springframework.aop.framework.CglibAopProxy$ProxyCallbackFilter of org.springframework.aop.framework.CglibAopProxy
  public SerializableNoOp = org.springframework.aop.framework.CglibAopProxy$SerializableNoOp of org.springframework.aop.framework.CglibAopProxy
  private StaticDispatcher = org.springframework.aop.framework.CglibAopProxy$StaticDispatcher of org.springframework.aop.framework.CglibAopProxy
  private StaticUnadvisedExposedInterceptor = org.springframework.aop.framework.CglibAopProxy$StaticUnadvisedExposedInterceptor of org.springframework.aop.framework.CglibAopProxy
  private StaticUnadvisedInterceptor = org.springframework.aop.framework.CglibAopProxy$StaticUnadvisedInterceptor of org.springframework.aop.framework.CglibAopProxy