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();
