Since i've narrowed the fault down to one function, add some spammy debug to try and fix ghost prims on HUDs in future. Note, the console only gets messages if there is a problem, so it's harmless.
parent
3ce335c6f8
commit
52e2360e91
|
@ -496,6 +496,11 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
||||||
|
|
||||||
if (item != null)
|
if (item != null)
|
||||||
{
|
{
|
||||||
|
if (item.ID == UUID.Zero)
|
||||||
|
{
|
||||||
|
m_log.Debug("[InventoryAccessModule]: Inventory object has UUID.Zero! Position 1");
|
||||||
|
}
|
||||||
|
|
||||||
AssetBase rezAsset = m_Scene.AssetService.Get(item.AssetID.ToString());
|
AssetBase rezAsset = m_Scene.AssetService.Get(item.AssetID.ToString());
|
||||||
|
|
||||||
if (rezAsset != null)
|
if (rezAsset != null)
|
||||||
|
@ -518,11 +523,19 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
||||||
itemId = item.ID;
|
itemId = item.ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (item.ID == UUID.Zero)
|
||||||
|
{
|
||||||
|
m_log.Debug("[InventoryAccessModule]: Inventory object has UUID.Zero! Position 2");
|
||||||
|
}
|
||||||
|
|
||||||
string xmlData = Utils.BytesToString(rezAsset.Data);
|
string xmlData = Utils.BytesToString(rezAsset.Data);
|
||||||
SceneObjectGroup group
|
SceneObjectGroup group
|
||||||
= SceneObjectSerializer.FromOriginalXmlFormat(itemId, xmlData);
|
= SceneObjectSerializer.FromOriginalXmlFormat(itemId, xmlData);
|
||||||
Vector3 storedPosition = group.AbsolutePosition;
|
Vector3 storedPosition = group.AbsolutePosition;
|
||||||
|
if (group.UUID == UUID.Zero)
|
||||||
|
{
|
||||||
|
m_log.Debug("[InventoryAccessModule]: Inventory object has UUID.Zero! Position 3");
|
||||||
|
}
|
||||||
group.RootPart.FromFolderID = item.Folder;
|
group.RootPart.FromFolderID = item.Folder;
|
||||||
|
|
||||||
// If it's rezzed in world, select it. Much easier to
|
// If it's rezzed in world, select it. Much easier to
|
||||||
|
@ -548,9 +561,15 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
||||||
remoteClient.SendBulkUpdateInventory(item);
|
remoteClient.SendBulkUpdateInventory(item);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
if (group.UUID == UUID.Zero)
|
||||||
|
{
|
||||||
|
m_log.Debug("[InventoryAccessModule]: Inventory object has UUID.Zero! Position 4");
|
||||||
|
}
|
||||||
group.ResetIDs();
|
group.ResetIDs();
|
||||||
|
if (group.UUID == UUID.Zero)
|
||||||
|
{
|
||||||
|
m_log.Debug("[InventoryAccessModule]: Inventory object has UUID.Zero! Position 5");
|
||||||
|
}
|
||||||
if (attachment)
|
if (attachment)
|
||||||
{
|
{
|
||||||
group.RootPart.ObjectFlags |= (uint)PrimFlags.Phantom;
|
group.RootPart.ObjectFlags |= (uint)PrimFlags.Phantom;
|
||||||
|
@ -582,7 +601,10 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
||||||
{
|
{
|
||||||
group.SetFromItemID(itemID);
|
group.SetFromItemID(itemID);
|
||||||
}
|
}
|
||||||
|
if (group.UUID == UUID.Zero)
|
||||||
|
{
|
||||||
|
m_log.Debug("[InventoryAccessModule]: Inventory object has UUID.Zero! Position 6");
|
||||||
|
}
|
||||||
SceneObjectPart rootPart = null;
|
SceneObjectPart rootPart = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -597,7 +619,10 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
||||||
|
|
||||||
m_log.Error("[AGENT INVENTORY]: Error rezzing ItemID: " + itemID + " object has no rootpart." + isAttachment);
|
m_log.Error("[AGENT INVENTORY]: Error rezzing ItemID: " + itemID + " object has no rootpart." + isAttachment);
|
||||||
}
|
}
|
||||||
|
if (group.UUID == UUID.Zero)
|
||||||
|
{
|
||||||
|
m_log.Debug("[InventoryAccessModule]: Inventory object has UUID.Zero! Position 7");
|
||||||
|
}
|
||||||
// Since renaming the item in the inventory does not affect the name stored
|
// Since renaming the item in the inventory does not affect the name stored
|
||||||
// in the serialization, transfer the correct name from the inventory to the
|
// in the serialization, transfer the correct name from the inventory to the
|
||||||
// object itself before we rez.
|
// object itself before we rez.
|
||||||
|
@ -625,7 +650,10 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
||||||
group.ApplyNextOwnerPermissions();
|
group.ApplyNextOwnerPermissions();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (group.UUID == UUID.Zero)
|
||||||
|
{
|
||||||
|
m_log.Debug("[InventoryAccessModule]: Inventory object has UUID.Zero! Position 8");
|
||||||
|
}
|
||||||
foreach (SceneObjectPart part in partList)
|
foreach (SceneObjectPart part in partList)
|
||||||
{
|
{
|
||||||
if ((part.OwnerID != item.Owner) || (item.CurrentPermissions & 16) != 0)
|
if ((part.OwnerID != item.Owner) || (item.CurrentPermissions & 16) != 0)
|
||||||
|
@ -638,9 +666,15 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
||||||
part.EveryoneMask = item.EveryOnePermissions;
|
part.EveryoneMask = item.EveryOnePermissions;
|
||||||
part.NextOwnerMask = item.NextPermissions;
|
part.NextOwnerMask = item.NextPermissions;
|
||||||
}
|
}
|
||||||
|
if (group.UUID == UUID.Zero)
|
||||||
|
{
|
||||||
|
m_log.Debug("[InventoryAccessModule]: Inventory object has UUID.Zero! Position 9");
|
||||||
|
}
|
||||||
rootPart.TrimPermissions();
|
rootPart.TrimPermissions();
|
||||||
|
if (group.UUID == UUID.Zero)
|
||||||
|
{
|
||||||
|
m_log.Debug("[InventoryAccessModule]: Inventory object has UUID.Zero! Position 10");
|
||||||
|
}
|
||||||
if (!attachment)
|
if (!attachment)
|
||||||
{
|
{
|
||||||
if (group.RootPart.Shape.PCode == (byte)PCode.Prim)
|
if (group.RootPart.Shape.PCode == (byte)PCode.Prim)
|
||||||
|
@ -674,8 +708,11 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (group.UUID == UUID.Zero)
|
||||||
return rootPart.ParentGroup;
|
{
|
||||||
|
m_log.Debug("[InventoryAccessModule]: Inventory object has UUID.Zero! Position 11");
|
||||||
|
}
|
||||||
|
return group;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue