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

Claus Ibsen commented on CAMEL-21909:
-------------------------------------

You are welcome to see if you can improve this and send a PR so the original 
exception is preserved.

> camel-netty-http: SslClosedEngineException during exception handling
> --------------------------------------------------------------------
>
>                 Key: CAMEL-21909
>                 URL: https://issues.apache.org/jira/browse/CAMEL-21909
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-netty-http
>    Affects Versions: 4.8.5
>         Environment: Camel 4.8.x
> Spring Boot 3.4.x
> eclipse-temurin:17-jre-alpine image
>            Reporter: Björn Pettersson
>            Priority: Minor
>
> We use camel-netty-http and have recently seen a few errors on https 
> connections which indicate some issue with exception handling. It may be 
> applicable to the camel-netty component as well.
> From the stacktrace below it seems like there is a connection issue, which 
> closes the SSLEngine and triggers ClientChannelHandler.exceptionCaught(...). 
> This will call NettyHelper.close(...) which fails with 
> "SslClosedEngineException: SSLEngine closed already"
> The result is that the original exception is hidden, making it harder to 
> resolve what is the root cause of the connection issue.
> Unfortunately I have not found a good way to reproduce.
>  
> {code:java}
> Stacktrace=io.netty.handler.ssl.SslClosedEngineException: SSLEngine closed 
> already
>     at io.netty.handler.ssl.SslHandler.wrap(SslHandler.java:924)
>     at io.netty.handler.ssl.SslHandler.wrapAndFlush(SslHandler.java:828)
>     at io.netty.handler.ssl.SslHandler.flush(SslHandler.java:809)
>     at io.netty.handler.ssl.SslHandler.flush(SslHandler.java:2129)
>     at 
> io.netty.handler.ssl.SslHandler.closeOutboundAndChannel(SslHandler.java:2098)
>     at io.netty.handler.ssl.SslHandler.close(SslHandler.java:760)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.invokeClose(AbstractChannelHandlerContext.java:761)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:733)
>     at 
> io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.close(CombinedChannelDuplexHandler.java:505)
>     at 
> io.netty.channel.ChannelOutboundHandlerAdapter.close(ChannelOutboundHandlerAdapter.java:77)
>     at 
> io.netty.channel.CombinedChannelDuplexHandler.close(CombinedChannelDuplexHandler.java:316)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.invokeClose(AbstractChannelHandlerContext.java:757)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:733)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.close(AbstractChannelHandlerContext.java:560)
>     at 
> io.netty.channel.DefaultChannelPipeline.close(DefaultChannelPipeline.java:906)
>     at io.netty.channel.AbstractChannel.close(AbstractChannel.java:243)
>     at 
> org.apache.camel.component.netty.NettyHelper.close(NettyHelper.java:123)
>     at 
> org.apache.camel.component.netty.handlers.ClientChannelHandler.exceptionCaught(ClientChannelHandler.java:98)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317)
>     at 
> io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireExceptionCaught(CombinedChannelDuplexHandler.java:424)
>     at 
> io.netty.channel.ChannelHandlerAdapter.exceptionCaught(ChannelHandlerAdapter.java:92)
>     at 
> io.netty.channel.CombinedChannelDuplexHandler$1.fireExceptionCaught(CombinedChannelDuplexHandler.java:145)
>     at 
> io.netty.channel.ChannelInboundHandlerAdapter.exceptionCaught(ChannelInboundHandlerAdapter.java:143)
>     at 
> io.netty.channel.CombinedChannelDuplexHandler.exceptionCaught(CombinedChannelDuplexHandler.java:231)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317)
>     at io.netty.handler.ssl.SslHandler.exceptionCaught(SslHandler.java:1222)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317)
>     at 
> io.netty.channel.DefaultChannelPipeline$HeadContext.exceptionCaught(DefaultChannelPipeline.java:1324)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325)
>     at 
> io.netty.channel.DefaultChannelPipeline.fireExceptionCaught(DefaultChannelPipeline.java:856)
>     at 
> io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.handleReadException(AbstractNioByteChannel.java:125)
>     at 
> io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:177)
>     at 
> io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:796)
>     at 
> io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:732)
>     at 
> io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:658)
>     at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
>     at 
> io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998)
>     at 
> io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
>     at java.base/java.lang.Thread.run(Unknown Source) {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to