nielsm5 opened a new issue, #4028:
URL: https://github.com/apache/logging-log4j2/issues/4028
## Description
There is a loadClass method in the `ThrowableExtendedStackTraceRenderer`.
```java
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.
https://github.com/frankframework/frankframework/issues/10312
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]