This is an automated email from the ASF dual-hosted git repository.

apolovtsev pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 1d55cbf5ddd IGNITE-28480 Fix NPE in NettyClientMessageHandler when SSL 
handshake fails (#7940)
1d55cbf5ddd is described below

commit 1d55cbf5ddde7a433581e2740213146028097471
Author: Alexander Polovtcev <[email protected]>
AuthorDate: Tue Apr 7 15:33:57 2026 +0300

    IGNITE-28480 Fix NPE in NettyClientMessageHandler when SSL handshake fails 
(#7940)
---
 .../client/io/netty/NettyClientMessageHandler.java   | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git 
a/modules/client/src/main/java/org/apache/ignite/internal/client/io/netty/NettyClientMessageHandler.java
 
b/modules/client/src/main/java/org/apache/ignite/internal/client/io/netty/NettyClientMessageHandler.java
index 49fc23668a3..7221a52409a 100644
--- 
a/modules/client/src/main/java/org/apache/ignite/internal/client/io/netty/NettyClientMessageHandler.java
+++ 
b/modules/client/src/main/java/org/apache/ignite/internal/client/io/netty/NettyClientMessageHandler.java
@@ -28,23 +28,31 @@ import io.netty.channel.ChannelInboundHandlerAdapter;
  */
 @SuppressWarnings("resource")
 public class NettyClientMessageHandler extends ChannelInboundHandlerAdapter {
-    /** {@inheritDoc} */
     @Override
     public void channelRead(ChannelHandlerContext ctx, Object msg) {
         connection(ctx).onMessage((ByteBuf) msg);
     }
 
-    /** {@inheritDoc} */
     @Override
     public void channelInactive(ChannelHandlerContext ctx) {
-        connection(ctx).onDisconnected(null);
+        NettyClientConnection conn = connection(ctx);
+
+        if (conn != null) {
+            conn.onDisconnected(null);
+        }
     }
 
-    /** {@inheritDoc} */
     @Override
     public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
-        connection(ctx).onDisconnected(cause);
-        ctx.channel().close();
+        NettyClientConnection conn = connection(ctx);
+
+        if (conn != null) {
+            conn.onDisconnected(cause);
+
+            ctx.channel().close();
+        } else {
+            ctx.fireExceptionCaught(cause);
+        }
     }
 
     private static NettyClientConnection connection(ChannelHandlerContext ctx) 
{

Reply via email to