If an exception comes out of DoOnRezScript in DoOnRezScriptQueue(), then only fail a single script rather than halting the exntire script startup process.

0.8.1-post-fixes
Justin Clark-Casey (justincc) 2015-01-26 23:32:51 +00:00
parent 1bed3aff0b
commit 13ba2f2d83
1 changed files with 17 additions and 6 deletions

View File

@ -1050,6 +1050,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine
int scriptsStarted = 0; int scriptsStarted = 0;
while (m_CompileQueue.Dequeue(out o)) while (m_CompileQueue.Dequeue(out o))
{
try
{ {
if (DoOnRezScript(o)) if (DoOnRezScript(o))
{ {
@ -1061,6 +1063,15 @@ namespace OpenSim.Region.ScriptEngine.XEngine
"[XEngine]: Started {0} scripts in {1}", scriptsStarted, m_Scene.Name); "[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);
}
}
if (m_InitialStartup) if (m_InitialStartup)
m_log.InfoFormat( m_log.InfoFormat(