aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared
diff options
context:
space:
mode:
authorCharles Krinke2008-10-04 19:04:58 +0000
committerCharles Krinke2008-10-04 19:04:58 +0000
commit2fdb42aec03be76f8208d591009994aff7a5c2d8 (patch)
tree05ad8d869f42e5854b3c0782fcd4b68d62cfebab /OpenSim/Region/ScriptEngine/Shared
parentRemove two warnings by assigning string provider = "" (diff)
downloadopensim-SC-2fdb42aec03be76f8208d591009994aff7a5c2d8.zip
opensim-SC-2fdb42aec03be76f8208d591009994aff7a5c2d8.tar.gz
opensim-SC-2fdb42aec03be76f8208d591009994aff7a5c2d8.tar.bz2
opensim-SC-2fdb42aec03be76f8208d591009994aff7a5c2d8.tar.xz
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.
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/Executor.cs16
1 files changed, 14 insertions, 2 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/Executor.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/Executor.cs
index aee03ef..5c1c57a 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/Executor.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/Executor.cs
@@ -156,7 +156,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
156 string EventName = state + "_event_" + FunctionName; 156 string EventName = state + "_event_" + FunctionName;
157 157
158//#if DEBUG 158//#if DEBUG
159// Console.WriteLine("ScriptEngine: Script event function name: " + EventName); 159 //Console.WriteLine("ScriptEngine: Script event function name: " + EventName);
160//#endif 160//#endif
161 161
162 if (Events.ContainsKey(EventName) == false) 162 if (Events.ContainsKey(EventName) == false)
@@ -191,7 +191,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
191 //Console.WriteLine("ScriptEngine: Executing function name: " + EventName); 191 //Console.WriteLine("ScriptEngine: Executing function name: " + EventName);
192#endif 192#endif
193 // Found 193 // Found
194 ev.Invoke(m_Script, args); 194 try
195 {
196 ev.Invoke(m_Script, args);
197 }
198 catch (TargetInvocationException tie)
199 {
200 // Grab the inner exception and rethrow it
201 throw tie.InnerException;
202 }
203 catch (Exception e)
204 {
205 throw e;
206 }
195 } 207 }
196 208
197 protected void initEventFlags() 209 protected void initEventFlags()