[ 
https://issues.apache.org/jira/browse/LOG4J2-3286?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17464765#comment-17464765
 ] 

Carter Kozak commented on LOG4J2-3286:
--------------------------------------

The AsyncAppender fix (and tests which verify it) are still in the history and 
passing. Is there a bug that you'd like to report? I admit I'm not sure what 
you're asking.

You view the git history to a particular file like this:
{code:bash}
$ git log -p 
./log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
commit 806023265f8c905b2dd1d81fd2458f64b2ea0b5e
Author: Carter Kozak <[email protected]>
Date:   Thu Dec 16 17:11:56 2021 -0500

    Fix string substitution recursion

diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
index dc9d9900e..0c73a1f4b 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
@@ -161,8 +161,8 @@ public class AppenderControl extends AbstractFilterable {
             appender.append(event);
         } catch (final RuntimeException error) {
             handleAppenderError(event, error);
-        } catch (final Exception error) {
-            handleAppenderError(event, new AppenderLoggingException(error));
+        } catch (final Throwable throwable) {
+            handleAppenderError(event, new 
AppenderLoggingException(throwable));
         }
     }


commit 97ec707d69280ef57aed8fd5831dc4f3a75f7715
Author: Gary Gregory <[email protected]>
Date:   Wed Jul 28 11:05:20 2021 -0400

    Add and resuse constants to avoid creating empty arrays over and over.

    Also, the NoGcLayout was still allocating empty byte arrays for headers
    and footers.

    Full local build OK.

diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
index 58c1e5753..dc9d9900e 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
@@ -32,6 +32,11 @@ import org.apache.logging.log4j.util.PerformanceSensitive;
  */
 public class AppenderControl extends AbstractFilterable {

+    /**
+     * The empty array.
+     */
+    static final AppenderControl[] EMPTY_ARRAY = {};
+
     private final ThreadLocal<AppenderControl> recursive = new ThreadLocal<>();
     private final Appender appender;
     private final Level level;

commit 543bf6eacf174d7b64dc97442b65583baa67ea40
Author: Volkan Yazıcı <[email protected]>
Date:   Sat Jan 9 15:58:29 2021 +0100

    LOG4J2-2972 Refactor AsyncAppender and AppenderControl for handling of 
Throwables. (#452)

diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
index c5a0d2a26..58c1e5753 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
@@ -156,7 +156,7 @@ public class AppenderControl extends AbstractFilterable {
             appender.append(event);
         } catch (final RuntimeException error) {
             handleAppenderError(event, error);
-        } catch (final Throwable error) {
+        } catch (final Exception error) {
             handleAppenderError(event, new AppenderLoggingException(error));
         }
     }

commit 56436ad2176eac000d2821690e4373f097b76670
Author: Volkan Yazici <[email protected]>
Date:   Thu Nov 5 15:51:16 2020 +0100

    Catch all type of exceptions in AppenderControl.

diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
index 8194ffc34..c5a0d2a26 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
@@ -154,10 +154,10 @@ public class AppenderControl extends AbstractFilterable {
     private void tryCallAppender(final LogEvent event) {
         try {
             appender.append(event);
-        } catch (final RuntimeException ex) {
-            handleAppenderError(event, ex);
-        } catch (final Exception ex) {
-            handleAppenderError(event, new AppenderLoggingException(ex));
+        } catch (final RuntimeException error) {
+            handleAppenderError(event, error);
+        } catch (final Throwable error) {
+            handleAppenderError(event, new AppenderLoggingException(error));
         }
     }
{code}

> 2.17 has reverted LOG4J-2972 fix in AppenderControl but change not in history
> -----------------------------------------------------------------------------
>
>                 Key: LOG4J2-3286
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-3286
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Appenders
>    Affects Versions: 2.17.0
>         Environment: Windows desktop running unit tests with log4j 2.17
>            Reporter: Ben Thurley
>            Priority: Major
>
> Upgrading to 2.17 to fix the slew of vulnerabilities has resulted in a change 
> to error handling in the logs.
> Specifically in the class:
> org.apache.logging.log4j.core.config.AppenderControl
> There is a method called tryCallAppender() which as of 2.14.1 had been set to 
> catch Exception. Looking at the history I can see no further changes to 
> revert this to handling Throwable, however, comparing the source for 2.16. 
> and 2.17 this is exactly what has changed.
> I don't believe this change should have reverted and if it should then why 
> isn't there a commit for it in the history?



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to