On object deserialization, go back to logging errors at DEBUG level rather than ERROR. Restore extra log message if shape processing fails.
Logging level was DEBUG beforeiar_mods312e145
(Fri Feb 3 2012).312e145
also accidentally removed the 'general error' log message if any shape deserialization failed. This commit restores it, though this has no functional impact.
parent
7273e05995
commit
189c67db95
|
@ -49,15 +49,16 @@ namespace OpenSim.Framework.Serialization.External
|
||||||
/// <param name="nodeToFill"></param>
|
/// <param name="nodeToFill"></param>
|
||||||
/// <param name="processors">/param>
|
/// <param name="processors">/param>
|
||||||
/// <param name="xtr"></param>
|
/// <param name="xtr"></param>
|
||||||
public static void ExecuteReadProcessors<NodeType>(
|
/// <returns>true on successful, false if there were any processing failures</returns>
|
||||||
|
public static bool ExecuteReadProcessors<NodeType>(
|
||||||
NodeType nodeToFill, Dictionary<string, Action<NodeType, XmlTextReader>> processors, XmlTextReader xtr)
|
NodeType nodeToFill, Dictionary<string, Action<NodeType, XmlTextReader>> processors, XmlTextReader xtr)
|
||||||
{
|
{
|
||||||
ExecuteReadProcessors(
|
return ExecuteReadProcessors(
|
||||||
nodeToFill,
|
nodeToFill,
|
||||||
processors,
|
processors,
|
||||||
xtr,
|
xtr,
|
||||||
(o, name, e)
|
(o, name, e)
|
||||||
=> m_log.ErrorFormat(
|
=> m_log.DebugFormat(
|
||||||
"[ExternalRepresentationUtils]: Exception while parsing element {0}, continuing. Exception {1}{2}",
|
"[ExternalRepresentationUtils]: Exception while parsing element {0}, continuing. Exception {1}{2}",
|
||||||
name, e.Message, e.StackTrace));
|
name, e.Message, e.StackTrace));
|
||||||
}
|
}
|
||||||
|
@ -71,12 +72,15 @@ namespace OpenSim.Framework.Serialization.External
|
||||||
/// <param name="parseExceptionAction">
|
/// <param name="parseExceptionAction">
|
||||||
/// Action to take if there is a parsing problem. This will usually just be to log the exception
|
/// Action to take if there is a parsing problem. This will usually just be to log the exception
|
||||||
/// </param>
|
/// </param>
|
||||||
public static void ExecuteReadProcessors<NodeType>(
|
/// <returns>true on successful, false if there were any processing failures</returns>
|
||||||
|
public static bool ExecuteReadProcessors<NodeType>(
|
||||||
NodeType nodeToFill,
|
NodeType nodeToFill,
|
||||||
Dictionary<string, Action<NodeType, XmlTextReader>> processors,
|
Dictionary<string, Action<NodeType, XmlTextReader>> processors,
|
||||||
XmlTextReader xtr,
|
XmlTextReader xtr,
|
||||||
Action<NodeType, string, Exception> parseExceptionAction)
|
Action<NodeType, string, Exception> parseExceptionAction)
|
||||||
{
|
{
|
||||||
|
bool errors = false;
|
||||||
|
|
||||||
string nodeName = string.Empty;
|
string nodeName = string.Empty;
|
||||||
while (xtr.NodeType != XmlNodeType.EndElement)
|
while (xtr.NodeType != XmlNodeType.EndElement)
|
||||||
{
|
{
|
||||||
|
@ -95,6 +99,7 @@ namespace OpenSim.Framework.Serialization.External
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
errors = true;
|
||||||
parseExceptionAction(nodeToFill, nodeName, e);
|
parseExceptionAction(nodeToFill, nodeName, e);
|
||||||
|
|
||||||
if (xtr.NodeType == XmlNodeType.EndElement)
|
if (xtr.NodeType == XmlNodeType.EndElement)
|
||||||
|
@ -107,6 +112,8 @@ namespace OpenSim.Framework.Serialization.External
|
||||||
xtr.ReadOuterXml(); // ignore
|
xtr.ReadOuterXml(); // ignore
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return errors;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -140,6 +147,7 @@ namespace OpenSim.Framework.Serialization.External
|
||||||
UUID.TryParse(node.InnerText, out uuid);
|
UUID.TryParse(node.InnerText, out uuid);
|
||||||
creator = userService.GetUserAccount(scopeID, uuid);
|
creator = userService.GetUserAccount(scopeID, uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (node.Name == "CreatorData" && node.InnerText != null && node.InnerText != string.Empty)
|
if (node.Name == "CreatorData" && node.InnerText != null && node.InnerText != string.Empty)
|
||||||
hasCreatorData = true;
|
hasCreatorData = true;
|
||||||
|
|
||||||
|
@ -163,7 +171,6 @@ namespace OpenSim.Framework.Serialization.External
|
||||||
doc.Save(wr);
|
doc.Save(wr);
|
||||||
return wr.ToString();
|
return wr.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1470,7 +1470,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
|
||||||
m_SOPXmlProcessors,
|
m_SOPXmlProcessors,
|
||||||
reader,
|
reader,
|
||||||
(o, nodeName, e)
|
(o, nodeName, e)
|
||||||
=> m_log.ErrorFormat(
|
=> m_log.DebugFormat(
|
||||||
"[SceneObjectSerializer]: Exception while parsing {0} in object {1} {2}: {3}{4}",
|
"[SceneObjectSerializer]: Exception while parsing {0} in object {1} {2}: {3}{4}",
|
||||||
((SceneObjectPart)o).Name, ((SceneObjectPart)o).UUID, nodeName, e.Message, e.StackTrace));
|
((SceneObjectPart)o).Name, ((SceneObjectPart)o).UUID, nodeName, e.Message, e.StackTrace));
|
||||||
|
|
||||||
|
@ -1535,14 +1535,18 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
|
||||||
|
|
||||||
reader.ReadStartElement(name, String.Empty); // Shape
|
reader.ReadStartElement(name, String.Empty); // Shape
|
||||||
|
|
||||||
ExternalRepresentationUtils.ExecuteReadProcessors(
|
errors = ExternalRepresentationUtils.ExecuteReadProcessors(
|
||||||
shape,
|
shape,
|
||||||
m_ShapeXmlProcessors,
|
m_ShapeXmlProcessors,
|
||||||
reader,
|
reader,
|
||||||
(o, nodeName, e)
|
(o, nodeName, e)
|
||||||
=> m_log.ErrorFormat(
|
=>
|
||||||
"[SceneObjectSerializer]: Exception while parsing Shape property {0}: {1}{2}",
|
{
|
||||||
nodeName, e.Message, e.StackTrace));
|
m_log.DebugFormat(
|
||||||
|
"[SceneObjectSerializer]: Exception while parsing Shape property {0}: {1}{2}",
|
||||||
|
nodeName, e.Message, e.StackTrace);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
reader.ReadEndElement(); // Shape
|
reader.ReadEndElement(); // Shape
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue