From b9ef6ed0471d19e0e64330cb4020d1de26fd8f1c Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Wed, 12 Mar 2008 18:11:08 +0000 Subject: * Don't abort (and keep failing) the update if one Entity gives us an exception when we try to update it * This doesn't remove bug 757, but does largely remove the worst consequences --- OpenSim/Region/Environment/Scenes/InnerScene.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Environment/Scenes/InnerScene.cs') diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs index 02d0e20..7d21935 100644 --- a/OpenSim/Region/Environment/Scenes/InnerScene.cs +++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs @@ -217,13 +217,26 @@ namespace OpenSim.Region.Environment.Scenes } } + /// + /// Process all pending updates + /// internal void ProcessUpdates() { lock (m_updateList) { for (int i = 0; i < m_updateList.Count; i++) { - m_updateList[i].Update(); + EntityBase entity = m_updateList[i]; + + // Don't abort the whole update if one entity happens to give us an exception. + try + { + m_updateList[i].Update(); + } + catch (Exception e) + { + m_log.ErrorFormat("[INNERSCENE]: Failed to update {0}, {1} - {2}", entity.Name, entity.m_uuid, e); + } } m_updateList.Clear(); } -- cgit v1.1