From bad316b05f22278a5c68eceb7218fc805c5d4ecf Mon Sep 17 00:00:00 2001 From: Norman Maurer Date: Wed, 27 Mar 2013 12:28:02 +0100 Subject: [PATCH] [#1036] Use special ConnectTimeoutException if a connection timeout happens while using NIO. Not use it for OIO as it may would break users app that detect SocketTimeoutException here --- .../channel/ConnectTimeoutException.java | 33 +++++++++++++++++++ .../channel/socket/nio/NioClientBoss.java | 3 +- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/jboss/netty/channel/ConnectTimeoutException.java diff --git a/src/main/java/org/jboss/netty/channel/ConnectTimeoutException.java b/src/main/java/org/jboss/netty/channel/ConnectTimeoutException.java new file mode 100644 index 0000000000..ac00519bf0 --- /dev/null +++ b/src/main/java/org/jboss/netty/channel/ConnectTimeoutException.java @@ -0,0 +1,33 @@ +/* + * Copyright 2013 The Netty Project + * + * The Netty Project licenses this file to you under the Apache License, + * version 2.0 (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ +package org.jboss.netty.channel; + +import java.net.ConnectException; + +/** + * {@link ConnectException} which will be thrown if a connection could + * not be established because of a connection timeout. + */ +public class ConnectTimeoutException extends ConnectException { + private static final long serialVersionUID = 2317065249988317463L; + + public ConnectTimeoutException(String msg) { + super(msg); + } + + public ConnectTimeoutException() { + } +} diff --git a/src/main/java/org/jboss/netty/channel/socket/nio/NioClientBoss.java b/src/main/java/org/jboss/netty/channel/socket/nio/NioClientBoss.java index d370a0d85e..3195f58658 100644 --- a/src/main/java/org/jboss/netty/channel/socket/nio/NioClientBoss.java +++ b/src/main/java/org/jboss/netty/channel/socket/nio/NioClientBoss.java @@ -17,6 +17,7 @@ package org.jboss.netty.channel.socket.nio; import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.ChannelFuture; +import org.jboss.netty.channel.ConnectTimeoutException; import org.jboss.netty.util.ThreadNameDeterminer; import org.jboss.netty.util.ThreadRenamingRunnable; import org.jboss.netty.util.Timeout; @@ -133,7 +134,7 @@ public final class NioClientBoss extends AbstractNioSelector implements Boss { currentTimeNanos >= ch.connectDeadlineNanos) { if (cause == null) { - cause = new ConnectException("connection timed out: " + ch.requestedRemoteAddress); + cause = new ConnectTimeoutException("connection timed out: " + ch.requestedRemoteAddress); } ch.connectFuture.setFailure(cause);