This is an automated email from the ASF dual-hosted git repository. johnnyv pushed a commit to branch bugfix/DIRMINA1132 in repository https://gitbox.apache.org/repos/asf/mina.git
commit 81272b9aea790447e126036773a94deb71373bae Author: Jonathan Valliere <jon.valli...@emoten.com> AuthorDate: Sat Jul 24 12:00:07 2021 -0400 Fix for ssl2 request backlog --- .../java/org/apache/mina/filter/ssl2/SSL2Filter.java | 2 ++ .../java/org/apache/mina/filter/ssl2/SSL2HandlerG0.java | 17 +++++++++++++++-- .../org/apache/mina/filter/ssl2/SSL2SimpleTest.java | 12 ++++++------ 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/mina-core/src/main/java/org/apache/mina/filter/ssl2/SSL2Filter.java b/mina-core/src/main/java/org/apache/mina/filter/ssl2/SSL2Filter.java index 8bd9fa4..052f806 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/ssl2/SSL2Filter.java +++ b/mina-core/src/main/java/org/apache/mina/filter/ssl2/SSL2Filter.java @@ -211,6 +211,8 @@ public class SSL2Filter extends IoFilterAdapter { } x.open(next); + + super.sessionOpened(next, session); } @Override diff --git a/mina-core/src/main/java/org/apache/mina/filter/ssl2/SSL2HandlerG0.java b/mina-core/src/main/java/org/apache/mina/filter/ssl2/SSL2HandlerG0.java index 86d8d23..803927f 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/ssl2/SSL2HandlerG0.java +++ b/mina-core/src/main/java/org/apache/mina/filter/ssl2/SSL2HandlerG0.java @@ -119,8 +119,21 @@ public class SSL2HandlerG0 extends SSL2Handler { LOGGER.debug("{} write() - source {}", toString(), request); } - this.mWriteQueue.add(request); - this.lflush(next); + if (this.mWriteQueue.isEmpty()) { + if (lwrite(next, request) == false) { + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("{} write() - unable to write right now, saving request for later", toString(), request); + } + + this.mWriteQueue.add(request); + } + } else { + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("{} write() - unable to write right now, saving request for later", toString(), request); + } + + this.mWriteQueue.add(request); + } } /** diff --git a/mina-core/src/test/java/org/apache/mina/filter/ssl2/SSL2SimpleTest.java b/mina-core/src/test/java/org/apache/mina/filter/ssl2/SSL2SimpleTest.java index 88e92b5..beb6577 100644 --- a/mina-core/src/test/java/org/apache/mina/filter/ssl2/SSL2SimpleTest.java +++ b/mina-core/src/test/java/org/apache/mina/filter/ssl2/SSL2SimpleTest.java @@ -71,16 +71,16 @@ public class SSL2SimpleTest { final IoSession client_socket = connect_future.getSession(); - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - - } +// try { +// Thread.sleep(1000); +// } catch (InterruptedException e) { +// +// } client_socket.write(createWriteRequest()); try { - Thread.sleep(100); + Thread.sleep(2000); } catch (InterruptedException e) { }