From bd962f7e07e4da33edcea197ef610439a4160381 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Mon, 26 Jan 2015 23:32:51 +0000 Subject: [PATCH] If an exception comes out of DoOnRezScript in DoOnRezScriptQueue(), then only fail a single script rather than halting the exntire script startup process. --- .../Region/ScriptEngine/XEngine/XEngine.cs | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index 7f37a2c062..0ff4dcf0d2 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs @@ -1054,14 +1054,25 @@ namespace OpenSim.Region.ScriptEngine.XEngine while (m_CompileQueue.Dequeue(out o)) { - if (DoOnRezScript(o)) + try { - scriptsStarted++; + if (DoOnRezScript(o)) + { + scriptsStarted++; - if (m_InitialStartup) - if (scriptsStarted % 50 == 0) - m_log.InfoFormat( - "[XEngine]: Started {0} scripts in {1}", scriptsStarted, m_Scene.Name); + if (m_InitialStartup) + if (scriptsStarted % 50 == 0) + m_log.InfoFormat( + "[XEngine]: Started {0} scripts in {1}", scriptsStarted, m_Scene.Name); + } + } + catch (Exception e) + { + m_log.Error( + string.Format( + "[XEngine]: Failure in DoOnRezScriptQueue() for item {0} in {1}. Continuing. Exception ", + o[1], m_Scene.Name), + e); } }