GH-9694: Remove duplicate SocketChannel initialization

Fixes: #9694
Issue link: https://github.com/spring-projects/spring-integration/issues/9694

- Add null check before closing `socketChannel` in catch block
- Prevents potential `NullPointerException` during error handling

**Auto-cherry-pick to `6.3.x`**
This commit is contained in:
Jooyoung Pyoung
2024-12-07 06:59:19 +09:00
committed by GitHub
parent 5313c42e17
commit 7427d4e2dd

View File

@@ -40,6 +40,7 @@ import org.springframework.util.Assert;
* @author Artem Bilan
* @author Christian Tzolov
* @author Ngoc Nhan
* @author Jooyoung Pyoung
*
* @since 2.0
*
@@ -85,8 +86,9 @@ public class TcpNioClientConnectionFactory extends
@Override
protected TcpConnectionSupport buildNewConnection() {
SocketChannel socketChannel = null;
try {
SocketChannel socketChannel = SocketChannel.open();
socketChannel = SocketChannel.open();
setSocketAttributes(socketChannel.socket());
connect(socketChannel);
TcpNioConnection connection =
@@ -113,6 +115,14 @@ public class TcpNioClientConnectionFactory extends
return wrappedConnection;
}
catch (IOException e) {
try {
if (socketChannel != null) {
socketChannel.close();
}
}
catch (IOException e2) {
logger.error(e2, "Error closing socket channel");
}
throw new UncheckedIOException(e);
}
catch (InterruptedException e) {