Hi, This fixes most of the remaining net regressions we were seeing in Mauve.
2006-01-12 Mark Wielaard <[EMAIL PROTECTED]> * native/jni/java-net/javanet.c (_javanet_recvfrom): Return -1 when other side orderly closed connection. * vm/reference/gnu/java/net/VMPlainSocketImpl.java (read(PlainSocketImpl)): Mask byte to return unsigned int. Return -1 when end of stream reached. There are only 2 regressions left which I still need to investigate: -PASS: gnu.testlet.java.net.DatagramPacket.DatagramPacketReceive2: DatagramPacket receive Test B errorCount=0 (number 1) +FAIL: gnu.testlet.java.net.DatagramPacket.DatagramPacketReceive2: DatagramPacket receive Test B errorCount=15 (number 1) -PASS: gnu.testlet.java.net.DatagramSocket.DatagramSocketTest2: invalid_send_addr (number 2) +FAIL: gnu.testlet.java.net.DatagramSocket.DatagramSocketTest2: invalid_send_addr: test 2 - Should NOT throw IOException (number 1) Cheers, Mark
Index: native/jni/java-net/javanet.c =================================================================== RCS file: /cvsroot/classpath/classpath/native/jni/java-net/javanet.c,v retrieving revision 1.28 diff -u -r1.28 javanet.c --- native/jni/java-net/javanet.c 12 Jan 2006 09:37:31 -0000 1.28 +++ native/jni/java-net/javanet.c 12 Jan 2006 10:34:59 -0000 @@ -1005,6 +1005,11 @@ (*port) = from_port; } + /* zero bytes received means recv() noticed the other side orderly + closing the connection. */ + if (received_bytes == 0) + received_bytes = -1; + return (received_bytes); #else /* not WITHOUT_NETWORK */ #endif /* not WITHOUT_NETWORK */ Index: vm/reference/gnu/java/net/VMPlainSocketImpl.java =================================================================== RCS file: /cvsroot/classpath/classpath/vm/reference/gnu/java/net/VMPlainSocketImpl.java,v retrieving revision 1.1 diff -u -r1.1 VMPlainSocketImpl.java --- vm/reference/gnu/java/net/VMPlainSocketImpl.java 4 Jan 2006 20:46:47 -0000 1.1 +++ vm/reference/gnu/java/net/VMPlainSocketImpl.java 12 Jan 2006 10:34:59 -0000 @@ -1,5 +1,5 @@ /* VMPlainSocketImpl.java -- VM interface for default socket implementation - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -199,15 +199,17 @@ * * @param socket the socket object * - * @return read byte + * @return read byte or -1 if end of stream. * * @throws IOException if an error occurs */ static int read(PlainSocketImpl socket) throws IOException { byte[] buf = new byte[1]; - read(socket, buf, 0, 1); - return buf[0]; + if (read(socket, buf, 0, 1) > 0) + return buf[0] & 0xFF; + else + return -1; } /**
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Classpath-patches mailing list Classpath-patches@gnu.org http://lists.gnu.org/mailman/listinfo/classpath-patches