classpath-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cp-patches] FYI: Some more net regression fixes


From: Mark Wielaard
Subject: [cp-patches] FYI: Some more net regression fixes
Date: Thu, 12 Jan 2006 11:35:13 +0100

Hi,

This fixes most of the remaining net regressions we were seeing in
Mauve.

2006-01-12  Mark Wielaard  <address@hidden>

   * 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;
   }
 
   /**

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

[Prev in Thread] Current Thread [Next in Thread]