diff options
Diffstat (limited to 'jetty-client/src/main/java/org/eclipse/jetty/client/HttpConnection.java')
-rw-r--r-- | jetty-client/src/main/java/org/eclipse/jetty/client/HttpConnection.java | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/jetty-client/src/main/java/org/eclipse/jetty/client/HttpConnection.java b/jetty-client/src/main/java/org/eclipse/jetty/client/HttpConnection.java index 5555ff2e50..ac09392372 100644 --- a/jetty-client/src/main/java/org/eclipse/jetty/client/HttpConnection.java +++ b/jetty-client/src/main/java/org/eclipse/jetty/client/HttpConnection.java @@ -285,8 +285,11 @@ public class HttpConnection implements Connection return; } } - catch (IOException e) - { + catch (Throwable e) + { + if (e instanceof ThreadDeath) + throw (ThreadDeath)e; + synchronized (this) { if (_exchange != null) @@ -295,9 +298,18 @@ public class HttpConnection implements Connection _exchange.setStatus(HttpExchange.STATUS_EXCEPTED); } } - failed = true; Log.warn("IOE on "+_exchange); - throw e; + failed = true; + if (e instanceof IOException) + throw (IOException)e; + + if (e instanceof Error) + throw (Error)e; + + if (e instanceof RuntimeException) + throw (RuntimeException)e; + + throw new RuntimeException(e); } finally { |