diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/XEngine/XEngine.cs')
-rw-r--r-- | OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | 51 |
1 files changed, 38 insertions, 13 deletions
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index f6cb7df..2d17977 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | |||
@@ -656,7 +656,19 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
656 | if (m_Assemblies.ContainsKey(instance.AssetID)) | 656 | if (m_Assemblies.ContainsKey(instance.AssetID)) |
657 | { | 657 | { |
658 | string assembly = m_Assemblies[instance.AssetID]; | 658 | string assembly = m_Assemblies[instance.AssetID]; |
659 | instance.SaveState(assembly); | 659 | |
660 | try | ||
661 | { | ||
662 | instance.SaveState(assembly); | ||
663 | } | ||
664 | catch (Exception e) | ||
665 | { | ||
666 | m_log.Error( | ||
667 | string.Format( | ||
668 | "[XEngine]: Failed final state save for script {0}.{1}, item UUID {2}, prim UUID {3} in {4}. Exception ", | ||
669 | instance.PrimName, instance.ScriptName, instance.ItemID, instance.ObjectID, World.Name) | ||
670 | , e); | ||
671 | } | ||
660 | } | 672 | } |
661 | 673 | ||
662 | // Clear the event queue and abort the instance thread | 674 | // Clear the event queue and abort the instance thread |
@@ -778,7 +790,18 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
778 | assembly = m_Assemblies[i.AssetID]; | 790 | assembly = m_Assemblies[i.AssetID]; |
779 | 791 | ||
780 | 792 | ||
781 | i.SaveState(assembly); | 793 | try |
794 | { | ||
795 | i.SaveState(assembly); | ||
796 | } | ||
797 | catch (Exception e) | ||
798 | { | ||
799 | m_log.Error( | ||
800 | string.Format( | ||
801 | "[XEngine]: Failed to save state of script {0}.{1}, item UUID {2}, prim UUID {3} in {4}. Exception ", | ||
802 | i.PrimName, i.ScriptName, i.ItemID, i.ObjectID, World.Name) | ||
803 | , e); | ||
804 | } | ||
782 | } | 805 | } |
783 | 806 | ||
784 | instances.Clear(); | 807 | instances.Clear(); |
@@ -1053,10 +1076,12 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1053 | return false; | 1076 | return false; |
1054 | } | 1077 | } |
1055 | 1078 | ||
1056 | UUID assetID = item.AssetID; | 1079 | m_log.DebugFormat( |
1080 | "[XEngine] Loading script {0}.{1}, item UUID {2}, prim UUID {3} @ {4}.{5}", | ||
1081 | part.ParentGroup.RootPart.Name, item.Name, itemID, part.UUID, | ||
1082 | part.ParentGroup.RootPart.AbsolutePosition, part.ParentGroup.Scene.RegionInfo.RegionName); | ||
1057 | 1083 | ||
1058 | //m_log.DebugFormat("[XEngine] Compiling script {0} ({1} on object {2})", | 1084 | UUID assetID = item.AssetID; |
1059 | // item.Name, itemID.ToString(), part.ParentGroup.RootPart.Name); | ||
1060 | 1085 | ||
1061 | ScenePresence presence = m_Scene.GetScenePresence(item.OwnerID); | 1086 | ScenePresence presence = m_Scene.GetScenePresence(item.OwnerID); |
1062 | 1087 | ||
@@ -1235,10 +1260,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1235 | item.Name, startParam, postOnRez, | 1260 | item.Name, startParam, postOnRez, |
1236 | stateSource, m_MaxScriptQueue); | 1261 | stateSource, m_MaxScriptQueue); |
1237 | 1262 | ||
1238 | m_log.DebugFormat( | 1263 | // m_log.DebugFormat( |
1239 | "[XEngine] Loaded script {0}.{1}, script UUID {2}, prim UUID {3} @ {4}.{5}", | 1264 | // "[XEngine] Loaded script {0}.{1}, script UUID {2}, prim UUID {3} @ {4}.{5}", |
1240 | part.ParentGroup.RootPart.Name, item.Name, assetID, part.UUID, | 1265 | // part.ParentGroup.RootPart.Name, item.Name, assetID, part.UUID, |
1241 | part.ParentGroup.RootPart.AbsolutePosition, part.ParentGroup.Scene.RegionInfo.RegionName); | 1266 | // part.ParentGroup.RootPart.AbsolutePosition, part.ParentGroup.Scene.RegionInfo.RegionName); |
1242 | 1267 | ||
1243 | if (presence != null) | 1268 | if (presence != null) |
1244 | { | 1269 | { |
@@ -1554,9 +1579,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1554 | else if (p[i] is string) | 1579 | else if (p[i] is string) |
1555 | lsl_p[i] = new LSL_Types.LSLString((string)p[i]); | 1580 | lsl_p[i] = new LSL_Types.LSLString((string)p[i]); |
1556 | else if (p[i] is Vector3) | 1581 | else if (p[i] is Vector3) |
1557 | lsl_p[i] = new LSL_Types.Vector3(((Vector3)p[i]).X, ((Vector3)p[i]).Y, ((Vector3)p[i]).Z); | 1582 | lsl_p[i] = new LSL_Types.Vector3((Vector3)p[i]); |
1558 | else if (p[i] is Quaternion) | 1583 | else if (p[i] is Quaternion) |
1559 | lsl_p[i] = new LSL_Types.Quaternion(((Quaternion)p[i]).X, ((Quaternion)p[i]).Y, ((Quaternion)p[i]).Z, ((Quaternion)p[i]).W); | 1584 | lsl_p[i] = new LSL_Types.Quaternion((Quaternion)p[i]); |
1560 | else if (p[i] is float) | 1585 | else if (p[i] is float) |
1561 | lsl_p[i] = new LSL_Types.LSLFloat((float)p[i]); | 1586 | lsl_p[i] = new LSL_Types.LSLFloat((float)p[i]); |
1562 | else | 1587 | else |
@@ -1580,9 +1605,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1580 | else if (p[i] is string) | 1605 | else if (p[i] is string) |
1581 | lsl_p[i] = new LSL_Types.LSLString((string)p[i]); | 1606 | lsl_p[i] = new LSL_Types.LSLString((string)p[i]); |
1582 | else if (p[i] is Vector3) | 1607 | else if (p[i] is Vector3) |
1583 | lsl_p[i] = new LSL_Types.Vector3(((Vector3)p[i]).X, ((Vector3)p[i]).Y, ((Vector3)p[i]).Z); | 1608 | lsl_p[i] = new LSL_Types.Vector3((Vector3)p[i]); |
1584 | else if (p[i] is Quaternion) | 1609 | else if (p[i] is Quaternion) |
1585 | lsl_p[i] = new LSL_Types.Quaternion(((Quaternion)p[i]).X, ((Quaternion)p[i]).Y, ((Quaternion)p[i]).Z, ((Quaternion)p[i]).W); | 1610 | lsl_p[i] = new LSL_Types.Quaternion((Quaternion)p[i]); |
1586 | else if (p[i] is float) | 1611 | else if (p[i] is float) |
1587 | lsl_p[i] = new LSL_Types.LSLFloat((float)p[i]); | 1612 | lsl_p[i] = new LSL_Types.LSLFloat((float)p[i]); |
1588 | else | 1613 | else |