From d23222cbc69f1c8e40c2e9509347e0a1a2734860 Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Fri, 18 Jan 2008 23:45:16 +0000 Subject: Added block for scenario: global exception handler called in loop when exception happens inside global exception handler Added InnerException to output --- OpenSim/Region/Application/Application.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Application') diff --git a/OpenSim/Region/Application/Application.cs b/OpenSim/Region/Application/Application.cs index d253775..bf44274 100644 --- a/OpenSim/Region/Application/Application.cs +++ b/OpenSim/Region/Application/Application.cs @@ -80,6 +80,7 @@ namespace OpenSim } } + private static bool _IsHandlingException = false; // Make sure we don't go recursive on ourself /// /// Global exception handler -- all unhandlet exceptions end up here :) /// @@ -87,6 +88,9 @@ namespace OpenSim /// private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { + if (_IsHandlingException) + return; + _IsHandlingException = true; // TODO: Add config option to allow users to turn off error reporting // TODO: Post error report (disabled for now) @@ -96,7 +100,10 @@ namespace OpenSim msg += "\r\n"; msg += "Exception: " + e.ExceptionObject.ToString() + "\r\n"; - + Exception ex = (Exception)e.ExceptionObject; + if (ex.InnerException != null) + msg += "InnerException: " + ex.InnerException.ToString() + "\r\n"; + msg += "\r\n"; msg += "Application is terminating: " + e.IsTerminating.ToString() + "\r\n"; @@ -118,6 +125,8 @@ namespace OpenSim { // Ignore } + + _IsHandlingException=false; } } -- cgit v1.1