SLING-11805 : PROPERTIES_CHANGED should not stop slingId cleanup
diff --git a/src/main/java/org/apache/sling/discovery/oak/SlingIdCleanupTask.java b/src/main/java/org/apache/sling/discovery/oak/SlingIdCleanupTask.java
index 3316cbc..fb51070 100644
--- a/src/main/java/org/apache/sling/discovery/oak/SlingIdCleanupTask.java
+++ b/src/main/java/org/apache/sling/discovery/oak/SlingIdCleanupTask.java
@@ -273,12 +273,16 @@
return;
}
final TopologyView newView = event.getNewView();
- if (newView == null || event.getType() == Type.PROPERTIES_CHANGED) {
+ if (event.getType() == Type.PROPERTIES_CHANGED) {
+ // ignore those
+ } else if (newView == null) {
+ // that's a TOPOLOGY_CHANGING
hasTopology = false; // stops potentially ongoing deletion
currentView = null;
// cancel cleanup schedule
stop();
} else {
+ // that's TOPOLOGY_INIT or TOPOLOGY_CHANGED
hasTopology = true;
currentView = newView;
seenInstances.addAll(getActiveSlingIds(newView));
@@ -303,7 +307,11 @@
return;
}
final boolean unscheduled = localScheduler.unschedule(SCHEDULE_NAME);
- logger.debug("stop: unschedule result={}", unscheduled);
+ if (unscheduled) {
+ logger.info("stop: unscheduled");
+ } else {
+ logger.debug("stop: unschedule was not necessary");
+ }
}
/**
@@ -340,7 +348,7 @@
}
cal.add(Calendar.MILLISECOND, delayMillis);
final Date scheduledDate = cal.getTime();
- logger.debug(
+ logger.info(
"recreateSchedule: scheduling a cleanup in {} milliseconds from now, which is: {}",
delayMillis, scheduledDate);
ScheduleOptions options = localScheduler.AT(scheduledDate);
diff --git a/src/test/java/org/apache/sling/discovery/oak/TestSlingIdCleanupTask.java b/src/test/java/org/apache/sling/discovery/oak/TestSlingIdCleanupTask.java
index b5d59cd..0a95df4 100644
--- a/src/test/java/org/apache/sling/discovery/oak/TestSlingIdCleanupTask.java
+++ b/src/test/java/org/apache/sling/discovery/oak/TestSlingIdCleanupTask.java
@@ -61,7 +61,6 @@
import org.apache.sling.discovery.oak.its.setup.OakVirtualInstanceBuilder;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.mockito.Mockito;
import org.osgi.framework.BundleContext;
@@ -428,7 +427,6 @@
}
@Test
- @Ignore(value = "currently fails")
public void testTopologyThenPropertiesChanged() throws Exception {
createCleanupTask(1000, 86400000);
assertEquals(0, cleanupTask.getDeleteCount());