Defensively catch IllegalStateException from match attempts (for compatibility with AspectJ 1.8.10)
Issue: SPR-15019
This commit is contained in:
		
							parent
							
								
									29543856ec
								
							
						
					
					
						commit
						3370f41c61
					
				|  | @ -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); | ||||||
| 					} | 					} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue