You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2026/03/19 11:59:29 UTC
(camel) branch fix-as2-serversocket-reuseaddress created (now 8ab02f1df0a3)
This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a change to branch fix-as2-serversocket-reuseaddress
in repository https://gitbox.apache.org/repos/asf/camel.git
at 8ab02f1df0a3 Set setReuseAddress(true) on AS2 server sockets
This branch includes the following new commits:
new 8ab02f1df0a3 Set setReuseAddress(true) on AS2 server sockets
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(camel) 01/01: Set setReuseAddress(true) on AS2 server sockets
Posted by gn...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a commit to branch fix-as2-serversocket-reuseaddress
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 8ab02f1df0a3b2629a24f77cbbeb5becc71f7dae
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Thu Mar 19 12:59:14 2026 +0100
Set setReuseAddress(true) on AS2 server sockets
Without setReuseAddress(true), restarting the AS2 server quickly can
cause BindException due to TCP TIME_WAIT state on the port. Fix by
creating unbound sockets, setting setReuseAddress(true), then binding.
Co-Authored-By: Claude Opus 4.6 <no...@anthropic.com>
---
.../camel/component/as2/api/AS2AsyncMDNServerConnection.java | 8 ++++++--
.../org/apache/camel/component/as2/api/AS2ServerConnection.java | 8 ++++++--
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2AsyncMDNServerConnection.java b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2AsyncMDNServerConnection.java
index ac5be366f896..ae7ec4bb3a53 100644
--- a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2AsyncMDNServerConnection.java
+++ b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2AsyncMDNServerConnection.java
@@ -123,10 +123,14 @@ public class AS2AsyncMDNServerConnection {
public RequestListenerThread(int port, SSLContext sslContext) throws IOException {
setName(REQUEST_LISTENER_THREAD_NAME_PREFIX + port);
if (sslContext == null) {
- serverSocket = new ServerSocket(port);
+ serverSocket = new ServerSocket();
+ serverSocket.setReuseAddress(true);
+ serverSocket.bind(new java.net.InetSocketAddress(port));
} else {
SSLServerSocketFactory factory = sslContext.getServerSocketFactory();
- serverSocket = factory.createServerSocket(port);
+ serverSocket = factory.createServerSocket();
+ serverSocket.setReuseAddress(true);
+ serverSocket.bind(new java.net.InetSocketAddress(port));
}
HttpProcessor httpProcessor = HttpProcessorBuilder.create()
.add(new ResponseContent(true))
diff --git a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ServerConnection.java b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ServerConnection.java
index 7a700e01121a..1f3bfb4a7ee7 100644
--- a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ServerConnection.java
+++ b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ServerConnection.java
@@ -440,10 +440,14 @@ public class AS2ServerConnection {
this.service = service;
if (sslContext == null) {
- serversocket = new ServerSocket(port);
+ serversocket = new ServerSocket();
+ serversocket.setReuseAddress(true);
+ serversocket.bind(new java.net.InetSocketAddress(port));
} else {
SSLServerSocketFactory factory = sslContext.getServerSocketFactory();
- serversocket = factory.createServerSocket(port);
+ serversocket = factory.createServerSocket();
+ serversocket.setReuseAddress(true);
+ serversocket.bind(new java.net.InetSocketAddress(port));
}
}