Browse Source

Log public final method at warn level for non-interface case as well

Closes gh-33939
pull/34636/head
Juergen Hoeller 9 months ago
parent
commit
d710f73c47
  1. 12
      spring-aop/src/main/java/org/springframework/aop/framework/CglibAopProxy.java

12
spring-aop/src/main/java/org/springframework/aop/framework/CglibAopProxy.java

@ -289,9 +289,15 @@ class CglibAopProxy implements AopProxy, Serializable { @@ -289,9 +289,15 @@ class CglibAopProxy implements AopProxy, Serializable {
int mod = method.getModifiers();
if (!Modifier.isStatic(mod) && !Modifier.isPrivate(mod)) {
if (Modifier.isFinal(mod)) {
if (logger.isWarnEnabled() && implementsInterface(method, ifcs)) {
logger.warn("Unable to proxy interface-implementing method [" + method + "] because " +
"it is marked as final, consider using interface-based JDK proxies instead.");
if (logger.isWarnEnabled() && Modifier.isPublic(mod)) {
if (implementsInterface(method, ifcs)) {
logger.warn("Unable to proxy interface-implementing method [" + method + "] because " +
"it is marked as final, consider using interface-based JDK proxies instead.");
}
else {
logger.warn("Public final method [" + method + "] cannot get proxied via CGLIB, " +
"consider removing the final marker or using interface-based JDK proxies.");
}
}
if (logger.isDebugEnabled()) {
logger.debug("Final method [" + method + "] cannot get proxied via CGLIB: " +

Loading…
Cancel
Save