[ 
https://issues.apache.org/jira/browse/CAMEL-10756?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15854171#comment-15854171
 ] 

Thomas Papke commented on CAMEL-10756:
--------------------------------------

Just my two cents on this: I think closing the session in an mina internal 
error would make sense. E.g. If Mina receive UDP packages and of them is 
causing an session exception, further processing might make no sense. From my 
understandning the "disconnect" flag is intended in case i want to stop the 
session after valid processing the request.

I have prepared a proposal which fix the test and switch back to a basic close 
connection behavior as suggested by Arno:
https://github.com/Thopap/camel/commit/16d1f57640752d8c5a8fcace1299decc50176c46

> Mina2 Producer "hang" until timeout if the response message could not be 
> decoded
> --------------------------------------------------------------------------------
>
>                 Key: CAMEL-10756
>                 URL: https://issues.apache.org/jira/browse/CAMEL-10756
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-mina2
>    Affects Versions: 2.18.1
>            Reporter: Thomas Papke
>         Attachments: camel_mina2.patch
>
>
> I have tried to upgrade from camel 2.16 to 2.18 and run into an issue with 
> camel-mina2. It looks like CAMEL-10024 has maybe introduced this issue.
> *The scenario which fail:*
> A Mina2 producer send a request to a server, the server provide a response 
> which could not be interpreted/decoded by a custom codec on the producer side 
> (e.g. due to invalid encoding).
> *Expected behavior:*
> * The Exception from the decoder on the producer side will be directly 
> propogated to the caller. The mina2 session will be closed.
> *Current behavior:*
> * Instead of the exception from the decoder, the producer wait until the 
> timeout is reached and the caller get a timeout exception after the timeout 
> is reached.
> *First analysis:*
> I have attached a patch for the camel-mina2 module which contain a test 
> {{org.apache.camel.component.mina2.Mina2CustomCodecTest.testProducerFailInDecodingResponse()}}
>  to reproduce this issue. 
> *If i revert the changes done within CAMEL-10024, the test run correct.* If I 
> debug into the new code, i see that the producer "hang" in 
> {{Mina2Producer.closeSessionIfNeededAndAwaitCloseInHandler(IoSession)}} -- 
> {{closeLatch.await(timeout, TimeUnit.MILLISECONDS);}} which was introduced 
> with CAML-10024.
> I could not yet provide a fix as well, since I don't really understand the 
> details of CAMEL-10024. But hopefully my testcase helps to fix this issue.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to