[ 
https://issues.apache.org/jira/browse/DIRMINA-1126?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Amir Katz updated DIRMINA-1126:
-------------------------------
    Description: 
We have promoted our codebase from 2.1.0 to 2.1.3 and some clients started 
reporting corrupted byte buffer since they weren't able to decode it.

Bisecting the issue leads to a change introduced in 2.1.1 

[https://github.com/apache/mina/commit/2d08d530961597b9f21dff861725f08e73fb9291/#diff-84dd8cbe057e8d10a034715a2fa3074cL27]

Bisecting the code lead to this code change:

 
{code:java}
if (!(encodedMessage instanceof IoBuffer) || ((IoBuffer) 
encodedMessage).hasRemaining()) {
 - SocketAddress destination = writeRequest.getDestination();
 - WriteRequest encodedWriteRequest = new EncodedWriteRequest(encodedMessage, 
null, destination);
 + writeRequest.setMessage(encodedMessage);
 - nextFilter.filterWrite(session, encodedWriteRequest);
 + nextFilter.filterWrite(session, writeRequest);
}
 
{code}
Reverting this change in 2.1.3 showed this resolve the issue.

  was:
We have promoted our codebase from 2.1.0 to 2.1.3 and some clients started 
reporting corrupted byte buffer since they weren't able to decode it.

Bisecting the issue leads to a change introduced in 2.1.1 

[https://github.com/apache/mina/commit/2d08d530961597b9f21dff861725f08e73fb9291/#diff-84dd8cbe057e8d10a034715a2fa3074cL27]

Bisecting the code lead to this code change:

 
{code:java}
if (!(encodedMessage instanceof IoBuffer) || ((IoBuffer) 
encodedMessage).hasRemaining()) {
 - SocketAddress destination = writeRequest.getDestination();
 - WriteRequest encodedWriteRequest = new EncodedWriteRequest(encodedMessage, 
null,     destination);
 + writeRequest.setMessage(encodedMessage);
 - nextFilter.filterWrite(session, encodedWriteRequest);
 + nextFilter.filterWrite(session, writeRequest);
}
 
{code}
Reverting this change in 2.1.3 showed this resolve the issue.


> filterWrite in ProtocolCodecFilter can send corrupted writeRequest message to 
> the next filter
> ---------------------------------------------------------------------------------------------
>
>                 Key: DIRMINA-1126
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-1126
>             Project: MINA
>          Issue Type: Bug
>          Components: Filter
>    Affects Versions: 2.1.1
>            Reporter: Amir Katz
>            Priority: Major
>             Fix For: 2.1.4
>
>
> We have promoted our codebase from 2.1.0 to 2.1.3 and some clients started 
> reporting corrupted byte buffer since they weren't able to decode it.
> Bisecting the issue leads to a change introduced in 2.1.1 
> [https://github.com/apache/mina/commit/2d08d530961597b9f21dff861725f08e73fb9291/#diff-84dd8cbe057e8d10a034715a2fa3074cL27]
> Bisecting the code lead to this code change:
>  
> {code:java}
> if (!(encodedMessage instanceof IoBuffer) || ((IoBuffer) 
> encodedMessage).hasRemaining()) {
>  - SocketAddress destination = writeRequest.getDestination();
>  - WriteRequest encodedWriteRequest = new EncodedWriteRequest(encodedMessage, 
> null, destination);
>  + writeRequest.setMessage(encodedMessage);
>  - nextFilter.filterWrite(session, encodedWriteRequest);
>  + nextFilter.filterWrite(session, writeRequest);
> }
>  
> {code}
> Reverting this change in 2.1.3 showed this resolve the issue.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org
For additional commands, e-mail: dev-h...@mina.apache.org

Reply via email to