RFR 8216978: Drop support for pre JDK 1.4 SocketImpl implementations
Alan Bateman
Alan.Bateman at oracle.com
Mon Apr 29 11:17:30 UTC 2019
On 29/04/2019 10:52, Michael McMahon wrote:
> Hi,
>
> This is another change which is part of the general cleanup of
> SocketImpls.
> The change removes support for pre JDK 1.4 socketimpls which do not
> implement
> the timed connect method. These SocketImpls have not been compilable
> since 1.4 and limited runtime support has been provided since then,
> which is now being removed.
>
> Webrev
> -------
> http://cr.openjdk.java.net/~michaelm/8216978/webrev.1/
>
This is a good cleanup.
Changing SIS.close and SOS.close to caller super.close raises a number
of questions. These close should never be called Socket.getInputStream
and getOutputStream don't leak these streams to user code (they used to
but now in JDK 13). My concern is that if they were ever to be called
then it will be calling the FIS/FOS close methods which brings along a
several questions on it interacts with the cleaner mechanism used by
those classes.
I don't think AbstractPlainSocketImpl.isBound needs to be volatile as it
is guarded by the synchronization on the impl (the doConnect and bind
methods are synchronized).
The Windows version of PlainSocketImpl shouldn't need the constructor to
be public (I see the Unix version is package-private).
Should we use the opportunity to add something to the javadoc for the
SocketImpl constructor so it's not empty? It can be as simple as
"Initialize a new instance of this class" as used in other places where
there isn't anything to say.
-Alan.
More information about the net-dev
mailing list