From a90d4438287d2adde1147e91749145692450f6af Mon Sep 17 00:00:00 2001 From: George Evangelopoulos Date: Thu, 30 Dec 2021 10:12:16 +0000 Subject: [PATCH] Merge pull request #1299 from Alfresco/fix/MNT-22712-npe-in-solr-metadata-tracking MNT-22712 introduced synchronized method (cherry picked from commit 756d771373128e93fffb2ef390e39b67a28bb1d2) --- .../solr/tracker/AbstractTracker.java | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) 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