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

Arno Noordover commented on CAMEL-10756:
----------------------------------------

I'm doubting about what the developers of mina would advise.
According to 
https://mina.apache.org/mina-project/apidocs/org/apache/mina/core/service/IoHandler.html#exceptionCaught-org.apache.mina.core.session.IoSession-java.lang.Throwable-
 the connection is closed if the cause is an instance of IoException.
I think the "producer" should be in control of the closing of the session not 
the "handler".
But still.. I think this solution will work given that exceptions should be 
exceptional.

> 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