SO_REUSEADDR should be applied to server socket before bind()
-------------------------------------------------------------
Key: QPID-3854
URL: https://issues.apache.org/jira/browse/QPID-3854
Project: Qpid
Issue Type: Bug
Components: Java Broker
Affects Versions: 0.14, 0.15
Reporter: Keith Wall
Assignee: Keith Wall
Fix For: 0.15
In the IoNetworkTransport code, we currently apply the server socket option
(SO_REUSEADDR) after the bind() call. This ordering is contrary to the
documentation at
http://docs.oracle.com/javase/6/docs/api/java/net/ServerSocket.html#setReuseAddress(boolean)
which states:
bq. Enabling SO_REUSEADDR prior to binding the socket using bind(SocketAddress)
allows the socket to be bound even though a previous connection is in a timeout
state.
bq. When a ServerSocket is created the initial setting of SO_REUSEADDR is not
defined. Applications can use getReuseAddress() to determine the initial
setting of SO_REUSEADDR.
bq. The behaviour when SO_REUSEADDR is enabled or disabled after a socket is
bound (See isBound()) is not defined.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]