diff options
Diffstat (limited to 'cs/src/Ice/ThreadPool.cs')
-rwxr-xr-x | cs/src/Ice/ThreadPool.cs | 23 |
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()); |