RFR: 8345074: java.net.InterfaceAddress constructor could be made private

Eirik Bjørsnøs eirbjo at openjdk.org
Sat Nov 30 18:37:16 UTC 2024


On Sat, 30 Nov 2024 18:18:29 GMT, Eirik Bjørsnøs <eirbjo at openjdk.org> wrote:

> Please review this PR which suggests to make the constructor of `java.net.InterfaceAddress` private.
> 
> This constructor is only accessed by native code via the `NetworkInterface` class. Making it private would express the intent of this class as being non-subclassable.
> 
> The comment of the constructor is updated to reflect the new access modifier as well as to make it clear that the constructor is not to be invoked from Java code and that instances are obtained from `NetworkInterface` via native code. 
> 
> Marking this class final is handled separately in JDK-8344943 via a CSR.

Verification: Ran tests such as `NetworkPrefixLength` to verify that native code can access the now-private constructor.

Stack trace in debugger:


        at java.base/java.net.InterfaceAddress.<init>(InterfaceAddress.java:49)
	at java.base/java.net.NetworkInterface.getAll(Native Method)
	at java.base/java.net.NetworkInterface.getNetworkInterfaces(NetworkInterface.java:354)

-------------

PR Comment: https://git.openjdk.org/jdk/pull/22467#issuecomment-2509134943


More information about the net-dev mailing list