aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorTedd Hansen2008-01-18 23:45:16 +0000
committerTedd Hansen2008-01-18 23:45:16 +0000
commitd23222cbc69f1c8e40c2e9509347e0a1a2734860 (patch)
treee4d61a437d068c6070d26ebc5e4f2d31aa0873e5
parent* Return of the avatar wobble. (diff)
downloadopensim-SC-d23222cbc69f1c8e40c2e9509347e0a1a2734860.zip
opensim-SC-d23222cbc69f1c8e40c2e9509347e0a1a2734860.tar.gz
opensim-SC-d23222cbc69f1c8e40c2e9509347e0a1a2734860.tar.bz2
opensim-SC-d23222cbc69f1c8e40c2e9509347e0a1a2734860.tar.xz
Added block for scenario: global exception handler called in loop when exception happens inside global exception handler
Added InnerException to output
-rw-r--r--OpenSim/Region/Application/Application.cs11
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs4
2 files changed, 10 insertions, 5 deletions
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
80 } 80 }
81 } 81 }
82 82
83 private static bool _IsHandlingException = false; // Make sure we don't go recursive on ourself
83 /// <summary> 84 /// <summary>
84 /// Global exception handler -- all unhandlet exceptions end up here :) 85 /// Global exception handler -- all unhandlet exceptions end up here :)
85 /// </summary> 86 /// </summary>
@@ -87,6 +88,9 @@ namespace OpenSim
87 /// <param name="e"></param> 88 /// <param name="e"></param>
88 private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) 89 private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
89 { 90 {
91 if (_IsHandlingException)
92 return;
93 _IsHandlingException = true;
90 // TODO: Add config option to allow users to turn off error reporting 94 // TODO: Add config option to allow users to turn off error reporting
91 // TODO: Post error report (disabled for now) 95 // TODO: Post error report (disabled for now)
92 96
@@ -96,7 +100,10 @@ namespace OpenSim
96 msg += "\r\n"; 100 msg += "\r\n";
97 101
98 msg += "Exception: " + e.ExceptionObject.ToString() + "\r\n"; 102 msg += "Exception: " + e.ExceptionObject.ToString() + "\r\n";
99 103 Exception ex = (Exception)e.ExceptionObject;
104 if (ex.InnerException != null)
105 msg += "InnerException: " + ex.InnerException.ToString() + "\r\n";
106
100 msg += "\r\n"; 107 msg += "\r\n";
101 msg += "Application is terminating: " + e.IsTerminating.ToString() + "\r\n"; 108 msg += "Application is terminating: " + e.IsTerminating.ToString() + "\r\n";
102 109
@@ -118,6 +125,8 @@ namespace OpenSim
118 { 125 {
119 // Ignore 126 // Ignore
120 } 127 }
128
129 _IsHandlingException=false;
121 } 130 }
122 131
123 } 132 }
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 6a10969..c6f9aff 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -1696,19 +1696,15 @@ namespace OpenSim.Region.Environment.Scenes
1696 return LLUUID.Zero; 1696 return LLUUID.Zero;
1697 } 1697 }
1698 1698
1699 private static readonly object _performParcelPrimCountUpdateMutex = new object();
1700 /// <summary> 1699 /// <summary>
1701 /// 1700 ///
1702 /// </summary> 1701 /// </summary>
1703 public void performParcelPrimCountUpdate() 1702 public void performParcelPrimCountUpdate()
1704 { 1703 {
1705 lock (_performParcelPrimCountUpdateMutex)
1706 {
1707 m_LandManager.resetAllLandPrimCounts(); 1704 m_LandManager.resetAllLandPrimCounts();
1708 m_eventManager.TriggerParcelPrimCountUpdate(); 1705 m_eventManager.TriggerParcelPrimCountUpdate();
1709 m_LandManager.finalizeLandPrimCountUpdate(); 1706 m_LandManager.finalizeLandPrimCountUpdate();
1710 m_LandManager.landPrimCountTainted = false; 1707 m_LandManager.landPrimCountTainted = false;
1711 }
1712 } 1708 }
1713 1709
1714 /// <summary> 1710 /// <summary>