diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2005-09-09 12:31:37 +0000 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2005-09-09 12:31:37 +0000 |
commit | e5b38e22e9ab7bc537e41ca083caa752b29cc47c (patch) | |
tree | 351dbdb1fc250e1f7f9c76864ed1a4946b291ce2 /java/src/IceInternal/ThreadPool.java | |
parent | Bug 430: udp close on transient exceptions (diff) | |
download | ice-e5b38e22e9ab7bc537e41ca083caa752b29cc47c.tar.bz2 ice-e5b38e22e9ab7bc537e41ca083caa752b29cc47c.tar.xz ice-e5b38e22e9ab7bc537e41ca083caa752b29cc47c.zip |
bug 430: udp close on transient exceptions
Diffstat (limited to 'java/src/IceInternal/ThreadPool.java')
-rw-r--r-- | java/src/IceInternal/ThreadPool.java | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/java/src/IceInternal/ThreadPool.java b/java/src/IceInternal/ThreadPool.java index 116a22404b1..dafe47b8a21 100644 --- a/java/src/IceInternal/ThreadPool.java +++ b/java/src/IceInternal/ThreadPool.java @@ -678,7 +678,7 @@ public final class ThreadPool { continue; } - catch(Ice.LocalException ex) + catch(Ice.SocketException ex) { if(TRACE_EXCEPTION) { @@ -690,6 +690,29 @@ public final class ThreadPool handler.exception(ex); continue; } + catch(Ice.LocalException ex) + { + if(handler.datagram()) + { + if(_instance.properties().getPropertyAsInt("Ice.Warn.Connections") > 0) + { + _instance.logger().warning("datagram connection exception:\n" + ex + + handler.toString()); + } + } + else + { + if(TRACE_EXCEPTION) + { + trace("informing handler (" + handler.getClass().getName() + + ") about exception " + ex); + ex.printStackTrace(); + } + + handler.exception(ex); + } + continue; + } stream.swap(handler._stream); assert(stream.pos() == stream.size()); |