@@ -238,10 +238,8 @@ public static DnsCache listInetAddressCache()
238238 long expiryTimeNanos = expiryTimeFieldOfInetAddress$CacheAddress .getLong (addresses );
239239 expiration = convertNanoTimeToTimeMillis (expiryTimeNanos );
240240 } else if (addressesClassName .equals (inetAddress$NameServiceAddresses_ClassName )) {
241- InetAddress inetAddress = (InetAddress ) reqAddrFieldOfInetAddress$NameServiceAddress .get (addresses );
242- inetAddresses = new InetAddress []{inetAddress };
243-
244- expiration = NEVER_EXPIRATION ;
241+ throw new IllegalStateException ("child class " + addressesClassName +
242+ " for class InetAddress.Addresses should never happens, report issue for dns-cache-manipulator lib!" );
245243 } else {
246244 throw new IllegalStateException ("JDK add new child class " + addressesClassName +
247245 " for class InetAddress.Addresses, report issue for dns-cache-manipulator lib!" );
@@ -265,26 +263,11 @@ public static DnsCache listInetAddressCache()
265263 */
266264 private static volatile Field expiryTimeFieldOfInetAddress$CacheAddress = null ;
267265
268- // Fields of InetAddress$NameServiceAddresses
269- /**
270- * {@link InetAddress.NameServiceAddresses.reqAddr}
271- * <p>
272- * code in jdk 9:
273- * https://hg.openjdk.java.net/jdk9/jdk9/jdk/file/65464a307408/src/java.base/share/classes/java/net/InetAddress.java#l813
274- * code in jdk 11:
275- * https://hg.openjdk.java.net/jdk/jdk11/file/1ddf9a99e4ad/src/java.base/share/classes/java/net/InetAddress.java#l817
276- * code in jdk 17:
277- * https://github.com/openjdk/jdk17u/blob/jdk-17+35/src/java.base/share/classes/java/net/InetAddress.java#L822
278- * code in jdk 18:
279- * https://github.com/openjdk/jdk18u/blob/jdk-18+33/src/java.base/share/classes/java/net/InetAddress.java#L969
280- */
281- private static volatile Field reqAddrFieldOfInetAddress$NameServiceAddress = null ;
282-
283266 private static void initFieldsOfAddresses () throws ClassNotFoundException , NoSuchFieldException {
284- if (reqAddrFieldOfInetAddress$NameServiceAddress != null ) return ;
267+ if (inetAddressesFieldOfInetAddress$CacheAddress != null ) return ;
285268
286269 synchronized (InetAddressCacheUtilForJava9Plus .class ) {
287- if (reqAddrFieldOfInetAddress$NameServiceAddress != null ) return ;
270+ if (inetAddressesFieldOfInetAddress$CacheAddress != null ) return ;
288271
289272 ///////////////////////////////////////////////
290273 // Fields of InetAddress$CachedAddresses
@@ -298,15 +281,6 @@ private static void initFieldsOfAddresses() throws ClassNotFoundException, NoSuc
298281 final Field expiryTimeFiled = cachedAddresses_Class .getDeclaredField ("expiryTime" );
299282 expiryTimeFiled .setAccessible (true );
300283 expiryTimeFieldOfInetAddress$CacheAddress = expiryTimeFiled ;
301-
302- ///////////////////////////////////////////////
303- // Fields of InetAddress$NameServiceAddresses
304- ///////////////////////////////////////////////
305- final Class <?> nameServiceAddresses_Class = Class .forName (inetAddress$NameServiceAddresses_ClassName );
306-
307- final Field reqAddrFiled = nameServiceAddresses_Class .getDeclaredField ("reqAddr" );
308- reqAddrFiled .setAccessible (true );
309- reqAddrFieldOfInetAddress$NameServiceAddress = reqAddrFiled ;
310284 }
311285 }
312286
0 commit comments