From 13ba2f2d830bf53b9c96b40357bbdd612ff21f16 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 26 Jan 2015 23:32:51 +0000 Subject: If an exception comes out of DoOnRezScript in DoOnRezScriptQueue(), then only fail a single script rather than halting the exntire script startup process. --- OpenSim/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 dd5bc0d..3f77371 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs @@ -1051,14 +1051,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); } } -- cgit v1.1