You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sa...@apache.org on 2016/03/24 12:46:38 UTC
[2/6] cassandra git commit: JMX RMI server sockets have SO_REUSEADDR
enabled
JMX RMI server sockets have SO_REUSEADDR enabled
Patch by Aleksandr Sorokoumov; reviewed by Sam Tunnicliffe for
CASSANDRA-11093
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3a244d24
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3a244d24
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3a244d24
Branch: refs/heads/cassandra-3.5
Commit: 3a244d24b8c66e2e6e2664f71e9972b7827ae5f4
Parents: 1d1bfae
Author: Aleksandr Sorokoumov <al...@gmail.com>
Authored: Thu Mar 24 11:41:35 2016 +0000
Committer: Sam Tunnicliffe <sa...@beobal.com>
Committed: Thu Mar 24 11:41:35 2016 +0000
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../utils/RMIServerSocketFactoryImpl.java | 11 ++++++---
.../service/RMIServerSocketFactoryImplTest.java | 24 ++++++++++++++++++++
3 files changed, 33 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a244d24/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index cf36047..fe19df7 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.0.5
+ * Enable SO_REUSEADDR for JMX RMI server sockets (CASSANDRA-11093)
* Allocate merkletrees with the correct size (CASSANDRA-11390)
* Support streaming pre-3.0 sstables (CASSANDRA-10990)
* Add backpressure to compressed commit log (CASSANDRA-10971)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a244d24/src/java/org/apache/cassandra/utils/RMIServerSocketFactoryImpl.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/RMIServerSocketFactoryImpl.java b/src/java/org/apache/cassandra/utils/RMIServerSocketFactoryImpl.java
index 75331ab..ec81aa3 100644
--- a/src/java/org/apache/cassandra/utils/RMIServerSocketFactoryImpl.java
+++ b/src/java/org/apache/cassandra/utils/RMIServerSocketFactoryImpl.java
@@ -1,7 +1,8 @@
package org.apache.cassandra.utils;
import java.io.IOException;
-import java.net.*;
+import java.net.InetAddress;
+import java.net.ServerSocket;
import java.rmi.server.RMIServerSocketFactory;
import javax.net.ServerSocketFactory;
@@ -9,8 +10,12 @@ import javax.net.ServerSocketFactory;
public class RMIServerSocketFactoryImpl implements RMIServerSocketFactory
{
- public ServerSocket createServerSocket(final int pPort) throws IOException {
- return ServerSocketFactory.getDefault().createServerSocket(pPort, 0, InetAddress.getLoopbackAddress());
+ public ServerSocket createServerSocket(final int pPort) throws IOException
+ {
+ ServerSocket socket = ServerSocketFactory.getDefault()
+ .createServerSocket(pPort, 0, InetAddress.getLoopbackAddress());
+ socket.setReuseAddress(true);
+ return socket;
}
public boolean equals(Object obj)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a244d24/test/unit/org/apache/cassandra/service/RMIServerSocketFactoryImplTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/service/RMIServerSocketFactoryImplTest.java b/test/unit/org/apache/cassandra/service/RMIServerSocketFactoryImplTest.java
new file mode 100644
index 0000000..3459ec3
--- /dev/null
+++ b/test/unit/org/apache/cassandra/service/RMIServerSocketFactoryImplTest.java
@@ -0,0 +1,24 @@
+package org.apache.cassandra.service;
+
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.rmi.server.RMIServerSocketFactory;
+
+import org.junit.Test;
+
+import org.apache.cassandra.utils.RMIServerSocketFactoryImpl;
+
+import static org.junit.Assert.assertTrue;
+
+
+public class RMIServerSocketFactoryImplTest
+{
+ @Test
+ public void testReusableAddrSocket() throws IOException
+ {
+ RMIServerSocketFactory serverFactory = new RMIServerSocketFactoryImpl();
+ ServerSocket socket = serverFactory.createServerSocket(7199);
+ assertTrue(socket.getReuseAddress());
+ }
+
+}