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--
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