On Mon, 5 May 2025 10:12:11 GMT, Jaikiran Pai <j...@openjdk.org> wrote:

> Can I please get a review of this change which proposes to respecify the 2 
> `java.net.Socket` constructors that allow construction of UDP sockets? This 
> addresses https://bugs.openjdk.org/browse/JDK-8356154.
> 
> As noted in that JBS issue, in Java 23 we deprecated for removal the 2 
> `Socket` constructors that allowed UDP socket creation. The plan continues to 
> be to remove those constructors. Before removing those, in order to allow for 
> applications to notice this deprecation, these constructors are now being 
> respecified to throw an `IllegalArgumentException` when the `stream` 
> parameter is `false`.
> 
> I will create a CSR once we settle on these changes.
> 
> tier1 through tier8 tests have been run with this change and no related 
> failures have been noticed.

src/java.base/share/classes/sun/nio/ch/NioSocketImpl.java line 453:

> 451:     protected void create(boolean stream) throws IOException {
> 452:         if (!stream) {
> 453:             throw new IllegalArgumentException("datagram socket creation 
> not supported");

My initial thought was to just `assert` the `stream` value here. Then I noticed 
the `test/jdk/java/net/SocketImpl/BadUsages.java` test (updated as part of this 
PR) and thought that it might be better to do an actual check here and have it 
throw `IllegalArgumentException`, to allow for this behaviour to be verified.

I however don't have a strong opinion about this. So if `assert` is enough, 
then I'll switch this to an assert and then remove the updated test method in 
the `BasUsages.java`.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25031#discussion_r2073193218

Reply via email to