diff --git a/OpenSim/Region/Environment/Scenes/AsyncSceneObjectGroupDeleter.cs b/OpenSim/Region/Environment/Scenes/AsyncSceneObjectGroupDeleter.cs
index 19ba5fa3e9..20cf3183f2 100644
--- a/OpenSim/Region/Environment/Scenes/AsyncSceneObjectGroupDeleter.cs
+++ b/OpenSim/Region/Environment/Scenes/AsyncSceneObjectGroupDeleter.cs
@@ -114,7 +114,11 @@ namespace OpenSim.Region.Environment.Scenes
}
}
- private bool InventoryDeQueueAndDelete()
+ ///
+ /// Move the next object in the queue to inventory. Then delete it properly from the scene.
+ ///
+ ///
+ public bool InventoryDeQueueAndDelete()
{
DeleteToInventoryHolder x = null;
diff --git a/OpenSim/Region/Environment/Scenes/Tests/SceneObjectTests.cs b/OpenSim/Region/Environment/Scenes/Tests/SceneObjectTests.cs
index 1cc95fc8a6..a24161e5e1 100644
--- a/OpenSim/Region/Environment/Scenes/Tests/SceneObjectTests.cs
+++ b/OpenSim/Region/Environment/Scenes/Tests/SceneObjectTests.cs
@@ -91,7 +91,12 @@ namespace OpenSim.Region.Environment.Scenes.Tests
{
UUID agentId = UUID.Parse("00000000-0000-0000-0000-000000000001");
- TestScene scene = SceneTestUtils.SetupScene();
+ TestScene scene = SceneTestUtils.SetupScene();
+
+ // Turn off the timer on the async sog deleter - we'll crank it by hand for this test.
+ AsyncSceneObjectGroupDeleter sogd = scene.SceneObjectGroupDeleter;
+ sogd.Enabled = false;
+
SceneObjectPart part = SceneTestUtils.AddSceneObject(scene);
IClientAPI client = SceneTestUtils.AddRootAgent(scene, agentId);
@@ -99,6 +104,12 @@ namespace OpenSim.Region.Environment.Scenes.Tests
SceneObjectPart retrievedPart = scene.GetSceneObjectPart(part.LocalId);
Assert.That(retrievedPart, Is.Not.Null);
+
+ sogd.InventoryDeQueueAndDelete();
+ SceneObjectPart retrievedPart2 = scene.GetSceneObjectPart(part.LocalId);
+ Assert.That(retrievedPart2, Is.Null);
+
+ // TODO: test that the object actually made it successfully into inventory
}
}
}
\ No newline at end of file