Re: RFR: 8189366: SocketInputStream.available() should check for eof

2018-10-17 Thread vyom tewari
sure, i will send the webrev  soon. Vyom On Wednesday 17 October 2018 04:31 PM, Chris Hegarty wrote: On 12/10/18 12:58, Daniel Fuchs wrote: ... int available = impl.available(); return eof ? 0 : available; addresses the issue of available potentially returning garbage after EOF

Re: RFR: 8189366: SocketInputStream.available() should check for eof

2018-10-17 Thread Chris Hegarty
On 12/10/18 12:58, Daniel Fuchs wrote: ...     int available = impl.available();     return eof ? 0 : available; addresses the issue of available potentially returning garbage after EOF while being much less risky... Agreed. The above resolves the original reported potential bug, without

Re: RFR: 8189366: SocketInputStream.available() should check for eof

2018-10-12 Thread Alan Bateman
On 12/10/2018 14:43, David Lloyd wrote: On Fri, Oct 12, 2018 at 6:01 AM Chris Hegarty wrote: That is correct. While not intuitive, I don't propose that we change this. ( if this were a new implementation then I think it should throw IOE for this scenario, but we are where we are ). I am glad

Re: RFR: 8189366: SocketInputStream.available() should check for eof

2018-10-12 Thread David Lloyd
On Fri, Oct 12, 2018 at 6:01 AM Chris Hegarty wrote: > That is correct. While not intuitive, I don't propose > that we change this. ( if this were a new implementation > then I think it should throw IOE for this scenario, but > we are where we are ). I am glad then that it is not a new

Re: RFR: 8189366: SocketInputStream.available() should check for eof

2018-10-12 Thread Daniel Fuchs
On 12/10/2018 12:01, Chris Hegarty wrote: That buys us little more than we had prior to this change, since impl.available will still call into native before checking the EOF status. If we want to keep this, then we need:     public int available() throws IOException {     if

Re: RFR: 8189366: SocketInputStream.available() should check for eof

2018-10-12 Thread vyom tewari
On Friday 12 October 2018 04:31 PM, Chris Hegarty wrote: Daniel, On 12/10/18 11:26, Daniel Fuchs wrote: Hi, Maybe a more conservative implementation could have been:     int available = impl.available();     return eof ? 0 : available; That buys us little more than we had prior to this

Re: RFR: 8189366: SocketInputStream.available() should check for eof

2018-10-12 Thread Chris Hegarty
Daniel, On 12/10/18 11:26, Daniel Fuchs wrote: Hi, Maybe a more conservative implementation could have been:    int available = impl.available();    return eof ? 0 : available; That buys us little more than we had prior to this change, since impl.available will still call into native

Re: RFR: 8189366: SocketInputStream.available() should check for eof

2018-10-12 Thread Daniel Fuchs
Hi, Maybe a more conservative implementation could have been: int available = impl.available(); return eof ? 0 : available; I almost suggested that yesterday, but I saw that read() already had a logic similar to what Vyom was proposing for available: 146 // EOF already

Re: RFR: 8189366: SocketInputStream.available() should check for eof

2018-10-12 Thread Chris Hegarty
On 12/10/18 08:29, Alan Bateman wrote: On 11/10/2018 09:03, vyom tewari wrote: Hi Chris, Thanks for review, please find the updated webrev(http://cr.openjdk.java.net/~vtewari/8189366/webrev0.1/index.html) where i included the test. Can you explain the behavior change for the closed socket

Re: RFR: 8189366: SocketInputStream.available() should check for eof

2018-10-12 Thread Alan Bateman
On 11/10/2018 09:03, vyom tewari wrote: Hi Chris, Thanks for review, please find the updated webrev(http://cr.openjdk.java.net/~vtewari/8189366/webrev0.1/index.html) where i included the test. Can you explain the behavior change for the closed socket case? Will this change mean that

Re: RFR: 8189366: SocketInputStream.available() should check for eof

2018-10-11 Thread Chris Hegarty
> On 11 Oct 2018, at 09:03, vyom tewari wrote: > > Hi Chris, > > Thanks for review, please find the updated > webrev(http://cr.openjdk.java.net/~vtewari/8189366/webrev0.1/index.html) > where i included the test. Thanks. I think this is good. -Chris.

Re: RFR: 8189366: SocketInputStream.available() should check for eof

2018-10-11 Thread vyom tewari
Hi Chris, Thanks for review, please find the updated webrev(http://cr.openjdk.java.net/~vtewari/8189366/webrev0.1/index.html) where i included the test. Thanks, Vyom On Wednesday 10 October 2018 09:50 PM, Chris Hegarty wrote: Vyom, On 10/10/18 14:16, vyom tewari wrote: Hi All, Please

Re: RFR: 8189366: SocketInputStream.available() should check for eof

2018-10-10 Thread vyom tewari
-dev on behalf of vyom tewari *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

Re: RFR: 8189366: SocketInputStream.available() should check for eof

2017-10-26 Thread David Lloyd
On Thu, Oct 26, 2017 at 4:44 AM, 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 read when something > is available it might never detect that it reached EOF. At

Re: RFR: 8189366: SocketInputStream.available() should check for eof

2017-10-26 Thread Martin Buchholz
Any change that fiddles with "available" is never simple! I confess to not understanding sockets, but intuitively they differ from files in that eof is a murky concept - there may not be any data from the other end of the socket right now, but who knows what's coming soon? What's the difference

Re: RFR: 8189366: SocketInputStream.available() should check for eof

2017-10-26 Thread Bernd Eckenfels
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. Web

RFR: 8189366: SocketInputStream.available() should check for eof

2017-10-26 Thread vyom tewari
Hi All, Please review the simple change below. Webrev   : http://cr.openjdk.java.net/~vtewari/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