summaryrefslogtreecommitdiff
path: root/cs/src/Ice/ThreadPool.cs
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 /cs/src/Ice/ThreadPool.cs
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 'cs/src/Ice/ThreadPool.cs')
-rwxr-xr-xcs/src/Ice/ThreadPool.cs23
1 files changed, 22 insertions, 1 deletions
diff --git a/cs/src/Ice/ThreadPool.cs b/cs/src/Ice/ThreadPool.cs
index 9159ff4e05d..790cac8edb8 100755
--- a/cs/src/Ice/ThreadPool.cs
+++ b/cs/src/Ice/ThreadPool.cs
@@ -558,7 +558,7 @@ namespace IceInternal
{
continue;
}
- catch(Ice.LocalException ex)
+ catch(Ice.SocketException ex)
{
#if TRACE_EXCEPTION
trace("informing handler (" + handler.GetType().FullName + ") about "
@@ -568,6 +568,27 @@ namespace IceInternal
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.GetType().FullName + ") about "
+ + ex.GetType().FullName + " exception " + ex);
+ #endif
+
+ handler.exception(ex);
+ }
+ continue;
+ }
stream.swap(handler._stream);
Debug.Assert(stream.pos() == stream.size());