Browse Source

fixed issue #3454 , concurrent env bugfix

agapple 4 years ago
parent
commit
94425223bd

+ 2 - 1
instance/manager/src/main/java/com/alibaba/otter/canal/instance/manager/PlainCanalInstanceGenerator.java

@@ -14,6 +14,7 @@ import com.alibaba.otter.canal.instance.core.CanalInstanceGenerator;
 import com.alibaba.otter.canal.instance.manager.plain.PlainCanal;
 import com.alibaba.otter.canal.instance.manager.plain.PlainCanalConfigClient;
 import com.alibaba.otter.canal.instance.spring.SpringCanalInstanceGenerator;
+import com.alibaba.otter.canal.parse.CanalEventParser;
 
 /**
  * 基于manager生成对应的{@linkplain CanalInstance}
@@ -35,7 +36,7 @@ public class PlainCanalInstanceGenerator implements CanalInstanceGenerator {
     }
 
     public CanalInstance generate(String destination) {
-        synchronized (CanalInstanceGenerator.class) {
+        synchronized (CanalEventParser.class) {
             try {
                 PlainCanal canal = canalConfigClient.findInstance(destination, null);
                 if (canal == null) {

+ 2 - 1
instance/spring/src/main/java/com/alibaba/otter/canal/instance/spring/SpringCanalInstanceGenerator.java

@@ -9,6 +9,7 @@ import org.springframework.context.support.ClassPathXmlApplicationContext;
 import com.alibaba.otter.canal.common.CanalException;
 import com.alibaba.otter.canal.instance.core.CanalInstance;
 import com.alibaba.otter.canal.instance.core.CanalInstanceGenerator;
+import com.alibaba.otter.canal.parse.CanalEventParser;
 
 /**
  * @author zebin.xuzb @ 2012-7-12
@@ -22,7 +23,7 @@ public class SpringCanalInstanceGenerator implements CanalInstanceGenerator {
     private BeanFactory         beanFactory;
 
     public CanalInstance generate(String destination) {
-        synchronized (CanalInstanceGenerator.class) {
+        synchronized (CanalEventParser.class) {
             try {
                 // 设置当前正在加载的通道,加载spring查找文件时会用到该变量
                 System.setProperty("canal.instance.destination", destination);