Skip to content

Commit d710f73

Browse files
committed
Log public final method at warn level for non-interface case as well
Closes gh-33939
1 parent 6505c4b commit d710f73

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

Diff for: spring-aop/src/main/java/org/springframework/aop/framework/CglibAopProxy.java

+9-3
Original file line numberDiff line numberDiff line change
@@ -289,9 +289,15 @@ private void doValidateClass(Class<?> proxySuperClass, @Nullable ClassLoader pro
289289
int mod = method.getModifiers();
290290
if (!Modifier.isStatic(mod) && !Modifier.isPrivate(mod)) {
291291
if (Modifier.isFinal(mod)) {
292-
if (logger.isWarnEnabled() && implementsInterface(method, ifcs)) {
293-
logger.warn("Unable to proxy interface-implementing method [" + method + "] because " +
294-
"it is marked as final, consider using interface-based JDK proxies instead.");
292+
if (logger.isWarnEnabled() && Modifier.isPublic(mod)) {
293+
if (implementsInterface(method, ifcs)) {
294+
logger.warn("Unable to proxy interface-implementing method [" + method + "] because " +
295+
"it is marked as final, consider using interface-based JDK proxies instead.");
296+
}
297+
else {
298+
logger.warn("Public final method [" + method + "] cannot get proxied via CGLIB, " +
299+
"consider removing the final marker or using interface-based JDK proxies.");
300+
}
295301
}
296302
if (logger.isDebugEnabled()) {
297303
logger.debug("Final method [" + method + "] cannot get proxied via CGLIB: " +

0 commit comments

Comments
 (0)