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

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git


The following commit(s) were added to refs/heads/master by this push:
     new 5e483a2  [SCB-2116]add current control for configure change
5e483a2 is described below

commit 5e483a22e1dae9713c4d7512959c42b2280d1ead
Author: liubao <[email protected]>
AuthorDate: Sun Jan 17 14:44:46 2021 +0800

    [SCB-2116]add current control for configure change
---
 .../governance/handler/AbstractGovernanceHandler.java         | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git 
a/governance/src/main/java/org/apache/servicecomb/governance/handler/AbstractGovernanceHandler.java
 
b/governance/src/main/java/org/apache/servicecomb/governance/handler/AbstractGovernanceHandler.java
index b468d34..c070b77 100644
--- 
a/governance/src/main/java/org/apache/servicecomb/governance/handler/AbstractGovernanceHandler.java
+++ 
b/governance/src/main/java/org/apache/servicecomb/governance/handler/AbstractGovernanceHandler.java
@@ -32,6 +32,8 @@ import com.google.common.eventbus.Subscribe;
 public abstract class AbstractGovernanceHandler<PROCESSOR, POLICY extends 
AbstractPolicy> {
   private Map<String, PROCESSOR> map = new ConcurrentHashMap<>();
 
+  private final Object lock = new Object();
+
   @Autowired
   protected MatchersManager matchersManager;
 
@@ -48,8 +50,13 @@ public abstract class AbstractGovernanceHandler<PROCESSOR, 
POLICY extends Abstra
     String key = createKey(policy);
     PROCESSOR processor = map.get(key);
     if (processor == null) {
-      processor = createProcessor(policy);
-      map.put(key, processor);
+      synchronized (lock) {
+        processor = map.get(key);
+        if (processor == null) {
+          processor = createProcessor(policy);
+          map.put(key, processor);
+        }
+      }
     }
     return processor;
   }

Reply via email to