-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Open
Labels
bugIncorrect, unexpected, or unintended behavior of existing codeIncorrect, unexpected, or unintended behavior of existing codelayoutsAffects one or more Layout pluginsAffects one or more Layout pluginswaiting-for-maintainer
Description
Description
There is a loadClass method in the ThrowableExtendedStackTraceRenderer.
private static Class<?> loadClass(final ClassLoader loader, final String className) {
for (final ClassLoadingStrategy strategy : CLASS_LOADING_STRATEGIES) {
try {
final Class<?> clazz = strategy.run(loader, className);
if (clazz != null) {
return clazz;
}
} catch (final Exception ignored) {
// Do nothing
}
}
return null;
}Which when unable to lookup the given class, should do nothing. But Classloaders throw NoClassDefFoundError which is an Error and thus not caught. This breaks log4j2, causing our app to log a beautify 'log4j2 cannot log something exception` and not the actual message+stacktrace it should log!
Configuration
Version: 2.25.3
Operating system: Windows, unrelated to this.
JDK: 21 and 25, also unrelated.
Logs
2026-01-21T13:27:17.646390600Z main ERROR An exception occurred processing Appender application-log-appender
org.apache.logging.log4j.core.appender.AppenderLoggingException: java.lang.NoClassDefFoundError: org/frankframework/core/IPushingListener
at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:164)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:133)
at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:124)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:88)
at org.apache.logging.log4j.core.appender.routing.RoutingAppender.append(RoutingAppender.java:256)
at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:160)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:133)
at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:124)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:88)
at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:711)
at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:669)
at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:645)
at org.apache.logging.log4j.core.config.LoggerConfig.logParent(LoggerConfig.java:702)
at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:671)
at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:645)
at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:589)
at org.apache.logging.log4j.core.config.DefaultReliabilityStrategy.log(DefaultReliabilityStrategy.java:73)
at org.apache.logging.log4j.core.Logger.log(Logger.java:187)
at org.apache.logging.log4j.spi.AbstractLogger.tryLogMessage(AbstractLogger.java:2970)
at org.apache.logging.log4j.spi.AbstractLogger.logMessageTrackRecursion(AbstractLogger.java:2922)
at org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2904)
at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2648)
at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:2587)
at org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:824)
.. many many more
Reproduction
Very difficult, requires custom classloaders.
frankframework/frankframework#10312
Metadata
Metadata
Assignees
Labels
bugIncorrect, unexpected, or unintended behavior of existing codeIncorrect, unexpected, or unintended behavior of existing codelayoutsAffects one or more Layout pluginsAffects one or more Layout pluginswaiting-for-maintainer
Type
Projects
Status
To triage