Fix broken internode SSL patch by yukim; reviewed by Jason Brown for CASSANDRA-9884
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/33e3af59 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/33e3af59 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/33e3af59 Branch: refs/heads/trunk Commit: 33e3af59f9521f7d3e9ddccdd107a05d1c6fb939 Parents: 325aeb7 Author: Yuki Morishita <yu...@apache.org> Authored: Wed Jul 29 14:36:51 2015 -0500 Committer: Yuki Morishita <yu...@apache.org> Committed: Wed Jul 29 14:39:15 2015 -0500 ---------------------------------------------------------------------- CHANGES.txt | 1 + src/java/org/apache/cassandra/net/OutboundTcpConnection.java | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/33e3af59/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index ec12cb8..4b079d4 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -2,6 +2,7 @@ * UDF / UDA execution time in trace (CASSANDRA-9723) * Remove repair snapshot leftover on startup (CASSANDRA-7357) * Use random nodes for batch log when only 2 racks (CASSANDRA-8735) + * Fix broken internode SSL (CASSANDRA-9884) Merged from 2.1: * Fix handling of enable/disable autocompaction (CASSANDRA-9899) * Add consistency level to tracing ouput (CASSANDRA-9827) http://git-wip-us.apache.org/repos/asf/cassandra/blob/33e3af59/src/java/org/apache/cassandra/net/OutboundTcpConnection.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/net/OutboundTcpConnection.java b/src/java/org/apache/cassandra/net/OutboundTcpConnection.java index b05232b..ee30073 100644 --- a/src/java/org/apache/cassandra/net/OutboundTcpConnection.java +++ b/src/java/org/apache/cassandra/net/OutboundTcpConnection.java @@ -24,6 +24,8 @@ import java.net.InetAddress; import java.net.Socket; import java.net.SocketException; import java.nio.ByteBuffer; +import java.nio.channels.Channels; +import java.nio.channels.WritableByteChannel; import java.util.*; import java.util.concurrent.BlockingQueue; import java.util.concurrent.CountDownLatch; @@ -401,7 +403,9 @@ public class OutboundTcpConnection extends Thread } } - out = new BufferedDataOutputStreamPlus(socket.getChannel(), BUFFER_SIZE); + // SocketChannel may be null when using SSL + WritableByteChannel ch = socket.getChannel(); + out = new BufferedDataOutputStreamPlus(ch != null ? ch : Channels.newChannel(socket.getOutputStream()), BUFFER_SIZE); out.writeInt(MessagingService.PROTOCOL_MAGIC); writeHeader(out, targetVersion, shouldCompressConnection());