diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/res/StringManager.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/res/StringManager.java index e3f4aa05..e5bdb388 100644 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/res/StringManager.java +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/res/StringManager.java @@ -19,6 +19,7 @@ package me.chanjar.weixin.common.util.res; import java.text.MessageFormat; import java.util.*; +import java.util.concurrent.ConcurrentHashMap; /** * An internationalization / localization helper class which reduces @@ -46,7 +47,7 @@ import java.util.*; */ public class StringManager { - private static final Map> MANAGERS = new Hashtable<>(); + private static final Map> MANAGERS = new ConcurrentHashMap<>(); private static int LOCALE_CACHE_SIZE = 10; /** * The ResourceBundle for this StringManager. diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/util/json/WxMaVisitDistributionGsonAdapter.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/util/json/WxMaVisitDistributionGsonAdapter.java index 45bdbac0..0fc79d44 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/util/json/WxMaVisitDistributionGsonAdapter.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/util/json/WxMaVisitDistributionGsonAdapter.java @@ -10,9 +10,9 @@ import com.google.gson.JsonParseException; import me.chanjar.weixin.common.util.json.GsonHelper; import java.lang.reflect.Type; -import java.util.Hashtable; import java.util.LinkedHashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; /** * @author Charming @@ -36,7 +36,7 @@ public class WxMaVisitDistributionGsonAdapter implements JsonDeserializer> list = new Hashtable<>(listArray.size()); + Map> list = new ConcurrentHashMap<>(listArray.size()); for (JsonElement indexElement : listArray) { JsonObject indexObject = indexElement.getAsJsonObject(); String index = GsonHelper.getString(indexObject, "index"); diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenComponentServiceImpl.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenComponentServiceImpl.java index 8c4cad00..9bc17374 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenComponentServiceImpl.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenComponentServiceImpl.java @@ -27,18 +27,18 @@ import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.Hashtable; import java.util.List; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; /** * @author 007 */ public class WxOpenComponentServiceImpl implements WxOpenComponentService { private static final JsonParser JSON_PARSER = new JsonParser(); - private static final Map WX_OPEN_MA_SERVICE_MAP = new Hashtable<>(); - private static final Map WX_OPEN_MP_SERVICE_MAP = new Hashtable<>(); - private static final Map WX_OPEN_FAST_MA_SERVICE_MAP = new Hashtable<>(); + private static final Map WX_OPEN_MA_SERVICE_MAP = new ConcurrentHashMap<>(); + private static final Map WX_OPEN_MP_SERVICE_MAP = new ConcurrentHashMap<>(); + private static final Map WX_OPEN_FAST_MA_SERVICE_MAP = new ConcurrentHashMap<>(); protected final Logger log = LoggerFactory.getLogger(this.getClass()); private WxOpenService wxOpenService; diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInMemoryConfigStorage.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInMemoryConfigStorage.java index 570721f1..36dfc29d 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInMemoryConfigStorage.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInMemoryConfigStorage.java @@ -2,8 +2,8 @@ package me.chanjar.weixin.open.api.impl; import java.io.File; -import java.util.Hashtable; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; @@ -37,10 +37,10 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage { private String httpProxyPassword; private ApacheHttpClientBuilder apacheHttpClientBuilder; - private Map authorizerRefreshTokens = new Hashtable<>(); - private Map authorizerAccessTokens = new Hashtable<>(); - private Map jsapiTickets = new Hashtable<>(); - private Map cardApiTickets = new Hashtable<>(); + private Map authorizerRefreshTokens = new ConcurrentHashMap<>(); + private Map authorizerAccessTokens = new ConcurrentHashMap<>(); + private Map jsapiTickets = new ConcurrentHashMap<>(); + private Map cardApiTickets = new ConcurrentHashMap<>(); @Override public String getComponentAppId() {