@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
/ *
* Copyright 2002 - 2022 the original author or authors .
* Copyright 2002 - 2024 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 .
@ -20,7 +20,9 @@ import java.util.List;
@@ -20,7 +20,9 @@ import java.util.List;
import org.springframework.aop.Advisor ;
import org.springframework.aop.TargetSource ;
import org.springframework.aop.framework.AopConfigException ;
import org.springframework.aop.support.AopUtils ;
import org.springframework.beans.factory.BeanCreationException ;
import org.springframework.beans.factory.BeanFactory ;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory ;
import org.springframework.core.annotation.AnnotationAwareOrderComparator ;
@ -97,7 +99,13 @@ public abstract class AbstractAdvisorAutoProxyCreator extends AbstractAutoProxyC
@@ -97,7 +99,13 @@ public abstract class AbstractAdvisorAutoProxyCreator extends AbstractAutoProxyC
List < Advisor > eligibleAdvisors = findAdvisorsThatCanApply ( candidateAdvisors , beanClass , beanName ) ;
extendAdvisors ( eligibleAdvisors ) ;
if ( ! eligibleAdvisors . isEmpty ( ) ) {
eligibleAdvisors = sortAdvisors ( eligibleAdvisors ) ;
try {
eligibleAdvisors = sortAdvisors ( eligibleAdvisors ) ;
}
catch ( BeanCreationException ex ) {
throw new AopConfigException ( "Advisor sorting failed with unexpected bean creation, probably due " +
"to custom use of the Ordered interface. Consider using the @Order annotation instead." , ex ) ;
}
}
return eligibleAdvisors ;
}