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]

Reply via email to