diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/BaseWxMaServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/BaseWxMaServiceImpl.java index 0c9aa9d62..37a25db14 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/BaseWxMaServiceImpl.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/BaseWxMaServiceImpl.java @@ -377,7 +377,12 @@ public abstract class BaseWxMaServiceImpl implements WxMaService, RequestH @Override @JsonDeserialize public void setMultiConfigs(Map configs, String defaultMiniappId) { - this.configMap = Maps.newHashMap(configs); + // 防止覆盖配置 + if(this.configMap != null) { + this.configMap.putAll(configs); + } else { + this.configMap = Maps.newHashMap(configs); + } WxMaConfigHolder.set(defaultMiniappId); this.initHttp(); } @@ -385,7 +390,11 @@ public abstract class BaseWxMaServiceImpl implements WxMaService, RequestH @Override public void addConfig(String miniappId, WxMaConfig configStorages) { synchronized (this) { - if (this.configMap == null) { + /* + * 因为commit f74b00cf 默认初始化了configMap,导致使用此方法无法进入if从而触发initHttp(), + * 就会出现HttpClient报NullPointException + */ + if (this.configMap == null || this.configMap.isEmpty()) { this.setWxMaConfig(configStorages); } else { WxMaConfigHolder.set(miniappId); diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/BaseWxMpServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/BaseWxMpServiceImpl.java index cb2479c57..d7c0f53ab 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/BaseWxMpServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/BaseWxMpServiceImpl.java @@ -542,7 +542,12 @@ public abstract class BaseWxMpServiceImpl implements WxMpService, RequestH @Override public void setMultiConfigStorages(Map configStorages, String defaultMpId) { - this.configStorageMap = Maps.newHashMap(configStorages); + // 防止覆盖配置 + if(this.configStorageMap != null) { + this.configStorageMap.putAll(configStorages); + } else { + this.configStorageMap = Maps.newHashMap(configStorages); + } WxMpConfigStorageHolder.set(defaultMpId); this.initHttp(); } @@ -550,7 +555,11 @@ public abstract class BaseWxMpServiceImpl implements WxMpService, RequestH @Override public void addConfigStorage(String mpId, WxMpConfigStorage configStorages) { synchronized (this) { - if (this.configStorageMap == null) { + /* + * 因为commit 2aa27cf12d 默认初始化了configStorageMap,导致使用此方法无法进入if从而触发initHttp(), + * 就会出现HttpClient报NullPointException + */ + if (this.configStorageMap == null || this.configStorageMap.isEmpty()) { this.setWxMpConfigStorage(configStorages); } else { WxMpConfigStorageHolder.set(mpId);