mirror of
https://github.com/spring-projects/spring-framework
synced 2026-06-08 17:33:33 +00:00
Defensively catch IllegalStateException from match attempts (for compatibility with AspectJ 1.8.10)
Issue: SPR-15019
This commit is contained in:
+11
@@ -262,6 +262,10 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
|
|||||||
catch (BCException ex) {
|
catch (BCException ex) {
|
||||||
logger.debug("PointcutExpression matching rejected target class", ex);
|
logger.debug("PointcutExpression matching rejected target class", ex);
|
||||||
}
|
}
|
||||||
|
catch (IllegalStateException ex) {
|
||||||
|
// AspectJ 1.8.10: encountered invalid signature
|
||||||
|
logger.debug("PointcutExpression matching rejected target class", ex);
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -413,6 +417,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
|
|||||||
Method methodToMatch = targetMethod;
|
Method methodToMatch = targetMethod;
|
||||||
shadowMatch = this.shadowMatchCache.get(targetMethod);
|
shadowMatch = this.shadowMatchCache.get(targetMethod);
|
||||||
if (shadowMatch == null) {
|
if (shadowMatch == null) {
|
||||||
|
try {
|
||||||
try {
|
try {
|
||||||
shadowMatch = this.pointcutExpression.matchesMethodExecution(methodToMatch);
|
shadowMatch = this.pointcutExpression.matchesMethodExecution(methodToMatch);
|
||||||
}
|
}
|
||||||
@@ -448,6 +453,12 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
catch (IllegalStateException ex) {
|
||||||
|
// AspectJ 1.8.10: encountered invalid signature
|
||||||
|
logger.debug("PointcutExpression matching rejected target method", ex);
|
||||||
|
fallbackExpression = null;
|
||||||
|
}
|
||||||
if (shadowMatch == null) {
|
if (shadowMatch == null) {
|
||||||
shadowMatch = new ShadowMatchImpl(org.aspectj.util.FuzzyBoolean.NO, null, null, null);
|
shadowMatch = new ShadowMatchImpl(org.aspectj.util.FuzzyBoolean.NO, null, null, null);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user