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);
}
/**