From 4e4db749eb74bf02ae956c4a9461499988f0f0ec Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 27 May 2011 20:59:35 +0100
Subject: If parsing fails in the primitive base shape (which prints out a
debug log message), also print out the name and uuid of the part containing
this shape.
This is to help in diagnosing parsing failures.
---
.../Scenes/Serialization/SceneObjectSerializer.cs | 29 +++++++++++++++++++---
1 file changed, 25 insertions(+), 4 deletions(-)
(limited to 'OpenSim/Region/Framework/Scenes/Serialization')
diff --git a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
index 872816c..47af0dd 100644
--- a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
+++ b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
@@ -570,7 +570,13 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
private static void ProcessShape(SceneObjectPart obj, XmlTextReader reader)
{
- obj.Shape = ReadShape(reader, "Shape");
+ bool errors = false;
+ obj.Shape = ReadShape(reader, "Shape", out errors);
+
+ if (errors)
+ m_log.DebugFormat(
+ "[SceneObjectSerializer]: Parsing PrimitiveBaseShape for object part {0} {1} encountered errors. Please see earlier log entries.",
+ obj.Name, obj.UUID);
}
private static void ProcessScale(SceneObjectPart obj, XmlTextReader reader)
@@ -1470,7 +1476,9 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
}
catch (Exception e)
{
- m_log.DebugFormat("[SceneObjectSerializer]: exception while parsing {0}: {1}", nodeName, e);
+ m_log.DebugFormat(
+ "[SceneObjectSerializer]: exception while parsing {0} in object {1} {2}: {3}{4}",
+ obj.Name, obj.UUID, nodeName, e.Message, e.StackTrace);
if (reader.NodeType == XmlNodeType.EndElement)
reader.Read();
}
@@ -1528,8 +1536,17 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
return tinv;
}
- static PrimitiveBaseShape ReadShape(XmlTextReader reader, string name)
+ ///
+ /// Read a shape from xml input
+ ///
+ ///
+ /// The name of the xml element containing the shape
+ /// true if any errors were encountered during parsing, false otherwise
+ /// The shape parsed
+ static PrimitiveBaseShape ReadShape(XmlTextReader reader, string name, out bool errors)
{
+ errors = false;
+
PrimitiveBaseShape shape = new PrimitiveBaseShape();
if (reader.IsEmptyElement)
@@ -1554,7 +1571,11 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
}
catch (Exception e)
{
- m_log.DebugFormat("[SceneObjectSerializer]: exception while parsing Shape {0}: {1}", nodeName, e);
+ errors = true;
+ m_log.DebugFormat(
+ "[SceneObjectSerializer]: exception while parsing Shape property {0}: {1}{2}",
+ nodeName, e.Message, e.StackTrace);
+
if (reader.NodeType == XmlNodeType.EndElement)
reader.Read();
}
--
cgit v1.1