This is an automated email from the ASF dual-hosted git repository.

vy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git


The following commit(s) were added to refs/heads/main by this push:
     new fea34c3ce2 Fix concurrent date-time formatting issue in 
`PatternLayout` (#1485)
fea34c3ce2 is described below

commit fea34c3ce230add9b1c3516385bc74b447d226ec
Author: Volkan Yazıcı <[email protected]>
AuthorDate: Wed May 24 16:33:51 2023 +0200

    Fix concurrent date-time formatting issue in `PatternLayout` (#1485)
---
 .../logging/log4j/core/pattern/DatePatternConverter.java  | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/DatePatternConverter.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/DatePatternConverter.java
index 857449ab1a..a81ae630ce 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/DatePatternConverter.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/DatePatternConverter.java
@@ -328,16 +328,15 @@ public final class DatePatternConverter extends 
LogEventPatternConverter impleme
     }
 
     private void formatWithoutThreadLocals(final Instant instant, final 
StringBuilder output) {
-        CachedTime cached = cachedTime.get();
+        final CachedTime effective;
+        final CachedTime cached = cachedTime.get();
         if (instant.getEpochSecond() != cached.epochSecond || 
instant.getNanoOfSecond() != cached.nanoOfSecond) {
-            final CachedTime newTime = new CachedTime(instant);
-            if (cachedTime.compareAndSet(cached, newTime)) {
-                cached = newTime;
-            } else {
-                cached = cachedTime.get();
-            }
+            effective = new CachedTime(instant);
+            cachedTime.compareAndSet(cached, effective);
+        } else {
+            effective = cached;
         }
-        output.append(cached.formatted);
+        output.append(effective.formatted);
     }
 
     /**

Reply via email to