diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs index b1b1fc5..b012a08 100644 --- a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs +++ b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs | |||
@@ -1361,9 +1361,27 @@ namespace OpenSim.Region.Framework.Scenes.Serialization | |||
1361 | 1361 | ||
1362 | private static void ProcessShpMedia(PrimitiveBaseShape shp, XmlReader reader) | 1362 | private static void ProcessShpMedia(PrimitiveBaseShape shp, XmlReader reader) |
1363 | { | 1363 | { |
1364 | // Get inner XML and pass to MediaList parser | 1364 | string value = String.Empty; |
1365 | string value = reader.ReadInnerXml(); | 1365 | try |
1366 | shp.Media = PrimitiveBaseShape.MediaList.FromXml(value); | 1366 | { |
1367 | // The STANDARD content of Media elemet is escaped XML string (with > etc). | ||
1368 | value = reader.ReadElementContentAsString("Media", String.Empty); | ||
1369 | shp.Media = PrimitiveBaseShape.MediaList.FromXml(value); | ||
1370 | } | ||
1371 | catch (XmlException e) | ||
1372 | { | ||
1373 | // There are versions of OAR files that contain unquoted XML. | ||
1374 | // ie ONE comercial fork that never wanted their oars to be read by our code | ||
1375 | try | ||
1376 | { | ||
1377 | value = reader.ReadInnerXml(); | ||
1378 | shp.Media = PrimitiveBaseShape.MediaList.FromXml(value); | ||
1379 | } | ||
1380 | catch | ||
1381 | { | ||
1382 | m_log.ErrorFormat("[SERIALIZER] Failed parsing halcyon MOAP information"); | ||
1383 | } | ||
1384 | } | ||
1367 | } | 1385 | } |
1368 | 1386 | ||
1369 | #endregion | 1387 | #endregion |