Open ingebot opened 12 years ago
Comment author: mariusz <m.ryndzionek@a2s.pl>
Created attachment 26582 Simple test server and client
GCC: cross toochain - gcc-4.1.2, uClibc 0.9.28 GNU Classpath 0.98 (and CVS head) + JamVM (git HEAD)
The 'NotYetConnectedException' is thrown if the remote endpoint closes the connection. Reproducible using the attached testcase:
java TestServer
ONE
TWO
THREE
BYE
java TestClient
Sending: ONE
Sending: TWO
Sending: THREE
Sending: BYE
Sending: FOUR
java.nio.channels.NotYetConnectedException
at gnu.java.nio.SocketChannelImpl.read(SocketChannelImpl.java:217)
at gnu.java.net.PlainSocketImpl$SocketInputStream.read(PlainSocketImpl.java:587)
at java.io.InputStream.read(InputStream.java:163)
at java.io.InputStreamReader.read(InputStreamReader.java:459)
at java.io.BufferedReader.fill(BufferedReader.java:370)
at java.io.BufferedReader.readLine(BufferedReader.java:469)
at TestClient.main(TestClient.java:45)
Java_gnu_java_nio_VMChannel_getpeername function returns 0 due to getpeername returning -1. SocketChannelImpl class isConnected is calling getpeername every time! I think it should buffer the connection state during connect() instead.
Attached file: testcase.tar.gz (application/x-gzip, 861 bytes) Description: Simple test server and client
Note: this issue was migrated automatically using bugzilla2github
Original bug ID: BZ#52135 From: mariusz <m.ryndzionek@a2s.pl> Reported version: 0.98