You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Thomas Papke (JIRA)" <ji...@apache.org> on 2016/03/22 12:32:25 UTC

[jira] [Created] (CAMEL-9739) Mina2Consumer exception handler do close session also for IOException

Thomas Papke created CAMEL-9739:
-----------------------------------

             Summary: Mina2Consumer exception handler do close session also for IOException
                 Key: CAMEL-9739
                 URL: https://issues.apache.org/jira/browse/CAMEL-9739
             Project: Camel
          Issue Type: Bug
          Components: camel-mina2
    Affects Versions: 2.16.2
            Reporter: Thomas Papke


The camel-mina2 consumer Exception handler ({{org.apache.camel.component.mina2.Mina2Consumer.ReceiveHandler.exceptionCaught(IoSession, Throwable)}}
Is an implementation of the Mina2 interface {{org.apache.mina.core.service.IoHandler}}. The Javadoc Mina2 documentation of exceptionCaught explicitly mention, that Mina2 will close the connection for all IOExceptions automatically. But camel-mina2 seems to close the connection for any kind of exception.

*Current behavior:* If an error occurs on the transport layer (e.g. secure TCP connection where the certificate was not trusted and a SSLException occure), I saw the following warning:
{code}
org.apache.camel.component.mina2.Mina2Consumer#exceptionCaught(376) - Closing session as an exception was thrown from MINA
{code}
And also an error from mina2:
{code}
org.apache.mina.filter.ssl.SslHandler#destroy(210) - Unexpected exception from SSLEngine.closeInbound().
" javax.net.ssl.SSLException: Inbound closed before receiving peer's close_notify: possible truncation attack?
{code}

>From a functional perspective, beside the annoying log entries, it looks like the SSL error details are sometime not send properly back to the client.

*Current workaround:* I don’t have one.

*Suggested bugfix:* Implement the Mina2Consumer exception handling similar to {{org.apache.mina.handler.stream.StreamIoHandler.exceptionCaught(IoSession, Throwable)}} and do not handle IoException and simply rethrow them. E.g.
{code}
if (cause instanceof IOException) {
	LOG.info("IOException will be closed by Mina itself")
	return;
}
{code}




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)