8282917: Remove InetAddressImplFactory from InetAddress

Reviewed-by: dfuchs, jpai
This commit is contained in:
Aleksei Efimov 2022-03-24 13:50:50 +00:00
parent 14c20bc0e0
commit 929b6a3556
4 changed files with 17 additions and 107 deletions

View file

@ -412,6 +412,9 @@ public sealed class InetAddress implements Serializable permits Inet4Address, In
// Native method to check if IPv4 is available
private static native boolean isIPv4Available();
// Native method to check if IPv6 is available
private static native boolean isIPv6Supported();
/**
* The {@code RuntimePermission("inetAddressResolverProvider")} is
* necessary to subclass and instantiate the {@code InetAddressResolverProvider}
@ -1270,7 +1273,8 @@ public sealed class InetAddress implements Serializable permits Inet4Address, In
static {
// create the impl
impl = InetAddressImplFactory.create();
impl = isIPv6Supported() ?
new Inet6AddressImpl() : new Inet4AddressImpl();
// impl must be initialized before calling this method
PLATFORM_LOOKUP_POLICY = initializePlatformLookupPolicy();
@ -1826,16 +1830,3 @@ public sealed class InetAddress implements Serializable permits Inet4Address, In
s.writeFields();
}
}
/*
* Simple factory to create the impl
*/
class InetAddressImplFactory {
static InetAddressImpl create() {
return isIPv6Supported() ?
new Inet6AddressImpl() : new Inet4AddressImpl();
}
static native boolean isIPv6Supported();
}