Updated Branches: refs/heads/master 11415ce63 -> 74946f1b6
[SSHD-252] SshException MAC Error in org.apache.sshd.common.session.AbstractSession.decode when using Nio2ServiceFactory Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/74946f1b Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/74946f1b Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/74946f1b Branch: refs/heads/master Commit: 74946f1b68ffdd207af5b6102693030e39693340 Parents: 11415ce Author: Guillaume Nodet <[email protected]> Authored: Tue Dec 3 20:19:34 2013 +0100 Committer: Guillaume Nodet <[email protected]> Committed: Tue Dec 3 20:19:34 2013 +0100 ---------------------------------------------------------------------- .../java/org/apache/sshd/common/io/nio2/Nio2Session.java | 8 ++++++-- sshd-core/src/test/java/org/apache/sshd/LoadTest.java | 9 +++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/74946f1b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java index f49ef2a..f4dbf32 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java @@ -142,8 +142,12 @@ public class Nio2Session implements IoSession { if (currentWrite.compareAndSet(null, future)) { socket.write(future.buffer, null, new CompletionHandler<Integer, Object>() { public void completed(Integer result, Object attachment) { - future.setWritten(); - finishWrite(); + if (future.buffer.hasRemaining()) { + socket.write(future.buffer, null, this); + } else { + future.setWritten(); + finishWrite(); + } } public void failed(Throwable exc, Object attachment) { future.setException(exc); http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/74946f1b/sshd-core/src/test/java/org/apache/sshd/LoadTest.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/test/java/org/apache/sshd/LoadTest.java b/sshd-core/src/test/java/org/apache/sshd/LoadTest.java index 2fd30a7..4385699 100644 --- a/sshd-core/src/test/java/org/apache/sshd/LoadTest.java +++ b/sshd-core/src/test/java/org/apache/sshd/LoadTest.java @@ -73,6 +73,15 @@ public class LoadTest { } @Test + public void testHighLoad() throws Exception { + final StringBuilder response = new StringBuilder(1000000); + for (int i = 0; i < 100000; i++) { + response.append("0123456789"); + } + test(response.toString(), 1, 100); + } + + @Test public void testBigResponse() throws Exception { final StringBuilder response = new StringBuilder(1000000); for (int i = 0; i < 100000; i++) {
