[ 
https://issues.apache.org/jira/browse/NET-382?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bogdan Drozdowski updated NET-382:
----------------------------------

    Attachment: sockclient-socket-private.diff

I thought about that this too one day. Now I have a patch. It allows the user 
to get the current socket, set a new one (automatically updating _input and 
_output) and get the current streams. If accepted, _socket, _input and _output 
can be made private and the subclasses modified to fit the new interface. This 
will force the subclasses to use _input and _output. It still is one call, but 
this time the call simply returns a field.

I don't like getSocket(), but it's required by classes that can, for example, 
switch between encrypted and plain-text modes (like FTPSClient) to save to 
original socket. Better than relying on a field name, anyway. The classes that 
inherit from SocketClient still can modify the Socket the way they like, so 
it's no worse than what it's like currently.

BufferedReaders/Writers are subclass-specific, so they can't be set 
automatically when changing the socket. But it's probably useless to have them 
in a general-purpose socket class, since they could be unused. So it's probably 
best to leave things as they are: let the subclasses worry about these.

> Subclasses of SocketClient should use _input_ and _output_ rather than 
> calling _socket_.getInputStream() etc
> ------------------------------------------------------------------------------------------------------------
>
>                 Key: NET-382
>                 URL: https://issues.apache.org/jira/browse/NET-382
>             Project: Commons Net
>          Issue Type: Bug
>            Reporter: Sebb
>         Attachments: sockclient-socket-private.diff
>
>
> SocketClient._connectAction() sets up \_input\_ and \_output\_ from 
> \_socket\_ so it is wasteful to do this again in subclasses.
> Potentially consider making \_socket\_ private?
> However, this would currently break most of the "S" versions of the 
> protocols, unless SocketClient is extended to handle their needs.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to