From 94425223bd356f295704f4c44932535099160273 Mon Sep 17 00:00:00 2001 From: agapple Date: Sat, 17 Apr 2021 10:57:25 +0800 Subject: [PATCH] fixed issue #3454 , concurrent env bugfix --- .../canal/instance/manager/PlainCanalInstanceGenerator.java | 3 ++- .../canal/instance/spring/SpringCanalInstanceGenerator.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/instance/manager/src/main/java/com/alibaba/otter/canal/instance/manager/PlainCanalInstanceGenerator.java b/instance/manager/src/main/java/com/alibaba/otter/canal/instance/manager/PlainCanalInstanceGenerator.java index 550671ae..d2dde7a3 100644 --- a/instance/manager/src/main/java/com/alibaba/otter/canal/instance/manager/PlainCanalInstanceGenerator.java +++ b/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) { diff --git a/instance/spring/src/main/java/com/alibaba/otter/canal/instance/spring/SpringCanalInstanceGenerator.java b/instance/spring/src/main/java/com/alibaba/otter/canal/instance/spring/SpringCanalInstanceGenerator.java index a5e7f034..9416b92d 100644 --- a/instance/spring/src/main/java/com/alibaba/otter/canal/instance/spring/SpringCanalInstanceGenerator.java +++ b/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);