You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by jo...@apache.org on 2020/05/08 18:02:18 UTC
[mina] branch 2.1.X updated: Bugfix DIRMINA-1126
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
The following commit(s) were added to refs/heads/2.1.X by this push:
new 963a6ff Bugfix DIRMINA-1126
963a6ff is described below
commit 963a6ff56ba236707ee2711b2958176884c53ea8
Author: johnnyv <jo...@apache.org>
AuthorDate: Thu May 7 09:33:32 2020 -0400
Bugfix DIRMINA-1126
Fixes reuse of filter argument WriteRequest when more than one Object is
produced by the ProtocolEncoder
Fix for binding exception inheritance
---
.../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();