On Wed, 23 Jun 2021 13:05:24 GMT, Alan Bateman <al...@openjdk.org> wrote:

>> Hi,
>> 
>> Could someone please review my changes for the removal of the legacy 
>> `PlainSocketImpl` and `PlainDatagramSocketImpl` implementations?
>> 
>> In JDK 13, JEP 353 provided a drop in replacement for the legacy 
>> `PlainSocketImpl` implementation. Since JDK 13, the `PlainSocketImpl` 
>> implementation was no longer used but included a mitigation mechanism to 
>> reduce compatibility risks in the form of a JDK-specific property 
>> `jdk.net.usePlainSocketImpl` allowing to switch back to the old 
>> implementation. 
>> Similarly, in JDK 15, JEP 373 provided a new implementation for 
>> `DatagramSocket` and `MulticastSocket`, with a JDK-specific property 
>> `jdk.net.usePlainDatagramSocketImpl` also allowing the user to switch back 
>> to the old implementation in case of compatibility issue.
>> 
>> As these implementations (and the mechanisms they use to enable them to 
>> mitigate compatibility issues) have been deemed no longer necessary, they 
>> now represent a maintenance burden. This patch looks at removing them from 
>> the JDK.
>> 
>> Kind regards,
>> Patrick
>
> src/java.base/share/classes/java/net/DatagramSocket.java line 1405:
> 
>> 1403:                 // create legacy DatagramSocket delegate
>> 1404:                 DatagramSocketImpl impl = 
>> factory.createDatagramSocketImpl();
>> 1405:                 Objects.requireNonNull(impl);
> 
> I assume this Objects.requireNonNull is not needed or maybe you want to 
> detect a buggy factory rather than in the the constructor?

Yes - the constructor would throw NPE - but there's no need to call this 
constructor if `impl` is null here - it's better to fail early.

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

PR: https://git.openjdk.java.net/jdk/pull/4574

Reply via email to