Mantis#2316. Thank you kindly, CMickeyb for a patch that:
Addresses llDie issues. The attached patch catches run time exceptions that occur during method invocation (of type TargetInvocationException) and exposes the internal exception. This makes it possible to pass out the SelfDeleteException. Also added handlers in a couple places to make sure that exception was being passed out far enough to be handled correctly. Tested on DNE.0.6.0-stable
parent
275d4d30a2
commit
2fdb42aec0
|
@ -196,13 +196,15 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
SceneObjectPart part =
|
||||
lastScriptEngine.World.GetSceneObjectPart(
|
||||
lastLocalID);
|
||||
|
||||
if (part != null && part.ParentGroup != null)
|
||||
lastScriptEngine.World.DeleteSceneObject(
|
||||
part.ParentGroup);
|
||||
}
|
||||
catch (Exception)
|
||||
catch (Exception e)
|
||||
{
|
||||
if (lastScriptEngine != null)
|
||||
lastScriptEngine.Log.WarnFormat("[{0}]: Exception {1} thrown",ScriptEngineName,e.GetType().ToString());
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -288,6 +290,16 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
|||
InExecution = false;
|
||||
}
|
||||
}
|
||||
catch (SelfDeleteException sde)
|
||||
{
|
||||
// Make sure this exception isn't consumed here... we need it
|
||||
throw sde;
|
||||
}
|
||||
catch (TargetInvocationException tie)
|
||||
{
|
||||
// Probably don't need to special case this one
|
||||
throw tie;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
InExecution = false;
|
||||
|
|
|
@ -191,8 +191,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
|
|||
//Console.WriteLine("ScriptEngine: Executing function name: " + EventName);
|
||||
#endif
|
||||
// Found
|
||||
try
|
||||
{
|
||||
ev.Invoke(m_Script, args);
|
||||
}
|
||||
catch (TargetInvocationException tie)
|
||||
{
|
||||
// Grab the inner exception and rethrow it
|
||||
throw tie.InnerException;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
protected void initEventFlags()
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue