Date: Mon, 16 Oct 2006 13:24:08 -0400 From: "Joseph Gleason" <fireduck@gmail.com> To: freebsd-java@freebsd.org Subject: Bug in java.net.Socket close() behavior? Message-ID: <7956f3200610161024o3598e217oba81116bd84a7c99@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
------=_Part_32835_26806047.1161019448435 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline According to the API for java.net.Socket close(): "Any thread currently blocked in an I/O operation upon this socket will throw a SocketException." http://java.sun.com/j2se/1.5.0/docs/api/java/net/Socket.html#close() I have observed that java 1.5 on FreeBSD does not follow this while the Windows and Linux ones I have tested do. On the FreeBSD runtimes that I have tested, a thread blocked on reading a socket just hangs forever if the socket is closed. Attached is a simple program that tests this behavior. It just connects to a port on one of my servers and has a reader thread watching input from the socket and closes the socket in a different thread to see if the reader thread gets an exception. Java runtimes that I have tested this on: # java -version java version "1.5.0" Java(TM) 2 Runtime Environment, Standard Edition (build diablo-1.5.0-b01) Java HotSpot(TM) 64-Bit Server VM (build diablo-1.5.0_07-b01, mixed mode) # java -version java version "1.5.0-p2" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-p2-root_07_mar_2006_02_41) Java HotSpot(TM) 64-Bit Server VM (build 1.5.0-p2-root_07_mar_2006_02_41, mixed mode) ------=_Part_32835_26806047.1161019448435--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7956f3200610161024o3598e217oba81116bd84a7c99>