Includes efficient check for same ClassLoader in ClassUtils.isVisible, efficient MethodMatchers check for IntroductionAwareMethodMatcher, and supertype method resolution in MethodMapTransactionAttributeSource.
Issue: SPR-16723
(cherry picked from commit b95e05d)
@ -289,10 +289,9 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@@ -289,10 +289,9 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
// Special handling for this, target, @this, @target, @annotation
// in Spring - we can optimize since we know we have exactly this class,
@ -305,7 +304,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@@ -305,7 +304,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
}
else{
// the maybe case
if(beanHasIntroductions){
if(hasIntroductions){
returntrue;
}
// A match test returned maybe - if there are any subtype sensitive variables
@ -331,8 +330,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@@ -331,8 +330,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
// Bind Spring AOP proxy to AspectJ "this" and Spring AOP target to AspectJ target,
// consistent with return of MethodInvocationProceedingJoinPoint
@ -367,7 +365,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@@ -367,7 +365,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
*<p>SeeSPR-2979fortheoriginalbug.
*/
if(pmi!=null&&thisObject!=null){// there is a current invocation
@ -427,6 +425,23 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@@ -427,6 +425,23 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@ -434,9 +449,9 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@@ -434,9 +449,9 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@ -459,7 +474,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@@ -459,7 +474,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
// Could neither introspect the target class nor the proxy class ->
// let's try the original method's declaring class before we give up...
try{
@ -468,7 +483,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@@ -468,7 +483,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut