|
25 | 25 | import java.util.Map;
|
26 | 26 | import java.util.WeakHashMap;
|
27 | 27 |
|
28 |
| -import org.springframework.cglib.core.CodeGenerationException; |
29 |
| -import org.springframework.cglib.proxy.Callback; |
30 |
| -import org.springframework.cglib.proxy.CallbackFilter; |
31 |
| -import org.springframework.cglib.proxy.Dispatcher; |
32 |
| -import org.springframework.cglib.proxy.Enhancer; |
33 |
| -import org.springframework.cglib.proxy.Factory; |
34 |
| -import org.springframework.cglib.proxy.MethodInterceptor; |
35 |
| -import org.springframework.cglib.proxy.MethodProxy; |
36 |
| -import org.springframework.cglib.proxy.NoOp; |
37 |
| -import org.springframework.cglib.transform.impl.MemorySafeUndeclaredThrowableStrategy; |
38 |
| - |
39 | 28 | import org.aopalliance.aop.Advice;
|
40 | 29 | import org.aopalliance.intercept.MethodInvocation;
|
41 | 30 | import org.apache.commons.logging.Log;
|
42 | 31 | import org.apache.commons.logging.LogFactory;
|
| 32 | + |
43 | 33 | import org.springframework.aop.Advisor;
|
44 | 34 | import org.springframework.aop.AopInvocationException;
|
45 | 35 | import org.springframework.aop.PointcutAdvisor;
|
46 | 36 | import org.springframework.aop.RawTargetAccess;
|
47 | 37 | import org.springframework.aop.TargetSource;
|
48 | 38 | import org.springframework.aop.support.AopUtils;
|
| 39 | +import org.springframework.cglib.core.CodeGenerationException; |
| 40 | +import org.springframework.cglib.proxy.Callback; |
| 41 | +import org.springframework.cglib.proxy.CallbackFilter; |
| 42 | +import org.springframework.cglib.proxy.Dispatcher; |
| 43 | +import org.springframework.cglib.proxy.Enhancer; |
| 44 | +import org.springframework.cglib.proxy.Factory; |
| 45 | +import org.springframework.cglib.proxy.MethodInterceptor; |
| 46 | +import org.springframework.cglib.proxy.MethodProxy; |
| 47 | +import org.springframework.cglib.proxy.NoOp; |
| 48 | +import org.springframework.cglib.transform.impl.MemorySafeUndeclaredThrowableStrategy; |
49 | 49 | import org.springframework.core.SmartClassLoader;
|
50 | 50 | import org.springframework.util.Assert;
|
51 | 51 | import org.springframework.util.ClassUtils;
|
@@ -253,11 +253,14 @@ private void validateClassIfNecessary(Class<?> proxySuperClass) {
|
253 | 253 | * for each one found.
|
254 | 254 | */
|
255 | 255 | private void doValidateClass(Class<?> proxySuperClass) {
|
256 |
| - Method[] methods = proxySuperClass.getMethods(); |
257 |
| - for (Method method : methods) { |
258 |
| - if (!Object.class.equals(method.getDeclaringClass()) && Modifier.isFinal(method.getModifiers())) { |
259 |
| - logger.warn("Unable to proxy method [" + method + "] because it is final: " + |
260 |
| - "All calls to this method via a proxy will be routed directly to the proxy."); |
| 256 | + if (logger.isWarnEnabled()) { |
| 257 | + Method[] methods = proxySuperClass.getMethods(); |
| 258 | + for (Method method : methods) { |
| 259 | + if (!Object.class.equals(method.getDeclaringClass()) && !Modifier.isStatic(method.getModifiers()) && |
| 260 | + Modifier.isFinal(method.getModifiers())) { |
| 261 | + logger.warn("Unable to proxy method [" + method + "] because it is final: " + |
| 262 | + "All calls to this method via a proxy will be routed directly to the proxy."); |
| 263 | + } |
261 | 264 | }
|
262 | 265 | }
|
263 | 266 | }
|
|
0 commit comments