Skip to content

Commit e810959

Browse files
committed
! add missing double check in method inetAddress$Addresses2DnsCacheEntry
1 parent 11af46d commit e810959

File tree

2 files changed

+25
-23
lines changed

2 files changed

+25
-23
lines changed

library/src/main/java/com/alibaba/dcm/internal/InetAddressCacheUtilCommons.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ private static void setCachePolicy0(boolean isNegative, int seconds)
8989
if (isNegative) {
9090
if (negativeSet$InetAddressCachePolicy == null) {
9191
synchronized (InetAddressCacheUtilCommons.class) {
92-
if (negativeSet$InetAddressCachePolicy == null) {
92+
if (negativeSet$InetAddressCachePolicy == null) { // double check
9393
Field f;
9494
try {
9595
f = clazz.getDeclaredField("propertyNegativeSet");
@@ -105,7 +105,7 @@ private static void setCachePolicy0(boolean isNegative, int seconds)
105105
} else {
106106
if (setFiled$InetAddressCachePolicy == null) {
107107
synchronized (InetAddressCacheUtilCommons.class) {
108-
if (setFiled$InetAddressCachePolicy == null) {
108+
if (setFiled$InetAddressCachePolicy == null) { // double check
109109
Field f;
110110
try {
111111
f = clazz.getDeclaredField("propertySet");

library/src/main/java/com/alibaba/dcm/internal/InetAddressCacheUtilForJava9Plus.java

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -222,27 +222,29 @@ public static DnsCache listInetAddressCache()
222222

223223
if (reqAddrFieldOfInetAddress$NameServiceAddress == null) {
224224
synchronized (InetAddressCacheUtilForJava9Plus.class) {
225-
///////////////////////////////////////////////
226-
// Fields of InetAddress$CachedAddresses
227-
///////////////////////////////////////////////
228-
final Class<?> cachedAddresses_Class = Class.forName(inetAddress$CachedAddresses_ClassName);
229-
230-
final Field inetAddressesFiled = cachedAddresses_Class.getDeclaredField("inetAddresses");
231-
inetAddressesFiled.setAccessible(true);
232-
inetAddressesFieldOfInetAddress$CacheAddress = inetAddressesFiled;
233-
234-
final Field expiryTimeFiled = cachedAddresses_Class.getDeclaredField("expiryTime");
235-
expiryTimeFiled.setAccessible(true);
236-
expiryTimeFieldOfInetAddress$CacheAddress = expiryTimeFiled;
237-
238-
///////////////////////////////////////////////
239-
// Fields of InetAddress$NameServiceAddresses
240-
///////////////////////////////////////////////
241-
final Class<?> nameServiceAddresses_Class = Class.forName(inetAddress$NameServiceAddresses_ClassName);
242-
243-
final Field reqAddrFiled = nameServiceAddresses_Class.getDeclaredField("reqAddr");
244-
reqAddrFiled.setAccessible(true);
245-
reqAddrFieldOfInetAddress$NameServiceAddress = reqAddrFiled;
225+
if (reqAddrFieldOfInetAddress$NameServiceAddress == null) { // double check
226+
///////////////////////////////////////////////
227+
// Fields of InetAddress$CachedAddresses
228+
///////////////////////////////////////////////
229+
final Class<?> cachedAddresses_Class = Class.forName(inetAddress$CachedAddresses_ClassName);
230+
231+
final Field inetAddressesFiled = cachedAddresses_Class.getDeclaredField("inetAddresses");
232+
inetAddressesFiled.setAccessible(true);
233+
inetAddressesFieldOfInetAddress$CacheAddress = inetAddressesFiled;
234+
235+
final Field expiryTimeFiled = cachedAddresses_Class.getDeclaredField("expiryTime");
236+
expiryTimeFiled.setAccessible(true);
237+
expiryTimeFieldOfInetAddress$CacheAddress = expiryTimeFiled;
238+
239+
///////////////////////////////////////////////
240+
// Fields of InetAddress$NameServiceAddresses
241+
///////////////////////////////////////////////
242+
final Class<?> nameServiceAddresses_Class = Class.forName(inetAddress$NameServiceAddresses_ClassName);
243+
244+
final Field reqAddrFiled = nameServiceAddresses_Class.getDeclaredField("reqAddr");
245+
reqAddrFiled.setAccessible(true);
246+
reqAddrFieldOfInetAddress$NameServiceAddress = reqAddrFiled;
247+
}
246248
}
247249
}
248250

0 commit comments

Comments
 (0)