@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
/ *
* Copyright 2002 - 2015 the original author or authors .
* Copyright 2002 - 2018 the original author or authors .
*
* Licensed under the Apache License , Version 2 . 0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
@ -32,17 +32,15 @@ import org.springframework.core.ParameterNameDiscoverer;
@@ -32,17 +32,15 @@ import org.springframework.core.ParameterNameDiscoverer;
import org.springframework.util.Assert ;
/ * *
* I mplementation of AspectJ ProceedingJoinPoint interface
* wrapping an AOP Alliance MethodInvocation .
* An i mplementation of the AspectJ { @link ProceedingJoinPoint } interface
* wrapping an AOP Alliance { @link org . aopalliance . intercept . MethodInvocation } .
*
* < p > < b > Note < / b > : t he { @code getThis ( ) } method returns the current Spring AOP proxy .
* < p > < b > Note < / b > : T he { @code getThis ( ) } method returns the current Spring AOP proxy .
* The { @code getTarget ( ) } method returns the current Spring AOP target ( which may be
* { @code null } if there is no target ) , and is a plain POJO without any advice .
* < b > If you want to call the object and have the advice take effect , use
* { @code getThis ( ) } . < / b > A common example is casting the object to an
* introduced interface in the implementation of an introduction .
*
* < p > Of course there is no such distinction between target and proxy in AspectJ .
* { @code null } if there is no target instance ) as a plain POJO without any advice .
* < b > If you want to call the object and have the advice take effect , use { @code getThis ( ) } . < / b >
* A common example is casting the object to an introduced interface in the implementation of
* an introduction . There is no such distinction between target and proxy in AspectJ itself .
*
* @author Rod Johnson
* @author Juergen Hoeller
@ -56,7 +54,7 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint,
@@ -56,7 +54,7 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint,
private final ProxyMethodInvocation methodInvocation ;
private Object [ ] defensiveCopyOfA rgs;
private Object [ ] a rgs;
/** Lazily initialized signature object */
private Signature signature ;
@ -75,6 +73,7 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint,
@@ -75,6 +73,7 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint,
this . methodInvocation = methodInvocation ;
}
@Override
public void set$AroundClosure ( AroundClosure aroundClosure ) {
throw new UnsupportedOperationException ( ) ;
@ -115,12 +114,10 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint,
@@ -115,12 +114,10 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint,
@Override
public Object [ ] getArgs ( ) {
if ( this . defensiveCopyOfArgs = = null ) {
Object [ ] argsSource = this . methodInvocation . getArguments ( ) ;
this . defensiveCopyOfArgs = new Object [ argsSource . length ] ;
System . arraycopy ( argsSource , 0 , this . defensiveCopyOfArgs , 0 , argsSource . length ) ;
if ( this . args = = null ) {
this . args = this . methodInvocation . getArguments ( ) . clone ( ) ;
}
return this . defensiveCopyOfA rgs;
return this . args ;
}
@Override
@ -128,7 +125,7 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint,
@@ -128,7 +125,7 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint,
if ( this . signature = = null ) {
this . signature = new MethodSignatureImpl ( ) ;
}
return signature ;
return this . signature ;
}
@Override