[ 
https://issues.apache.org/jira/browse/DIRMINA-803?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12922047#action_12922047
 ] 

Emmanuel Lecharny commented on DIRMINA-803:
-------------------------------------------

You are right ! 

When I removed the flushWithoutFuture() method and merged its code, I simply 
ignored the test for nulity.

My bad ! Will fix it in trunk, and probably release a MINA 2.0.1 asap

Thanks for the report !

> ProtocolCodecFilter.filterWrite() is no longer thread-safe
> ----------------------------------------------------------
>
>                 Key: DIRMINA-803
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-803
>             Project: MINA
>          Issue Type: Bug
>          Components: Filter
>    Affects Versions: 2.0.0
>            Reporter: Stuart Scott
>
> In revision 'r912149 | elecharny | 2010-02-20 22:04:32 +0500 (Sat, 20 Feb 
> 2010)' the loop that flushes the encoded messages was modified and is no 
> longer thread-safe. In the trunk the queue is checked if it is empty then 
> polled for the next element. Between these calls another thread could have 
> taken the last element in the queue and the element is not checked if it is 
> null.
> Starting at line 328:
> while (!bufferQueue.isEmpty()) {
>     Object encodedMessage = bufferQueue.poll();
> ...
> could be replaced with the previous loop:
> for (;;) {
>     Object encodedMessage = bufferQueue.poll();
>     if (encodedMessage == null) {
>         break;
>     }
> ...
> to make the method thread-safe again.
> The same issue exists in ProtocolEncoderOutputImpl.flush().

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to