You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by ju...@apache.org on 2015/11/11 01:37:22 UTC

kafka git commit: KAFKA-2801; Process any remaining data in SSL network read buffer after handshake

Repository: kafka
Updated Branches:
  refs/heads/trunk 04827e6e9 -> ea702c384


KAFKA-2801; Process any remaining data in SSL network read buffer after handshake

Process any remaining data in the network read buffer in `SslTransportLayer` when `read()` is invoked. On handshake completion, there could be application data ready to be processed that was read into `netReadBuffer` during handshake processing. `read()` is already invoked from `Selector` after handshake completion, but data already read into the `netReadBuffer` was not being processed. This PR adds a check for remaining data and continues with processing data if data is available.

Author: Rajini Sivaram <ra...@googlemail.com>

Reviewers: Jun Rao <ju...@gmail.com>

Closes #493 from rajinisivaram/KAFKA-2801


Project: http://git-wip-us.apache.org/repos/asf/kafka/repo
Commit: http://git-wip-us.apache.org/repos/asf/kafka/commit/ea702c38
Tree: http://git-wip-us.apache.org/repos/asf/kafka/tree/ea702c38
Diff: http://git-wip-us.apache.org/repos/asf/kafka/diff/ea702c38

Branch: refs/heads/trunk
Commit: ea702c384fcfb5a46c5d1354498e418c5801ed30
Parents: 04827e6
Author: Rajini Sivaram <ra...@googlemail.com>
Authored: Tue Nov 10 16:37:16 2015 -0800
Committer: Jun Rao <ju...@gmail.com>
Committed: Tue Nov 10 16:37:16 2015 -0800

----------------------------------------------------------------------
 .../java/org/apache/kafka/common/network/SslTransportLayer.java    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kafka/blob/ea702c38/clients/src/main/java/org/apache/kafka/common/network/SslTransportLayer.java
----------------------------------------------------------------------
diff --git a/clients/src/main/java/org/apache/kafka/common/network/SslTransportLayer.java b/clients/src/main/java/org/apache/kafka/common/network/SslTransportLayer.java
index ffd2a9e..c7873ad 100644
--- a/clients/src/main/java/org/apache/kafka/common/network/SslTransportLayer.java
+++ b/clients/src/main/java/org/apache/kafka/common/network/SslTransportLayer.java
@@ -440,7 +440,7 @@ public class SslTransportLayer implements TransportLayer {
             netReadBuffer = Utils.ensureCapacity(netReadBuffer, netReadBufferSize());
             if (netReadBuffer.remaining() > 0) {
                 int netread = socketChannel.read(netReadBuffer);
-                if (netread == 0) return netread;
+                if (netread == 0 && netReadBuffer.position() == 0) return netread;
                 else if (netread < 0) throw new EOFException("EOF during read");
             }
             do {