This is an automated email from the ASF dual-hosted git repository. liuhongyu pushed a commit to branch fix/fix_sync_bug in repository https://gitbox.apache.org/repos/asf/shenyu.git
commit 1f3a9e429598f1d8966db831b72fbbd6c3120844 Author: liuhy <liuhon...@apache.org> AuthorDate: Wed May 28 15:42:16 2025 +0800 [fix] fix data sync bug --- .../plugin/base/cache/CommonPluginDataSubscriber.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/shenyu-plugin/shenyu-plugin-base/src/main/java/org/apache/shenyu/plugin/base/cache/CommonPluginDataSubscriber.java b/shenyu-plugin/shenyu-plugin-base/src/main/java/org/apache/shenyu/plugin/base/cache/CommonPluginDataSubscriber.java index e42f4f2844..2b6da46b46 100644 --- a/shenyu-plugin/shenyu-plugin-base/src/main/java/org/apache/shenyu/plugin/base/cache/CommonPluginDataSubscriber.java +++ b/shenyu-plugin/shenyu-plugin-base/src/main/java/org/apache/shenyu/plugin/base/cache/CommonPluginDataSubscriber.java @@ -27,6 +27,7 @@ import org.apache.shenyu.common.enums.DataEventTypeEnum; import org.apache.shenyu.common.enums.PluginHandlerEventEnum; import org.apache.shenyu.common.enums.TrieCacheTypeEnum; import org.apache.shenyu.common.enums.TrieEventEnum; +import org.apache.shenyu.common.utils.JsonUtils; import org.apache.shenyu.common.utils.MapUtils; import org.apache.shenyu.plugin.api.utils.SpringBeanUtils; import org.apache.shenyu.plugin.base.event.TrieEvent; @@ -195,12 +196,16 @@ public class CommonPluginDataSubscriber implements PluginDataSubscriber { } private <T> void subscribeDataHandler(final T classData, final DataEventTypeEnum dataType) { - if (dataType == DataEventTypeEnum.UPDATE) { - Optional.ofNullable(classData) - .ifPresent(data -> updateCacheData(classData)); - } else if (dataType == DataEventTypeEnum.DELETE) { - Optional.ofNullable(classData) - .ifPresent(data -> removeCacheData(classData)); + try { + if (dataType == DataEventTypeEnum.UPDATE) { + Optional.ofNullable(classData) + .ifPresent(data -> updateCacheData(classData)); + } else if (dataType == DataEventTypeEnum.DELETE) { + Optional.ofNullable(classData) + .ifPresent(data -> removeCacheData(classData)); + } + } catch (Exception e) { + LOG.error("subscribe data handler error, classData: {}, dataType: {}", JsonUtils.toJson(classData), dataType, e); } }