@@ -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