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