aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs42
1 files changed, 27 insertions, 15 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 5a586d4..470fdd7 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -1556,9 +1556,14 @@ namespace OpenSim.Region.Framework.Scenes
1556 } 1556 }
1557 1557
1558 /// <summary> 1558 /// <summary>
1559 /// Delete this group from its scene and tell all the scene presences about that deletion. 1559 /// Delete this group from its scene.
1560 /// </summary> 1560 /// </summary>
1561 /// <param name="silent">Broadcast deletions to all clients.</param> 1561 ///
1562 /// This only handles the in-world consequences of deletion (e.g. any avatars sitting on it are forcibly stood
1563 /// up and all avatars receive notification of its removal. Removal of the scene object from database backup
1564 /// must be handled by the caller.
1565 ///
1566 /// <param name="silent">If true then deletion is not broadcast to clients</param>
1562 public void DeleteGroup(bool silent) 1567 public void DeleteGroup(bool silent)
1563 { 1568 {
1564 // We need to keep track of this state in case this group is still queued for backup. 1569 // We need to keep track of this state in case this group is still queued for backup.
@@ -1729,14 +1734,21 @@ namespace OpenSim.Region.Framework.Scenes
1729 public virtual void ProcessBackup(IRegionDataStore datastore, bool forcedBackup) 1734 public virtual void ProcessBackup(IRegionDataStore datastore, bool forcedBackup)
1730 { 1735 {
1731 if (!m_isBackedUp) 1736 if (!m_isBackedUp)
1737 {
1738// m_log.DebugFormat(
1739// "[WATER WARS]: Ignoring backup of {0} {1} since object is not marked to be backed up", Name, UUID);
1732 return; 1740 return;
1733 1741 }
1734 // Since this is the top of the section of call stack for backing up a particular scene object, don't let
1735 // any exception propogate upwards.
1736 1742
1737 if (IsDeleted || UUID == UUID.Zero) 1743 if (IsDeleted || UUID == UUID.Zero)
1744 {
1745// m_log.DebugFormat(
1746// "[WATER WARS]: Ignoring backup of {0} {1} since object is marked as already deleted", Name, UUID);
1738 return; 1747 return;
1748 }
1739 1749
1750 // Since this is the top of the section of call stack for backing up a particular scene object, don't let
1751 // any exception propogate upwards.
1740 try 1752 try
1741 { 1753 {
1742 if (!m_scene.ShuttingDown || // if shutting down then there will be nothing to handle the return so leave till next restart 1754 if (!m_scene.ShuttingDown || // if shutting down then there will be nothing to handle the return so leave till next restart
@@ -1772,7 +1784,7 @@ namespace OpenSim.Region.Framework.Scenes
1772 if (HasGroupChanged) 1784 if (HasGroupChanged)
1773 { 1785 {
1774 // don't backup while it's selected or you're asking for changes mid stream. 1786 // don't backup while it's selected or you're asking for changes mid stream.
1775 if ((isTimeToPersist()) || (forcedBackup)) 1787 if (isTimeToPersist() || forcedBackup)
1776 { 1788 {
1777 // m_log.DebugFormat( 1789 // m_log.DebugFormat(
1778 // "[SCENE]: Storing {0}, {1} in {2}", 1790 // "[SCENE]: Storing {0}, {1} in {2}",
@@ -1795,19 +1807,19 @@ namespace OpenSim.Region.Framework.Scenes
1795 1807
1796 backup_group = null; 1808 backup_group = null;
1797 } 1809 }
1798 // else 1810// else
1799 // { 1811// {
1800 // m_log.DebugFormat( 1812// m_log.DebugFormat(
1801 // "[SCENE]: Did not update persistence of object {0} {1}, selected = {2}", 1813// "[SCENE]: Did not update persistence of object {0} {1}, selected = {2}",
1802 // Name, UUID, IsSelected); 1814// Name, UUID, IsSelected);
1803 // } 1815// }
1804 } 1816 }
1805 } 1817 }
1806 catch (Exception e) 1818 catch (Exception e)
1807 { 1819 {
1808 m_log.ErrorFormat( 1820 m_log.ErrorFormat(
1809 "[SCENE]: Storing of {0}, {1} in {2} failed with exception {3}\n\t{4}", 1821 "[SCENE]: Storing of {0}, {1} in {2} failed with exception {3}{4}",
1810 Name, UUID, m_scene.RegionInfo.RegionName, e, e.StackTrace); 1822 Name, UUID, m_scene.RegionInfo.RegionName, e.Message, e.StackTrace);
1811 } 1823 }
1812 } 1824 }
1813 1825
@@ -2672,7 +2684,7 @@ namespace OpenSim.Region.Framework.Scenes
2672 part.ClearUndoState(); 2684 part.ClearUndoState();
2673 } 2685 }
2674 2686
2675 m_scene.UnlinkSceneObject(objectGroup.UUID, true); 2687 m_scene.UnlinkSceneObject(objectGroup, true);
2676 objectGroup.m_isDeleted = true; 2688 objectGroup.m_isDeleted = true;
2677 2689
2678 objectGroup.lockPartsForWrite(true); 2690 objectGroup.lockPartsForWrite(true);