public class org.springframework.aop.framework.ReflectiveMethodInvocation implements org.springframework.aop.ProxyMethodInvocation, java.lang.Cloneable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.aop.framework.ReflectiveMethodInvocation
  super_class: java.lang.Object
{
  protected final java.lang.Object proxy;
    descriptor: Ljava/lang/Object;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final java.lang.Object target;
    descriptor: Ljava/lang/Object;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  protected final java.lang.reflect.Method method;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected java.lang.Object[] arguments;
    descriptor: [Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED

  private final java.lang.Class<?> targetClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

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

  protected final java.util.List<?> interceptorsAndDynamicMethodMatchers;
    descriptor: Ljava/util/List;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Ljava/util/List<*>;

  private int currentInterceptorIndex;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  protected void <init>(, , java.lang.reflect.Method, [], java.lang.Class<?>, java.util.List<java.lang.Object>);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Ljava/lang/Class;Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=7
        start local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
        start local 1 // java.lang.Object proxy
        start local 2 // java.lang.Object target
        start local 3 // java.lang.reflect.Method method
        start local 4 // java.lang.Object[] arguments
        start local 5 // java.lang.Class targetClass
        start local 6 // java.util.List interceptorsAndDynamicMethodMatchers
         0: .line 108
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 71
            aload 0 /* this */
            iconst_0
            anewarray java.lang.Object
            putfield org.springframework.aop.framework.ReflectiveMethodInvocation.arguments:[Ljava/lang/Object;
         2: .line 92
            aload 0 /* this */
            iconst_m1
            putfield org.springframework.aop.framework.ReflectiveMethodInvocation.currentInterceptorIndex:I
         3: .line 112
            aload 0 /* this */
            aload 1 /* proxy */
            putfield org.springframework.aop.framework.ReflectiveMethodInvocation.proxy:Ljava/lang/Object;
         4: .line 113
            aload 0 /* this */
            aload 2 /* target */
            putfield org.springframework.aop.framework.ReflectiveMethodInvocation.target:Ljava/lang/Object;
         5: .line 114
            aload 0 /* this */
            aload 5 /* targetClass */
            putfield org.springframework.aop.framework.ReflectiveMethodInvocation.targetClass:Ljava/lang/Class;
         6: .line 115
            aload 0 /* this */
            aload 3 /* method */
            invokestatic org.springframework.core.BridgeMethodResolver.findBridgedMethod:(Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method;
            putfield org.springframework.aop.framework.ReflectiveMethodInvocation.method:Ljava/lang/reflect/Method;
         7: .line 116
            aload 0 /* this */
            aload 3 /* method */
            aload 4 /* arguments */
            invokestatic org.springframework.aop.framework.AopProxyUtils.adaptArgumentsIfNecessary:(Ljava/lang/reflect/Method;[Ljava/lang/Object;)[Ljava/lang/Object;
            putfield org.springframework.aop.framework.ReflectiveMethodInvocation.arguments:[Ljava/lang/Object;
         8: .line 117
            aload 0 /* this */
            aload 6 /* interceptorsAndDynamicMethodMatchers */
            putfield org.springframework.aop.framework.ReflectiveMethodInvocation.interceptorsAndDynamicMethodMatchers:Ljava/util/List;
         9: .line 118
            return
        end local 6 // java.util.List interceptorsAndDynamicMethodMatchers
        end local 5 // java.lang.Class targetClass
        end local 4 // java.lang.Object[] arguments
        end local 3 // java.lang.reflect.Method method
        end local 2 // java.lang.Object target
        end local 1 // java.lang.Object proxy
        end local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
      LocalVariableTable:
        Start  End  Slot                                  Name  Signature
            0   10     0                                  this  Lorg/springframework/aop/framework/ReflectiveMethodInvocation;
            0   10     1                                 proxy  Ljava/lang/Object;
            0   10     2                                target  Ljava/lang/Object;
            0   10     3                                method  Ljava/lang/reflect/Method;
            0   10     4                             arguments  [Ljava/lang/Object;
            0   10     5                           targetClass  Ljava/lang/Class<*>;
            0   10     6  interceptorsAndDynamicMethodMatchers  Ljava/util/List<Ljava/lang/Object;>;
    Signature: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/Object;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
      3:
        org.springframework.lang.Nullable()
      4:
        org.springframework.lang.Nullable()
      5:
    MethodParameters:
                                      Name  Flags
      proxy                                 
      target                                
      method                                
      arguments                             
      targetClass                           
      interceptorsAndDynamicMethodMatchers  

  public final java.lang.Object getProxy();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
         0: .line 123
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.proxy:Ljava/lang/Object;
            areturn
        end local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/aop/framework/ReflectiveMethodInvocation;

  public final java.lang.Object getThis();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
         0: .line 129
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.target:Ljava/lang/Object;
            areturn
        end local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/aop/framework/ReflectiveMethodInvocation;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public final java.lang.reflect.AccessibleObject getStaticPart();
    descriptor: ()Ljava/lang/reflect/AccessibleObject;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
         0: .line 134
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.method:Ljava/lang/reflect/Method;
            areturn
        end local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/aop/framework/ReflectiveMethodInvocation;

  public final java.lang.reflect.Method getMethod();
    descriptor: ()Ljava/lang/reflect/Method;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
         0: .line 144
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.method:Ljava/lang/reflect/Method;
            areturn
        end local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/aop/framework/ReflectiveMethodInvocation;

  public final java.lang.Object[] getArguments();
    descriptor: ()[Ljava/lang/Object;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
         0: .line 149
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.arguments:[Ljava/lang/Object;
            areturn
        end local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/aop/framework/ReflectiveMethodInvocation;

  public void setArguments(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
        start local 1 // java.lang.Object[] arguments
         0: .line 154
            aload 0 /* this */
            aload 1 /* arguments */
            putfield org.springframework.aop.framework.ReflectiveMethodInvocation.arguments:[Ljava/lang/Object;
         1: .line 155
            return
        end local 1 // java.lang.Object[] arguments
        end local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/springframework/aop/framework/ReflectiveMethodInvocation;
            0    2     1  arguments  [Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      arguments  

  public java.lang.Object proceed();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
         0: .line 162
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.currentInterceptorIndex:I
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.interceptorsAndDynamicMethodMatchers:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            if_icmpne 2
         1: .line 163
            aload 0 /* this */
            invokevirtual org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint:()Ljava/lang/Object;
            areturn
         2: .line 167
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.interceptorsAndDynamicMethodMatchers:Ljava/util/List;
            aload 0 /* this */
            dup
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.currentInterceptorIndex:I
            iconst_1
            iadd
            dup_x1
            putfield org.springframework.aop.framework.ReflectiveMethodInvocation.currentInterceptorIndex:I
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
         3: .line 166
            astore 1 /* interceptorOrInterceptionAdvice */
        start local 1 // java.lang.Object interceptorOrInterceptionAdvice
         4: .line 168
            aload 1 /* interceptorOrInterceptionAdvice */
            instanceof org.springframework.aop.framework.InterceptorAndDynamicMethodMatcher
            ifeq 13
         5: .line 172
            aload 1 /* interceptorOrInterceptionAdvice */
            checkcast org.springframework.aop.framework.InterceptorAndDynamicMethodMatcher
         6: .line 171
            astore 2 /* dm */
        start local 2 // org.springframework.aop.framework.InterceptorAndDynamicMethodMatcher dm
         7: .line 173
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.targetClass:Ljava/lang/Class;
            ifnull 8
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.targetClass:Ljava/lang/Class;
            goto 9
      StackMap locals: java.lang.Object org.springframework.aop.framework.InterceptorAndDynamicMethodMatcher
      StackMap stack:
         8: aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.method:Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
      StackMap locals:
      StackMap stack: java.lang.Class
         9: astore 3 /* targetClass */
        start local 3 // java.lang.Class targetClass
        10: .line 174
            aload 2 /* dm */
            getfield org.springframework.aop.framework.InterceptorAndDynamicMethodMatcher.methodMatcher:Lorg/springframework/aop/MethodMatcher;
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.method:Ljava/lang/reflect/Method;
            aload 3 /* targetClass */
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.arguments:[Ljava/lang/Object;
            invokeinterface org.springframework.aop.MethodMatcher.matches:(Ljava/lang/reflect/Method;Ljava/lang/Class;[Ljava/lang/Object;)Z
            ifeq 12
        11: .line 175
            aload 2 /* dm */
            getfield org.springframework.aop.framework.InterceptorAndDynamicMethodMatcher.interceptor:Lorg/aopalliance/intercept/MethodInterceptor;
            aload 0 /* this */
            invokeinterface org.aopalliance.intercept.MethodInterceptor.invoke:(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object;
            areturn
        12: .line 180
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.aop.framework.ReflectiveMethodInvocation.proceed:()Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Class targetClass
        end local 2 // org.springframework.aop.framework.InterceptorAndDynamicMethodMatcher dm
        13: .line 186
      StackMap locals:
      StackMap stack:
            aload 1 /* interceptorOrInterceptionAdvice */
            checkcast org.aopalliance.intercept.MethodInterceptor
            aload 0 /* this */
            invokeinterface org.aopalliance.intercept.MethodInterceptor.invoke:(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object interceptorOrInterceptionAdvice
        end local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
      LocalVariableTable:
        Start  End  Slot                             Name  Signature
            0   14     0                             this  Lorg/springframework/aop/framework/ReflectiveMethodInvocation;
            4   14     1  interceptorOrInterceptionAdvice  Ljava/lang/Object;
            7   13     2                               dm  Lorg/springframework/aop/framework/InterceptorAndDynamicMethodMatcher;
           10   13     3                      targetClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.Throwable
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  protected java.lang.Object invokeJoinpoint();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
         0: .line 198
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.target:Ljava/lang/Object;
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.method:Ljava/lang/reflect/Method;
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.arguments:[Ljava/lang/Object;
            invokestatic org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection:(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/aop/framework/ReflectiveMethodInvocation;
    Exceptions:
      throws java.lang.Throwable
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public org.aopalliance.intercept.MethodInvocation invocableClone();
    descriptor: ()Lorg/aopalliance/intercept/MethodInvocation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
         0: .line 212
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.arguments:[Ljava/lang/Object;
            astore 1 /* cloneArguments */
        start local 1 // java.lang.Object[] cloneArguments
         1: .line 213
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.arguments:[Ljava/lang/Object;
            arraylength
            ifle 4
         2: .line 215
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.arguments:[Ljava/lang/Object;
            arraylength
            anewarray java.lang.Object
            astore 1 /* cloneArguments */
         3: .line 216
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.arguments:[Ljava/lang/Object;
            iconst_0
            aload 1 /* cloneArguments */
            iconst_0
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.arguments:[Ljava/lang/Object;
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 218
      StackMap locals: java.lang.Object[]
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cloneArguments */
            invokevirtual org.springframework.aop.framework.ReflectiveMethodInvocation.invocableClone:([Ljava/lang/Object;)Lorg/aopalliance/intercept/MethodInvocation;
            areturn
        end local 1 // java.lang.Object[] cloneArguments
        end local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lorg/springframework/aop/framework/ReflectiveMethodInvocation;
            1    5     1  cloneArguments  [Ljava/lang/Object;

  public org.aopalliance.intercept.MethodInvocation invocableClone(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)Lorg/aopalliance/intercept/MethodInvocation;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
        start local 1 // java.lang.Object[] arguments
         0: .line 233
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.userAttributes:Ljava/util/Map;
            ifnonnull 2
         1: .line 234
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.springframework.aop.framework.ReflectiveMethodInvocation.userAttributes:Ljava/util/Map;
         2: .line 239
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.clone:()Ljava/lang/Object;
            checkcast org.springframework.aop.framework.ReflectiveMethodInvocation
            astore 2 /* clone */
        start local 2 // org.springframework.aop.framework.ReflectiveMethodInvocation clone
         3: .line 240
            aload 2 /* clone */
            aload 1 /* arguments */
            putfield org.springframework.aop.framework.ReflectiveMethodInvocation.arguments:[Ljava/lang/Object;
         4: .line 241
            aload 2 /* clone */
         5: areturn
        end local 2 // org.springframework.aop.framework.ReflectiveMethodInvocation clone
         6: .line 243
      StackMap locals:
      StackMap stack: java.lang.CloneNotSupportedException
            astore 2 /* ex */
        start local 2 // java.lang.CloneNotSupportedException ex
         7: .line 244
            new java.lang.IllegalStateException
            dup
         8: .line 245
            new java.lang.StringBuilder
            dup
            ldc "Should be able to clone object of type ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 244
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.CloneNotSupportedException ex
        end local 1 // java.lang.Object[] arguments
        end local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/springframework/aop/framework/ReflectiveMethodInvocation;
            0   10     1  arguments  [Ljava/lang/Object;
            3    6     2      clone  Lorg/springframework/aop/framework/ReflectiveMethodInvocation;
            7   10     2         ex  Ljava/lang/CloneNotSupportedException;
      Exception table:
        from    to  target  type
           2     5       6  Class java.lang.CloneNotSupportedException
    MethodParameters:
           Name  Flags
      arguments  

  public void setUserAttribute(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
        start local 1 // java.lang.String key
        start local 2 // java.lang.Object value
         0: .line 252
            aload 2 /* value */
            ifnull 5
         1: .line 253
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.userAttributes:Ljava/util/Map;
            ifnonnull 3
         2: .line 254
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.springframework.aop.framework.ReflectiveMethodInvocation.userAttributes:Ljava/util/Map;
         3: .line 256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.userAttributes:Ljava/util/Map;
            aload 1 /* key */
            aload 2 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 257
            goto 7
         5: .line 259
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.userAttributes:Ljava/util/Map;
            ifnull 7
         6: .line 260
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.userAttributes:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 263
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String key
        end local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lorg/springframework/aop/framework/ReflectiveMethodInvocation;
            0    8     1    key  Ljava/lang/String;
            0    8     2  value  Ljava/lang/Object;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
       Name  Flags
      key    
      value  

  public java.lang.Object getUserAttribute(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
        start local 1 // java.lang.String key
         0: .line 268
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.userAttributes:Ljava/util/Map;
            ifnull 1
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.userAttributes:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Object
         2: areturn
        end local 1 // java.lang.String key
        end local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/aop/framework/ReflectiveMethodInvocation;
            0    3     1   key  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      key   

  public java.util.Map<java.lang.String, java.lang.Object> getUserAttributes();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
         0: .line 279
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.userAttributes:Ljava/util/Map;
            ifnonnull 2
         1: .line 280
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.springframework.aop.framework.ReflectiveMethodInvocation.userAttributes:Ljava/util/Map;
         2: .line 282
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.userAttributes:Ljava/util/Map;
            areturn
        end local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/aop/framework/ReflectiveMethodInvocation;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
         0: .line 289
            new java.lang.StringBuilder
            dup
            ldc "ReflectiveMethodInvocation: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 290
            aload 1 /* sb */
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.method:Ljava/lang/reflect/Method;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "; "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 291
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.target:Ljava/lang/Object;
            ifnonnull 5
         3: .line 292
            aload 1 /* sb */
            ldc "target is null"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 293
            goto 6
         5: .line 295
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 1 /* sb */
            ldc "target is of class ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.springframework.aop.framework.ReflectiveMethodInvocation.target:Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 93
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 297
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // org.springframework.aop.framework.ReflectiveMethodInvocation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/springframework/aop/framework/ReflectiveMethodInvocation;
            1    7     1    sb  Ljava/lang/StringBuilder;
}
SourceFile: "ReflectiveMethodInvocation.java"