This is an automated email from the ASF dual-hosted git repository.

amestry pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/atlas.git


The following commit(s) were added to refs/heads/master by this push:
     new a2eaca4  ATLAS-4358: Address race condition in AtlasPatchRegistry in 
HA mode.
a2eaca4 is described below

commit a2eaca4ed9a992b42bed18ba73c1da6ed414566e
Author: Ashutosh Mestry <ames...@cloudera.com>
AuthorDate: Fri Sep 24 10:53:48 2021 -0700

    ATLAS-4358: Address race condition in AtlasPatchRegistry in HA mode.
---
 .../repository/patches/AtlasPatchManager.java      | 45 +++++++++++++---------
 1 file changed, 27 insertions(+), 18 deletions(-)

diff --git 
a/repository/src/main/java/org/apache/atlas/repository/patches/AtlasPatchManager.java
 
b/repository/src/main/java/org/apache/atlas/repository/patches/AtlasPatchManager.java
index e2a38ab..d30971a 100644
--- 
a/repository/src/main/java/org/apache/atlas/repository/patches/AtlasPatchManager.java
+++ 
b/repository/src/main/java/org/apache/atlas/repository/patches/AtlasPatchManager.java
@@ -40,28 +40,19 @@ import static 
org.apache.atlas.model.patches.AtlasPatch.PatchStatus.SKIPPED;
 public class AtlasPatchManager {
     private static final Logger LOG = 
LoggerFactory.getLogger(AtlasPatchManager.class);
 
-    private final PatchContext            context;
     private final List<AtlasPatchHandler> handlers = new ArrayList<>();
+    private final AtlasGraph atlasGraph;
+    private final AtlasTypeRegistry typeRegistry;
+    private final GraphBackedSearchIndexer indexer;
+    private final EntityGraphMapper entityGraphMapper;
+    private PatchContext            context;
 
     @Inject
     public AtlasPatchManager(AtlasGraph atlasGraph, AtlasTypeRegistry 
typeRegistry, GraphBackedSearchIndexer indexer, EntityGraphMapper 
entityGraphMapper) {
-        this.context = new PatchContext(atlasGraph, typeRegistry, indexer, 
entityGraphMapper);
-    }
-
-    @PostConstruct
-    public void init() {
-        LOG.info("==> AtlasPatchManager.init()");
-
-        // register all java patches here
-        handlers.add(new UniqueAttributePatch(context));
-        handlers.add(new ClassificationTextPatch(context));
-        handlers.add(new FreeTextRequestHandlerPatch(context));
-        handlers.add(new SuggestionsRequestHandlerPatch(context));
-        handlers.add(new IndexConsistencyPatch(context));
-        handlers.add(new ReIndexPatch(context));
-        handlers.add(new ProcessNamePatch(context));
-
-        LOG.info("<== AtlasPatchManager.init()");
+        this.atlasGraph = atlasGraph;
+        this.typeRegistry = typeRegistry;
+        this.indexer = indexer;
+        this.entityGraphMapper = entityGraphMapper;
     }
 
     public AtlasPatches getAllPatches() {
@@ -70,6 +61,7 @@ public class AtlasPatchManager {
 
     public void applyAll() {
         LOG.info("==> AtlasPatchManager.applyAll()");
+        init();
 
         try {
             for (AtlasPatchHandler handler : handlers) {
@@ -90,6 +82,23 @@ public class AtlasPatchManager {
         LOG.info("<== AtlasPatchManager.applyAll()");
     }
 
+    private void init() {
+        LOG.info("==> AtlasPatchManager.init()");
+
+        this.context = new PatchContext(atlasGraph, typeRegistry, indexer, 
entityGraphMapper);
+
+        // register all java patches here
+        handlers.add(new UniqueAttributePatch(context));
+        handlers.add(new ClassificationTextPatch(context));
+        handlers.add(new FreeTextRequestHandlerPatch(context));
+        handlers.add(new SuggestionsRequestHandlerPatch(context));
+        handlers.add(new IndexConsistencyPatch(context));
+        handlers.add(new ReIndexPatch(context));
+        handlers.add(new ProcessNamePatch(context));
+
+        LOG.info("<== AtlasPatchManager.init()");
+    }
+
     public void addPatchHandler(AtlasPatchHandler patchHandler) {
         handlers.add(patchHandler);
     }

Reply via email to