Skip site navigation (1)Skip section navigation (2)
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>