diff options
author | Charles Krinke | 2008-10-06 00:51:36 +0000 |
---|---|---|
committer | Charles Krinke | 2008-10-06 00:51:36 +0000 |
commit | dedc1baeb7f77afa292b851efd73aeae955ac725 (patch) | |
tree | 15cffdbf8b269dbca61e7a784884a87565df1a31 /OpenSim/Region | |
parent | Mantis#1207. Thank you, TGlion for a patch that addresses: (diff) | |
download | opensim-SC_OLD-dedc1baeb7f77afa292b851efd73aeae955ac725.zip opensim-SC_OLD-dedc1baeb7f77afa292b851efd73aeae955ac725.tar.gz opensim-SC_OLD-dedc1baeb7f77afa292b851efd73aeae955ac725.tar.bz2 opensim-SC_OLD-dedc1baeb7f77afa292b851efd73aeae955ac725.tar.xz |
Mantis#2336. Thank you kindly, Ralphos for a patch that:
Prevent EventAbortException inner exceptions of
TargetInvocationException being re-thrown from
OpenSim.Region.ScriptEngine.Shared.ScriptBase.
Executor.ExecuteEvent
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Runtime/Executor.cs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/Executor.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/Executor.cs index 90598c1..43e3f3c 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/Executor.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/Executor.cs | |||
@@ -191,14 +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 | try | 194 | try |
195 | { | 195 | { |
196 | ev.Invoke(m_Script, args); | 196 | ev.Invoke(m_Script, args); |
197 | } | 197 | } |
198 | catch (TargetInvocationException tie) | 198 | catch (TargetInvocationException tie) |
199 | { | 199 | { |
200 | // Grab the inner exception and rethrow it | 200 | // Grab the inner exception and rethrow it, unless the inner |
201 | throw tie.InnerException; | 201 | // exception is an EventAbortException as this indicates event |
202 | // invokation termination due to a state change. | ||
203 | if ( !(tie.InnerException is EventAbortException) ) | ||
204 | { | ||
205 | throw tie.InnerException; | ||
206 | } | ||
202 | } | 207 | } |
203 | catch (Exception e) | 208 | catch (Exception e) |
204 | { | 209 | { |