On Thursday 26 October 2017 03:14 PM, Bernd Eckenfels wrote:
What is currently returned at the end of a stream? This looks like a dangerous thing to do, if a existing implementation only
Currently it returns 0 at end of stream and  same as after change. As David pointed out that ultimately it delegates on to "ioctl", i checked the doc(http://man7.org/linux/man-pages/man4/tty_ioctl.4.html) and did not found anything which tells about eof.

What i found out, setting eof at socketinputstream there is no effect on native  "ioctl" call. I set the "eof"  and SocketInputStream.available() return 0.

Let's wait for other people opinions.

Note: you have to shutdown the SocketInputstream to set "eof", i am not sure if there is any other way to set "eof" for SocketInputStream.

Thanks,
Vyom

read when something is available it might never detect that it reached EOF.

Gruss
Bernd
--
http://bernd.eckenfels.net
------------------------------------------------------------------------
*From:* net-dev <net-dev-boun...@openjdk.java.net> on behalf of vyom tewari <vyom.tew...@oracle.com>
*Sent:* Thursday, October 26, 2017 11:26:15 AM
*To:* OpenJDK Network Dev list
*Subject:* RFR: 8189366: SocketInputStream.available() should check for eof
Hi All,

Please review the simple change below.

Webrev   : http://cr.openjdk.java.net/~vtewari/8189366/webrev0.0/index.html <http://cr.openjdk.java.net/%7Evtewari/8189366/webrev0.0/index.html>

BugId      : https://bugs.openjdk.java.net/browse/JDK-8189366


Currently SocketInputStream.available() does not check for "eof" and
simply delegate to the impl even when "eof" reached. I put a check  to
return 0 if "eof" is already reached.

Thanks,

Vyom


Reply via email to