This is an automated email from the ASF dual-hosted git repository. johnnyv pushed a commit to branch 2.1.X in repository https://gitbox.apache.org/repos/asf/mina.git
commit eb00f70780bcc2b7438c077396d09cafb8b78c3e Author: johnnyv <john...@apache.org> AuthorDate: Fri May 8 14:22:33 2020 -0400 Merge bugfix/DIRMINA-1126 --- .../apache/mina/core/write/DefaultWriteRequest.java | 2 +- .../apache/mina/filter/codec/ProtocolCodecFilter.java | 19 ++++++++++++------- .../mina/transport/socket/nio/NioSocketAcceptor.java | 6 ++---- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/mina-core/src/main/java/org/apache/mina/core/write/DefaultWriteRequest.java b/mina-core/src/main/java/org/apache/mina/core/write/DefaultWriteRequest.java index 8324c6a..49fe961 100644 --- a/mina-core/src/main/java/org/apache/mina/core/write/DefaultWriteRequest.java +++ b/mina-core/src/main/java/org/apache/mina/core/write/DefaultWriteRequest.java @@ -221,7 +221,7 @@ public class DefaultWriteRequest implements WriteRequest { } this.message = message; - originalMessage = message; + this.originalMessage = message; if (message instanceof IoBuffer) { // duplicate it, so that any modification made on it diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java b/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java index 628e4f2..a460b3d 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java @@ -333,13 +333,18 @@ public class ProtocolCodecFilter extends IoFilterAdapter { break; } - // Flush only when the buffer has remaining. - if (!(encodedMessage instanceof IoBuffer) || ((IoBuffer) encodedMessage).hasRemaining()) { - writeRequest.setMessage(encodedMessage); - - nextFilter.filterWrite(session, writeRequest); - } - } + // Flush only when the buffer has remaining. + if (!(encodedMessage instanceof IoBuffer) || ((IoBuffer) encodedMessage).hasRemaining()) { + if (bufferQueue.isEmpty()) { + writeRequest.setMessage(encodedMessage); + nextFilter.filterWrite(session, writeRequest); + } else { + SocketAddress destination = writeRequest.getDestination(); + WriteRequest encodedWriteRequest = new EncodedWriteRequest(encodedMessage, null, destination); + nextFilter.filterWrite(session, encodedWriteRequest); + } + } + } } catch (Exception e) { ProtocolEncoderException pee; diff --git a/mina-core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java b/mina-core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java index 5090d78..dc9e302 100644 --- a/mina-core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java +++ b/mina-core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java @@ -266,10 +266,8 @@ implements SocketAcceptor { } catch (IOException ioe) { // Add some info regarding the address we try to bind to the // message - String newMessage = "Error while binding on " + localAddress + "\n" + "original message : " - + ioe.getMessage(); - Exception e = new IOException(newMessage); - e.initCause(ioe.getCause()); + String newMessage = "Error while binding on " + localAddress; + Exception e = new IOException(newMessage, ioe); // And close the channel channel.close();