Fixed CGLIB class validation to not raising warning for static final methods
Issue: SPR-11107
This commit is contained in:
parent
3ff3805ed6
commit
9fbb57c3ec
|
@ -25,6 +25,17 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.WeakHashMap;
|
import java.util.WeakHashMap;
|
||||||
|
|
||||||
|
import org.aopalliance.aop.Advice;
|
||||||
|
import org.aopalliance.intercept.MethodInvocation;
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
|
||||||
|
import org.springframework.aop.Advisor;
|
||||||
|
import org.springframework.aop.AopInvocationException;
|
||||||
|
import org.springframework.aop.PointcutAdvisor;
|
||||||
|
import org.springframework.aop.RawTargetAccess;
|
||||||
|
import org.springframework.aop.TargetSource;
|
||||||
|
import org.springframework.aop.support.AopUtils;
|
||||||
import org.springframework.cglib.core.CodeGenerationException;
|
import org.springframework.cglib.core.CodeGenerationException;
|
||||||
import org.springframework.cglib.proxy.Callback;
|
import org.springframework.cglib.proxy.Callback;
|
||||||
import org.springframework.cglib.proxy.CallbackFilter;
|
import org.springframework.cglib.proxy.CallbackFilter;
|
||||||
|
@ -35,17 +46,6 @@ import org.springframework.cglib.proxy.MethodInterceptor;
|
||||||
import org.springframework.cglib.proxy.MethodProxy;
|
import org.springframework.cglib.proxy.MethodProxy;
|
||||||
import org.springframework.cglib.proxy.NoOp;
|
import org.springframework.cglib.proxy.NoOp;
|
||||||
import org.springframework.cglib.transform.impl.MemorySafeUndeclaredThrowableStrategy;
|
import org.springframework.cglib.transform.impl.MemorySafeUndeclaredThrowableStrategy;
|
||||||
|
|
||||||
import org.aopalliance.aop.Advice;
|
|
||||||
import org.aopalliance.intercept.MethodInvocation;
|
|
||||||
import org.apache.commons.logging.Log;
|
|
||||||
import org.apache.commons.logging.LogFactory;
|
|
||||||
import org.springframework.aop.Advisor;
|
|
||||||
import org.springframework.aop.AopInvocationException;
|
|
||||||
import org.springframework.aop.PointcutAdvisor;
|
|
||||||
import org.springframework.aop.RawTargetAccess;
|
|
||||||
import org.springframework.aop.TargetSource;
|
|
||||||
import org.springframework.aop.support.AopUtils;
|
|
||||||
import org.springframework.core.SmartClassLoader;
|
import org.springframework.core.SmartClassLoader;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
import org.springframework.util.ClassUtils;
|
import org.springframework.util.ClassUtils;
|
||||||
|
@ -255,11 +255,14 @@ class CglibAopProxy implements AopProxy, Serializable {
|
||||||
* for each one found.
|
* for each one found.
|
||||||
*/
|
*/
|
||||||
private void doValidateClass(Class<?> proxySuperClass) {
|
private void doValidateClass(Class<?> proxySuperClass) {
|
||||||
Method[] methods = proxySuperClass.getMethods();
|
if (logger.isWarnEnabled()) {
|
||||||
for (Method method : methods) {
|
Method[] methods = proxySuperClass.getMethods();
|
||||||
if (!Object.class.equals(method.getDeclaringClass()) && Modifier.isFinal(method.getModifiers())) {
|
for (Method method : methods) {
|
||||||
logger.warn("Unable to proxy method [" + method + "] because it is final: " +
|
if (!Object.class.equals(method.getDeclaringClass()) && !Modifier.isStatic(method.getModifiers()) &&
|
||||||
"All calls to this method via a proxy will be routed directly to the proxy.");
|
Modifier.isFinal(method.getModifiers())) {
|
||||||
|
logger.warn("Unable to proxy method [" + method + "] because it is final: " +
|
||||||
|
"All calls to this method via a proxy will be routed directly to the proxy.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue