SLING-5371 - cleaner cleanup ;-)
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1726635 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/installer/provider/jcr/impl/RootFolderMoveListener.java b/src/main/java/org/apache/sling/installer/provider/jcr/impl/RootFolderMoveListener.java
index b4cbd38..f41e9ad 100644
--- a/src/main/java/org/apache/sling/installer/provider/jcr/impl/RootFolderMoveListener.java
+++ b/src/main/java/org/apache/sling/installer/provider/jcr/impl/RootFolderMoveListener.java
@@ -42,6 +42,8 @@
private final RescanTimer timer;
private final String[] watchedPaths;
+
+ private EventListener toCleanup;
RootFolderMoveListener(final Session session, final String[] rootFolders, final RescanTimer timer) throws RepositoryException {
this.timer = timer;
@@ -58,6 +60,7 @@
if(obsManager instanceof JackrabbitObservationManager){
JackrabbitObservationManager observationManager = (JackrabbitObservationManager)obsManager;
observationManager.addEventListener(this, eventFilter);
+ toCleanup = this;
logger.info("Watching {} to detect move changes in subfolders", Arrays.toString(watchedPaths));
}
}
@@ -69,12 +72,11 @@
}
void cleanup(final Session session) throws RepositoryException {
- if(watchedPaths != null && watchedPaths.length > 0){
- session.getWorkspace().getObservationManager().removeEventListener(this);
+ if(toCleanup != null) {
+ session.getWorkspace().getObservationManager().removeEventListener(toCleanup);
}
}
-
/**
* Schedule a scan.
*/