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;
}