ATLAS-4508: Made the deferred classification tasks sequential

Signed-off-by: Sidharth Mishra <sidmishra@apache.org>
diff --git a/repository/src/main/java/org/apache/atlas/tasks/TaskManagement.java b/repository/src/main/java/org/apache/atlas/tasks/TaskManagement.java
index 9a519ba..97b9980 100644
--- a/repository/src/main/java/org/apache/atlas/tasks/TaskManagement.java
+++ b/repository/src/main/java/org/apache/atlas/tasks/TaskManagement.java
@@ -44,7 +44,7 @@
 public class TaskManagement implements Service, ActiveStateChangeHandler {
     private static final Logger LOG = LoggerFactory.getLogger(TaskManagement.class);
 
-    private final ThreadLocal<TaskExecutor> taskExecutorThreadLocal = new ThreadLocal<>();
+    private       TaskExecutor              taskExecutor;
     private final Configuration             configuration;
     private final TaskRegistry              registry;
     private final Statistics                statistics;
@@ -170,16 +170,16 @@
         }
     }
 
-    private void dispatchTasks(List<AtlasTask> tasks) {
+    private synchronized void dispatchTasks(List<AtlasTask> tasks) {
         if (CollectionUtils.isEmpty(tasks)) {
             return;
         }
 
-        if (this.taskExecutorThreadLocal.get() == null) {
-            this.taskExecutorThreadLocal.set(new TaskExecutor(registry, taskTypeFactoryMap, statistics));
+        if (this.taskExecutor == null) {
+            this.taskExecutor = new TaskExecutor(registry, taskTypeFactoryMap, statistics);
         }
 
-        this.taskExecutorThreadLocal.get().addAll(tasks);
+        this.taskExecutor.addAll(tasks);
 
         this.statistics.print();
     }