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

rgoers pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit cdca105dea3ccf5df53622c0f16edfc4837960ac
Author: Ralph Goers <rgo...@apache.org>
AuthorDate: Mon Jan 2 18:08:41 2023 -0700

    LOG4J2-3357 - use time trigger was scheduled to fire instead of current 
time.
---
 .../logging/log4j/core/appender/rolling/CronTriggeringPolicy.java     | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/CronTriggeringPolicy.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/CronTriggeringPolicy.java
index b0297077e3..3ee8bdc469 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/CronTriggeringPolicy.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/CronTriggeringPolicy.java
@@ -146,7 +146,9 @@ public final class CronTriggeringPolicy extends 
AbstractTriggeringPolicy {
     }
 
     private void rollover() {
-       manager.rollover(cronExpression.getPrevFireTime(new Date()), 
lastRollDate);
+        // If possible, use the time rollover was supposed to occur, not the 
actual time.
+        Date rollTime = future != null ? future.getFireTime() : new Date();
+        manager.rollover(cronExpression.getPrevFireTime(rollTime), 
lastRollDate);
         if (future != null) {
             lastRollDate = future.getFireTime();
         }

Reply via email to