Author: kwall
Date: Wed May 21 17:31:13 2014
New Revision: 1596631
URL: http://svn.apache.org/r1596631
Log:
QPID-5779: [Java Broker] JMX plugin's server sockets should set the
SO_REUSEADDR socket option - defect fix - set socket option *before* port is
bound
Modified:
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/QpidRMIServerSocketFactory.java
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/QpidSslRMIServerSocketFactory.java
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/RegistryProtectingRMIServerSocketFactory.java
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PortRestTest.java
Modified:
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/QpidRMIServerSocketFactory.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/QpidRMIServerSocketFactory.java?rev=1596631&r1=1596630&r2=1596631&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/QpidRMIServerSocketFactory.java
(original)
+++
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/QpidRMIServerSocketFactory.java
Wed May 21 17:31:13 2014
@@ -19,21 +19,20 @@
package org.apache.qpid.server.jmx;
import java.io.IOException;
-import java.net.InetAddress;
+import java.net.InetSocketAddress;
import java.net.ServerSocket;
-import java.net.Socket;
import java.rmi.server.RMIServerSocketFactory;
import javax.net.ServerSocketFactory;
-import javax.net.SocketFactory;
class QpidRMIServerSocketFactory implements RMIServerSocketFactory
{
@Override
- public ServerSocket createServerSocket(int port) throws IOException
+ public ServerSocket createServerSocket(final int port) throws IOException
{
- ServerSocket serverSocket =
ServerSocketFactory.getDefault().createServerSocket(port);
+ ServerSocket serverSocket =
ServerSocketFactory.getDefault().createServerSocket();
serverSocket.setReuseAddress(true);
+ serverSocket.bind(new InetSocketAddress(port));
return serverSocket;
}
Modified:
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/QpidSslRMIServerSocketFactory.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/QpidSslRMIServerSocketFactory.java?rev=1596631&r1=1596630&r2=1596631&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/QpidSslRMIServerSocketFactory.java
(original)
+++
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/QpidSslRMIServerSocketFactory.java
Wed May 21 17:31:13 2014
@@ -21,6 +21,7 @@
package org.apache.qpid.server.jmx;
import java.io.IOException;
+import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
@@ -61,7 +62,7 @@ public class QpidSslRMIServerSocketFacto
{
final SSLSocketFactory factory = _sslContext.getSocketFactory();
- ServerSocket serverSocket = new ServerSocket(port)
+ ServerSocket serverSocket = new ServerSocket()
{
public Socket accept() throws IOException
{
@@ -78,6 +79,7 @@ public class QpidSslRMIServerSocketFacto
}
};
serverSocket.setReuseAddress(true);
+ serverSocket.bind(new InetSocketAddress(port));
return serverSocket;
}
Modified:
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/RegistryProtectingRMIServerSocketFactory.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/RegistryProtectingRMIServerSocketFactory.java?rev=1596631&r1=1596630&r2=1596631&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/RegistryProtectingRMIServerSocketFactory.java
(original)
+++
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/RegistryProtectingRMIServerSocketFactory.java
Wed May 21 17:31:13 2014
@@ -21,6 +21,7 @@ package org.apache.qpid.server.jmx;
import java.io.IOException;
import java.net.InetAddress;
+import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.rmi.server.RMIServerSocketFactory;
@@ -39,8 +40,9 @@ class RegistryProtectingRMIServerSocketF
@Override
public ServerSocket createServerSocket(int port) throws IOException
{
- NoLocalAddressServerSocket serverSocket = new
NoLocalAddressServerSocket(port);
+ NoLocalAddressServerSocket serverSocket = new
NoLocalAddressServerSocket();
serverSocket.setReuseAddress(true);
+ serverSocket.bind(new InetSocketAddress(port));
return serverSocket;
}
@@ -59,9 +61,9 @@ class RegistryProtectingRMIServerSocketF
private static class NoLocalAddressServerSocket extends ServerSocket
{
- NoLocalAddressServerSocket(int port) throws IOException
+ NoLocalAddressServerSocket() throws IOException
{
- super(port);
+ super();
}
@Override
Modified:
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PortRestTest.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PortRestTest.java?rev=1596631&r1=1596630&r2=1596631&view=diff
==============================================================================
---
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PortRestTest.java
(original)
+++
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/PortRestTest.java
Wed May 21 17:31:13 2014
@@ -152,8 +152,8 @@ public class PortRestTest extends QpidRe
boolean rmiIsFree = getNextAvailable(rmiPort) == rmiPort;
boolean jmxIsFree = getNextAvailable(jmxPort) == jmxPort;
- assertTrue("Expecting rmiPort to be free after broker stop",
rmiIsFree);
- assertTrue("Expecting jmxPort to be free after broker stop",
jmxIsFree);
+ assertTrue("Expecting rmiPort " + rmiPort + " to be free after broker
stop", rmiIsFree);
+ assertTrue("Expecting jmxPort " + jmxPort + " to be free after broker
stop", jmxIsFree);
startBroker();
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]