diff --git a/config/seata-config-core/src/main/java/io/seata/config/FileConfiguration.java b/config/seata-config-core/src/main/java/io/seata/config/FileConfiguration.java index 88586522a7b8304e6f748100a61462644687c21f..511f6b2b627ebc0f966caf5631d4c26043d228a6 100644 --- a/config/seata-config-core/src/main/java/io/seata/config/FileConfiguration.java +++ b/config/seata-config-core/src/main/java/io/seata/config/FileConfiguration.java @@ -153,7 +153,8 @@ public class FileConfiguration extends AbstractConfiguration { } ConfigFuture configFuture = new ConfigFuture(dataId, defaultValue, ConfigOperation.GET, timeoutMills); configOperateExecutor.submit(new ConfigOperateRunnable(configFuture)); - return (String)configFuture.get(); + Object getValue = configFuture.get(); + return getValue == null ? null : String.valueOf(getValue); } @Override @@ -319,11 +320,13 @@ public class FileConfiguration extends AbstractConfiguration { try { String currentConfig = ConfigurationFactory.getInstance().getLatestConfig(dataId, null, DEFAULT_CONFIG_TIMEOUT); - String oldConfig = listenedConfigMap.get(dataId); - if (ObjectUtils.notEqual(currentConfig, oldConfig)) { - listenedConfigMap.put(dataId, currentConfig); - event.setDataId(dataId).setNewValue(currentConfig).setOldValue(oldConfig); - listener.onChangeEvent(event); + if (StringUtils.isNotBlank(currentConfig)) { + String oldConfig = listenedConfigMap.get(dataId); + if (ObjectUtils.notEqual(currentConfig, oldConfig)) { + listenedConfigMap.put(dataId, currentConfig); + event.setDataId(dataId).setNewValue(currentConfig).setOldValue(oldConfig); + listener.onChangeEvent(event); + } } } catch (Exception exx) { LOGGER.error("fileListener execute error:{}", exx.getMessage());