diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java index f020f71a5..a9c337e1c 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java @@ -222,18 +222,7 @@ public abstract class AbstractTracker implements Tracker assert(assertTrackerStateRemainsNull()); } - if(this.state == null) - { - this.state = getTrackerState(); - - LOGGER.debug("[{} / {} / {}] Global Tracker State set to: {}", coreName, trackerId, iterationId, this.state.toString()); - this.state.setRunning(true); - } - else - { - continueState(); - this.state.setRunning(true); - } + updateTrackerState(iterationId); infoSrv.registerTrackerThread(); @@ -275,6 +264,21 @@ public abstract class AbstractTracker implements Tracker } } + private synchronized void updateTrackerState(String iterationId) { + if(this.state == null) + { + this.state = getTrackerState(); + + LOGGER.debug("[{} / {} / {}] Global Tracker State set to: {}", coreName, trackerId, iterationId, this.state.toString()); + } + else + { + continueState(); + } + + this.state.setRunning(true); + } + /** * At the end of the tracking method, the {@link TrackerState} should be turned off. * However, during a rollback (that could be started by another tracker) the {@link TrackerState} instance