summaryrefslogtreecommitdiff
path: root/cs/src/Ice/ThreadPool.cs
diff options
context:
space:
mode:
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());