aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueThreadClass.cs22
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/Executor.cs16
2 files changed, 31 insertions, 7 deletions
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueThreadClass.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueThreadClass.cs
index 2306bce..f568dc5 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueThreadClass.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueThreadClass.cs
@@ -196,13 +196,15 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
196 SceneObjectPart part = 196 SceneObjectPart part =
197 lastScriptEngine.World.GetSceneObjectPart( 197 lastScriptEngine.World.GetSceneObjectPart(
198 lastLocalID); 198 lastLocalID);
199
200 if (part != null && part.ParentGroup != null) 199 if (part != null && part.ParentGroup != null)
201 lastScriptEngine.World.DeleteSceneObject( 200 lastScriptEngine.World.DeleteSceneObject(
202 part.ParentGroup); 201 part.ParentGroup);
203 } 202 }
204 catch (Exception) 203 catch (Exception e)
205 { 204 {
205 if (lastScriptEngine != null)
206 lastScriptEngine.Log.WarnFormat("[{0}]: Exception {1} thrown",ScriptEngineName,e.GetType().ToString());
207 throw e;
206 } 208 }
207 } 209 }
208 } 210 }
@@ -288,11 +290,21 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
288 InExecution = false; 290 InExecution = false;
289 } 291 }
290 } 292 }
293 catch (SelfDeleteException sde)
294 {
295 // Make sure this exception isn't consumed here... we need it
296 throw sde;
297 }
298 catch (TargetInvocationException tie)
299 {
300 // Probably don't need to special case this one
301 throw tie;
302 }
291 catch (Exception e) 303 catch (Exception e)
292 { 304 {
293 InExecution = false; 305 InExecution = false;
294 string text = FormatException(e, QIS.LineMap); 306 string text = FormatException(e, QIS.LineMap);
295 307
296 // DISPLAY ERROR INWORLD 308 // DISPLAY ERROR INWORLD
297 309
298// if (e.InnerException != null) 310// if (e.InnerException != null)
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()