diff --git a/meta/src/main/java/com/alibaba/otter/canal/meta/MemoryMetaManager.java b/meta/src/main/java/com/alibaba/otter/canal/meta/MemoryMetaManager.java index 4d6072d8..d5e040a6 100644 --- a/meta/src/main/java/com/alibaba/otter/canal/meta/MemoryMetaManager.java +++ b/meta/src/main/java/com/alibaba/otter/canal/meta/MemoryMetaManager.java @@ -83,7 +83,8 @@ public class MemoryMetaManager extends AbstractCanalLifeCycle implements CanalMe } public synchronized List listAllSubscribeInfo(String destination) throws CanalMetaManagerException { - return destinations.get(destination); + // fixed issue #657, fixed ConcurrentModificationException + return Lists.newArrayList(destinations.get(destination)); } public Position getCursor(ClientIdentity clientIdentity) throws CanalMetaManagerException {