diff --git a/jetty-io/src/main/java/org/eclipse/jetty/io/ClientConnector.java b/jetty-io/src/main/java/org/eclipse/jetty/io/ClientConnector.java index 414db0623366..c62310d84a81 100644 --- a/jetty-io/src/main/java/org/eclipse/jetty/io/ClientConnector.java +++ b/jetty-io/src/main/java/org/eclipse/jetty/io/ClientConnector.java @@ -486,7 +486,7 @@ private void setSocketOption(SocketChannel channel, SocketOption option, catch (Throwable x) { if (LOG.isDebugEnabled()) - LOG.debug("Could not configure {} to {} on {}", option, value, channel); + LOG.debug("Could not configure {} to {} on {}", option, value, channel, x); } } diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/ServerConnector.java b/jetty-server/src/main/java/org/eclipse/jetty/server/ServerConnector.java index 25592a2260d0..4468c21fe02d 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/ServerConnector.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/ServerConnector.java @@ -19,6 +19,7 @@ import java.net.ServerSocket; import java.net.Socket; import java.net.SocketException; +import java.net.SocketOption; import java.net.StandardSocketOptions; import java.nio.channels.Channel; import java.nio.channels.SelectableChannel; @@ -332,10 +333,10 @@ protected ServerSocketChannel openAcceptChannel() throws IOException { InetSocketAddress bindAddress = getHost() == null ? new InetSocketAddress(getPort()) : new InetSocketAddress(getHost(), getPort()); serverChannel = ServerSocketChannel.open(); + setSocketOption(serverChannel, StandardSocketOptions.SO_REUSEADDR, getReuseAddress()); + setSocketOption(serverChannel, StandardSocketOptions.SO_REUSEPORT, isReusePort()); try { - serverChannel.setOption(StandardSocketOptions.SO_REUSEADDR, getReuseAddress()); - serverChannel.setOption(StandardSocketOptions.SO_REUSEPORT, isReusePort()); serverChannel.bind(bindAddress, getAcceptQueueSize()); } catch (Throwable e) @@ -348,6 +349,19 @@ protected ServerSocketChannel openAcceptChannel() throws IOException return serverChannel; } + private void setSocketOption(ServerSocketChannel channel, SocketOption option, T value) + { + try + { + channel.setOption(option, value); + } + catch (Throwable x) + { + if (LOG.isDebugEnabled()) + LOG.debug("Could not configure {} to {} on {}", option, value, channel, x); + } + } + @Override public void close() {