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

kwin pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-event.git

commit 22957616a8f93aca555b2f5dfac3f36c042ded5a
Author: Konrad Windszus <[email protected]>
AuthorDate: Mon Oct 13 15:50:20 2025 +0200

    Fix brittle test
    
    Close dangling resource resolver in test
---
 .../sling/event/impl/jobs/tasks/CleanUpTask.java      |  4 ++--
 .../event/impl/jobs/tasks/HistoryCleanUpTask.java     |  2 +-
 .../event/impl/jobs/queues/TestTopicHalting.java      | 19 ++++++++++---------
 .../jobs/tasks/HistoryCleanUpRemovedJobsTest.java     | 16 +++++++++-------
 4 files changed, 22 insertions(+), 19 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/event/impl/jobs/tasks/CleanUpTask.java 
b/src/main/java/org/apache/sling/event/impl/jobs/tasks/CleanUpTask.java
index 24cb007..70b5d50 100644
--- a/src/main/java/org/apache/sling/event/impl/jobs/tasks/CleanUpTask.java
+++ b/src/main/java/org/apache/sling/event/impl/jobs/tasks/CleanUpTask.java
@@ -142,11 +142,11 @@ public class CleanUpTask {
         logger.debug("Job manager maintenance: Finished #{}", 
this.schedulerRuns);
     }
 
-    private void historyCleanUpRemovedJobs(Calendar since) {
+    private void historyCleanUpRemovedJobs(Calendar olderThan) {
         ResourceResolver resolver = 
this.configuration.createResourceResolver();
         try {
             HistoryCleanUpTask.cleanup(
-                    since,
+                    olderThan,
                     resolver,
                     /**
                      * We use a dummy context here as we are running it as a
diff --git 
a/src/main/java/org/apache/sling/event/impl/jobs/tasks/HistoryCleanUpTask.java 
b/src/main/java/org/apache/sling/event/impl/jobs/tasks/HistoryCleanUpTask.java
index 116c57c..9a94423 100644
--- 
a/src/main/java/org/apache/sling/event/impl/jobs/tasks/HistoryCleanUpTask.java
+++ 
b/src/main/java/org/apache/sling/event/impl/jobs/tasks/HistoryCleanUpTask.java
@@ -202,7 +202,7 @@ public class HistoryCleanUpTask implements JobExecutor {
 
                                     // check if we can delete the minute
                                     final int minute = 
Integer.valueOf(minuteResource.getName());
-                                    final boolean oldMinute = oldHour || 
minute <= removeMinute;
+                                    final boolean oldMinute = oldHour || 
minute < removeMinute;
 
                                     if (oldMinute) {
                                         final Iterator<Resource> jobIter = 
minuteResource.listChildren();
diff --git 
a/src/test/java/org/apache/sling/event/impl/jobs/queues/TestTopicHalting.java 
b/src/test/java/org/apache/sling/event/impl/jobs/queues/TestTopicHalting.java
index f6c2ed5..51b3f35 100644
--- 
a/src/test/java/org/apache/sling/event/impl/jobs/queues/TestTopicHalting.java
+++ 
b/src/test/java/org/apache/sling/event/impl/jobs/queues/TestTopicHalting.java
@@ -168,17 +168,18 @@ public class TestTopicHalting {
 
         queueManager.activate(null);
 
-        @SuppressWarnings("deprecation")
-        ResourceResolver resourceResolver = 
factory.getAdministrativeResourceResolver(null);
-        ContentBuilder contentBuilder = new ContentBuilder(resourceResolver);
-
-        final String topic = "aTopic";
-        for (int year = 2019; year <= 2022; year++) {
-            for (int month = 1; month <= 12; month++) {
-                createJob(contentBuilder, ownSlingId, topic, year, month);
+        try (@SuppressWarnings("deprecation")
+                ResourceResolver resourceResolver = 
factory.getAdministrativeResourceResolver(null)) {
+            ContentBuilder contentBuilder = new 
ContentBuilder(resourceResolver);
+
+            final String topic = "aTopic";
+            for (int year = 2019; year <= 2022; year++) {
+                for (int month = 1; month <= 12; month++) {
+                    createJob(contentBuilder, ownSlingId, topic, year, month);
+                }
             }
+            resourceResolver.commit();
         }
-        resourceResolver.commit();
     }
 
     private void initQueueConfigurationManagerMocks() {
diff --git 
a/src/test/java/org/apache/sling/event/impl/jobs/tasks/HistoryCleanUpRemovedJobsTest.java
 
b/src/test/java/org/apache/sling/event/impl/jobs/tasks/HistoryCleanUpRemovedJobsTest.java
index 5334000..6a865ae 100644
--- 
a/src/test/java/org/apache/sling/event/impl/jobs/tasks/HistoryCleanUpRemovedJobsTest.java
+++ 
b/src/test/java/org/apache/sling/event/impl/jobs/tasks/HistoryCleanUpRemovedJobsTest.java
@@ -45,7 +45,6 @@ public class HistoryCleanUpRemovedJobsTest {
     private static final String JCR_TOPIC = "test";
     private static final String JCR_JOB_NAME = "test-job";
     private static final SimpleDateFormat DATE_FORMATTER = new 
SimpleDateFormat("yyyy/MM/dd/HH/mm");
-    private static final int MAX_AGE_IN_DAYS = 60;
 
     @Rule
     public final SlingContext ctx = new SlingContext();
@@ -67,6 +66,7 @@ public class HistoryCleanUpRemovedJobsTest {
     private void setupConfiguration() {
         
Mockito.when(configuration.getStoredCancelledJobsPath()).thenReturn(JCR_PATH);
         
Mockito.when(configuration.createResourceResolver()).thenReturn(ctx.resourceResolver());
+        // should remove jobs completed more than 1 minute ago
         
Mockito.when(configuration.getHistoryCleanUpRemovedJobs()).thenReturn(1);
     }
 
@@ -77,6 +77,7 @@ public class HistoryCleanUpRemovedJobsTest {
     @Test
     public void shouldNotDeleteDroppedResourcesYoungerThanRemoveDate() {
         Calendar calendar = Calendar.getInstance();
+        // this should be at less than 1 minute earlier than the cut-off date 
(disregarding seconds)
         calendar.add(Calendar.SECOND, -1);
         Resource resource = createResourceForDate(calendar, 
Job.JobState.DROPPED.name());
         task.run();
@@ -86,6 +87,7 @@ public class HistoryCleanUpRemovedJobsTest {
     @Test
     public void shouldNotDeleteErrorResourcesYoungerThanRemoveDate() {
         Calendar calendar = Calendar.getInstance();
+        // this should be at less than 1 minute earlier than the cut-off date 
(disregarding seconds)
         calendar.add(Calendar.SECOND, -1);
         Resource resource = createResourceForDate(calendar, 
Job.JobState.ERROR.name());
         task.run();
@@ -95,8 +97,8 @@ public class HistoryCleanUpRemovedJobsTest {
     @Test
     public void shouldNotDeleteSuccessfulResourcesOlderThanRemoveDate() {
         Calendar calendar = Calendar.getInstance();
-
-        calendar.add(Calendar.MINUTE, -1);
+        // this should be at least 1 minute earlier than the cut-off date 
(disregarding seconds)
+        calendar.add(Calendar.MINUTE, -2);
         Resource resource = createResourceForDate(calendar, 
Job.JobState.SUCCEEDED.name());
 
         task.run();
@@ -106,8 +108,8 @@ public class HistoryCleanUpRemovedJobsTest {
     @Test
     public void shouldDeleteDroppedResourcesOlderThanRemoveDate() {
         Calendar calendar = Calendar.getInstance();
-
-        calendar.add(Calendar.MINUTE, -1);
+        // this should be at least 1 minute earlier than the cut-off date 
(disregarding seconds)
+        calendar.add(Calendar.MINUTE, -2);
         Resource resource = createResourceForDate(calendar, 
Job.JobState.DROPPED.name());
 
         task.run();
@@ -117,8 +119,8 @@ public class HistoryCleanUpRemovedJobsTest {
     @Test
     public void shouldDeleteErrorResourcesOlderThanRemoveDate() {
         Calendar calendar = Calendar.getInstance();
-
-        calendar.add(Calendar.MINUTE, -1);
+        // this should be at least 1 minute earlier than the cut-off date 
(disregarding seconds)
+        calendar.add(Calendar.MINUTE, -2);
         Resource resource = createResourceForDate(calendar, 
Job.JobState.DROPPED.name());
 
         task.run();

Reply via email to