On 8 February 2018 at 12:54, Gilles <gil...@harfang.homelinux.org> wrote:
> On Thu, 8 Feb 2018 12:42:55 +0000, sebb wrote:
>>
>> On 8 February 2018 at 12:08, Gilles <gil...@harfang.homelinux.org> wrote:
>>>
>>> Hi.
>>>
>>> On Thu, 08 Feb 2018 11:55:10 -0000, s...@apache.org wrote:
>>>>
>>>>
>>>> Author: sebb
>>>> Date: Thu Feb  8 11:55:10 2018
>>>> New Revision: 1823550
>>>>
>>>> URL: http://svn.apache.org/viewvc?rev=1823550&view=rev
>>>> Log:
>>>> NET-643 NPE when closing telnet stream
>>>>
>>>> [...]
>>>>
>>>> Modified:
>>>>
>>>>
>>>>
>>>>
>>>> commons/proper/net/trunk/src/main/java/org/apache/commons/net/telnet/TelnetClient.java
>>>> URL:
>>>>
>>>>
>>>>
>>>>
>>>> http://svn.apache.org/viewvc/commons/proper/net/trunk/src/main/java/org/apache/commons/net/telnet/TelnetClient.java?rev=1823550&r1=1823549&r2=1823550&view=diff
>>>>
>>>>
>>>>
>>>>
>>>> ==============================================================================
>>>> ---
>>>>
>>>>
>>>>
>>>>
>>>> commons/proper/net/trunk/src/main/java/org/apache/commons/net/telnet/TelnetClient.java
>>>> (original)
>>>> +++
>>>>
>>>>
>>>>
>>>>
>>>> commons/proper/net/trunk/src/main/java/org/apache/commons/net/telnet/TelnetClient.java
>>>> Thu Feb  8 11:55:10 2018
>>>> @@ -100,10 +100,16 @@ public class TelnetClient extends Telnet
>>>>
>>>>      void _flushOutputStream() throws IOException
>>>>      {
>>>> +        if (_output_ == null) {
>>>> +            throw new IOException("Stream closed");
>>>> +        }
>>>>          _output_.flush();
>>>>      }
>>>>      void _closeOutputStream() throws IOException
>>>>      {
>>>> +        if (_output_ == null) {
>>>> +            return;
>>>> +        }
>>>>          try {
>>>>              _output_.close();
>>>>          } finally {
>>>
>>>
>>>
>>> Why the difference in behaviour?
>>
>>
>> See NET-643
>
>
> I did, before writing my first reply.
>
>> close() is supposed to be idempotent; flush() is not supposed to be
>> called on a closed stream.
>
>
> No such requirement here:
>  https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html#flush--

I was going by the Javadoc here:

https://docs.oracle.com/javase/8/docs/api/java/io/OutputStreamWriter.html#close--

It seems to me that ignoring flush is not the right thing to do.

>>> In the former case, "no-op" seems equally fine.
>>
>>
>> It was not a no-op; it was NPE.
>
>
> In the commit which I referred to, you added a "no-op" for
> "close()" and my comment is that the same can be done for
> "flush()" in the same circumstance (ie. no-op when "_output_"
> is null).
>
>
> Gilles
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to