Skip to content

Commit 36b917a

Browse files
committed
refactor: remove redundant logic for InetAddress.NameServiceAddresses.reqAddr
1 parent 7890700 commit 36b917a

File tree

1 file changed

+4
-30
lines changed

1 file changed

+4
-30
lines changed

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

Lines changed: 4 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)