[
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)