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

Closes gh-33939
This commit is contained in:
Juergen Hoeller
2025-03-21 09:40:52 +01:00
parent 6505c4b839
commit d710f73c47

View File

@@ -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: " +