summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/ThreadPool.java
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2005-09-09 12:31:37 +0000
committerDwayne Boone <dwayne@zeroc.com>2005-09-09 12:31:37 +0000
commite5b38e22e9ab7bc537e41ca083caa752b29cc47c (patch)
tree351dbdb1fc250e1f7f9c76864ed1a4946b291ce2 /java/src/IceInternal/ThreadPool.java
parentBug 430: udp close on transient exceptions (diff)
downloadice-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.java25
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());