aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Framework')
-rw-r--r--OpenSim/Framework/Monitoring/Watchdog.cs6
-rw-r--r--OpenSim/Framework/PrimitiveBaseShape.cs43
2 files changed, 30 insertions, 19 deletions
diff --git a/OpenSim/Framework/Monitoring/Watchdog.cs b/OpenSim/Framework/Monitoring/Watchdog.cs
index 5fb725c..9cac451 100644
--- a/OpenSim/Framework/Monitoring/Watchdog.cs
+++ b/OpenSim/Framework/Monitoring/Watchdog.cs
@@ -254,14 +254,12 @@ namespace OpenSim.Framework.Monitoring
254 254
255 twi.Cleanup(); 255 twi.Cleanup();
256 m_threads.Remove(threadID); 256 m_threads.Remove(threadID);
257
258 return true; 257 return true;
259 } 258 }
260 else 259 else
261 { 260 {
262 m_log.WarnFormat( 261 m_log.WarnFormat(
263 "[WATCHDOG]: Requested to remove thread with ID {0} but this is not being monitored", threadID); 262 "[WATCHDOG]: Requested to remove thread with ID {0} but this is not being monitored", threadID);
264
265 return false; 263 return false;
266 } 264 }
267 } 265 }
@@ -360,7 +358,7 @@ namespace OpenSim.Framework.Monitoring
360 List<ThreadWatchdogInfo> callbackInfos = null; 358 List<ThreadWatchdogInfo> callbackInfos = null;
361 List<ThreadWatchdogInfo> threadsToRemove = null; 359 List<ThreadWatchdogInfo> threadsToRemove = null;
362 360
363 const ThreadState thgone = ThreadState.Stopped | ThreadState.Aborted | ThreadState.AbortRequested; 361 const ThreadState thgone = ThreadState.Stopped;
364 362
365 lock (m_threads) 363 lock (m_threads)
366 { 364 {
@@ -368,7 +366,7 @@ namespace OpenSim.Framework.Monitoring
368 { 366 {
369 if(!m_enabled) 367 if(!m_enabled)
370 return; 368 return;
371 if(!threadInfo.Thread.IsAlive || (threadInfo.Thread.ThreadState & thgone) != 0) 369 if((threadInfo.Thread.ThreadState & thgone) != 0)
372 { 370 {
373 if(threadsToRemove == null) 371 if(threadsToRemove == null)
374 threadsToRemove = new List<ThreadWatchdogInfo>(); 372 threadsToRemove = new List<ThreadWatchdogInfo>();
diff --git a/OpenSim/Framework/PrimitiveBaseShape.cs b/OpenSim/Framework/PrimitiveBaseShape.cs
index a830551..96d78d3 100644
--- a/OpenSim/Framework/PrimitiveBaseShape.cs
+++ b/OpenSim/Framework/PrimitiveBaseShape.cs
@@ -1580,35 +1580,48 @@ namespace OpenSim.Framework
1580 { 1580 {
1581 MediaList ml = new MediaList(); 1581 MediaList ml = new MediaList();
1582 ml.ReadXml(rawXml); 1582 ml.ReadXml(rawXml);
1583 if(ml.Count == 0)
1584 return null;
1583 return ml; 1585 return ml;
1584 } 1586 }
1585 1587
1586 public void ReadXml(string rawXml) 1588 public void ReadXml(string rawXml)
1587 { 1589 {
1588 using (StringReader sr = new StringReader(rawXml)) 1590 try
1589 { 1591 {
1590 using (XmlTextReader xtr = new XmlTextReader(sr)) 1592 using (StringReader sr = new StringReader(rawXml))
1591 { 1593 {
1592 xtr.MoveToContent(); 1594 using (XmlTextReader xtr = new XmlTextReader(sr))
1595 {
1596 xtr.MoveToContent();
1593 1597
1594 string type = xtr.GetAttribute("type"); 1598 string type = xtr.GetAttribute("type");
1595 //m_log.DebugFormat("[MOAP]: Loaded media texture entry with type {0}", type); 1599 //m_log.DebugFormat("[MOAP]: Loaded media texture entry with type {0}", type);
1596 1600
1597 if (type != MEDIA_TEXTURE_TYPE) 1601 if (type != MEDIA_TEXTURE_TYPE)
1598 return; 1602 return;
1599 1603
1600 xtr.ReadStartElement("OSMedia"); 1604 xtr.ReadStartElement("OSMedia");
1605 OSD osdp = OSDParser.DeserializeLLSDXml(xtr.ReadInnerXml());
1606 if(osdp == null || !(osdp is OSDArray))
1607 return;
1601 1608
1602 OSDArray osdMeArray = (OSDArray)OSDParser.DeserializeLLSDXml(xtr.ReadInnerXml()); 1609 OSDArray osdMeArray = osdp as OSDArray;
1603 foreach (OSD osdMe in osdMeArray) 1610 if(osdMeArray.Count == 0)
1604 { 1611 return;
1605 MediaEntry me = (osdMe is OSDMap ? MediaEntry.FromOSD(osdMe) : new MediaEntry());
1606 Add(me);
1607 }
1608 1612
1609 xtr.ReadEndElement(); 1613 foreach (OSD osdMe in osdMeArray)
1614 {
1615 MediaEntry me = (osdMe is OSDMap ? MediaEntry.FromOSD(osdMe) : new MediaEntry());
1616 Add(me);
1617 }
1618 }
1610 } 1619 }
1611 } 1620 }
1621 catch
1622 {
1623 m_log.Debug("PrimitiveBaseShape] error decoding MOAP xml" );
1624 }
1612 } 1625 }
1613 1626
1614 public void ReadXml(XmlReader reader) 1627 public void ReadXml(XmlReader reader)