@@ -19,6 +19,7 @@ package me.chanjar.weixin.common.util.res; | |||||
import java.text.MessageFormat; | import java.text.MessageFormat; | ||||
import java.util.*; | import java.util.*; | ||||
import java.util.concurrent.ConcurrentHashMap; | |||||
/** | /** | ||||
* An internationalization / localization helper class which reduces | * An internationalization / localization helper class which reduces | ||||
@@ -46,7 +47,7 @@ import java.util.*; | |||||
*/ | */ | ||||
public class StringManager { | public class StringManager { | ||||
private static final Map<String, Map<Locale, StringManager>> MANAGERS = new Hashtable<>(); | |||||
private static final Map<String, Map<Locale, StringManager>> MANAGERS = new ConcurrentHashMap<>(); | |||||
private static int LOCALE_CACHE_SIZE = 10; | private static int LOCALE_CACHE_SIZE = 10; | ||||
/** | /** | ||||
* The ResourceBundle for this StringManager. | * The ResourceBundle for this StringManager. | ||||
@@ -10,9 +10,9 @@ import com.google.gson.JsonParseException; | |||||
import me.chanjar.weixin.common.util.json.GsonHelper; | import me.chanjar.weixin.common.util.json.GsonHelper; | ||||
import java.lang.reflect.Type; | import java.lang.reflect.Type; | ||||
import java.util.Hashtable; | |||||
import java.util.LinkedHashMap; | import java.util.LinkedHashMap; | ||||
import java.util.Map; | import java.util.Map; | ||||
import java.util.concurrent.ConcurrentHashMap; | |||||
/** | /** | ||||
* @author <a href="https://github.com/charmingoh">Charming</a> | * @author <a href="https://github.com/charmingoh">Charming</a> | ||||
@@ -36,7 +36,7 @@ public class WxMaVisitDistributionGsonAdapter implements JsonDeserializer<WxMaVi | |||||
} | } | ||||
JsonArray listArray = object.getAsJsonArray("list"); | JsonArray listArray = object.getAsJsonArray("list"); | ||||
Map<String, Map<Integer, Integer>> list = new Hashtable<>(listArray.size()); | |||||
Map<String, Map<Integer, Integer>> list = new ConcurrentHashMap<>(listArray.size()); | |||||
for (JsonElement indexElement : listArray) { | for (JsonElement indexElement : listArray) { | ||||
JsonObject indexObject = indexElement.getAsJsonObject(); | JsonObject indexObject = indexElement.getAsJsonObject(); | ||||
String index = GsonHelper.getString(indexObject, "index"); | String index = GsonHelper.getString(indexObject, "index"); | ||||
@@ -27,18 +27,18 @@ import org.apache.commons.lang3.StringUtils; | |||||
import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||
import java.util.Hashtable; | |||||
import java.util.List; | import java.util.List; | ||||
import java.util.Map; | import java.util.Map; | ||||
import java.util.concurrent.ConcurrentHashMap; | |||||
/** | /** | ||||
* @author <a href="https://github.com/007gzs">007</a> | * @author <a href="https://github.com/007gzs">007</a> | ||||
*/ | */ | ||||
public class WxOpenComponentServiceImpl implements WxOpenComponentService { | public class WxOpenComponentServiceImpl implements WxOpenComponentService { | ||||
private static final JsonParser JSON_PARSER = new JsonParser(); | private static final JsonParser JSON_PARSER = new JsonParser(); | ||||
private static final Map<String, WxOpenMaService> WX_OPEN_MA_SERVICE_MAP = new Hashtable<>(); | |||||
private static final Map<String, WxMpService> WX_OPEN_MP_SERVICE_MAP = new Hashtable<>(); | |||||
private static final Map<String, WxOpenFastMaService> WX_OPEN_FAST_MA_SERVICE_MAP = new Hashtable<>(); | |||||
private static final Map<String, WxOpenMaService> WX_OPEN_MA_SERVICE_MAP = new ConcurrentHashMap<>(); | |||||
private static final Map<String, WxMpService> WX_OPEN_MP_SERVICE_MAP = new ConcurrentHashMap<>(); | |||||
private static final Map<String, WxOpenFastMaService> WX_OPEN_FAST_MA_SERVICE_MAP = new ConcurrentHashMap<>(); | |||||
protected final Logger log = LoggerFactory.getLogger(this.getClass()); | protected final Logger log = LoggerFactory.getLogger(this.getClass()); | ||||
private WxOpenService wxOpenService; | private WxOpenService wxOpenService; | ||||
@@ -2,8 +2,8 @@ package me.chanjar.weixin.open.api.impl; | |||||
import java.io.File; | import java.io.File; | ||||
import java.util.Hashtable; | |||||
import java.util.Map; | import java.util.Map; | ||||
import java.util.concurrent.ConcurrentHashMap; | |||||
import java.util.concurrent.locks.Lock; | import java.util.concurrent.locks.Lock; | ||||
import java.util.concurrent.locks.ReentrantLock; | import java.util.concurrent.locks.ReentrantLock; | ||||
@@ -37,10 +37,10 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage { | |||||
private String httpProxyPassword; | private String httpProxyPassword; | ||||
private ApacheHttpClientBuilder apacheHttpClientBuilder; | private ApacheHttpClientBuilder apacheHttpClientBuilder; | ||||
private Map<String, Token> authorizerRefreshTokens = new Hashtable<>(); | |||||
private Map<String, Token> authorizerAccessTokens = new Hashtable<>(); | |||||
private Map<String, Token> jsapiTickets = new Hashtable<>(); | |||||
private Map<String, Token> cardApiTickets = new Hashtable<>(); | |||||
private Map<String, Token> authorizerRefreshTokens = new ConcurrentHashMap<>(); | |||||
private Map<String, Token> authorizerAccessTokens = new ConcurrentHashMap<>(); | |||||
private Map<String, Token> jsapiTickets = new ConcurrentHashMap<>(); | |||||
private Map<String, Token> cardApiTickets = new ConcurrentHashMap<>(); | |||||
@Override | @Override | ||||
public String getComponentAppId() { | public String getComponentAppId() { | ||||