Fix a nullref in attachment handling. Add some debug to find the attachment

state issue
avinationmerge
Melanie Thielker 2010-04-23 14:41:20 +02:00
parent af778f09d5
commit 780630d7c0
4 changed files with 10 additions and 1 deletions

View File

@ -271,7 +271,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
if (m_scene.TryGetScenePresence(remoteClient.AgentId, out presence)) if (m_scene.TryGetScenePresence(remoteClient.AgentId, out presence))
{ {
InventoryItemBase item = new InventoryItemBase(itemID, remoteClient.AgentId); InventoryItemBase item = new InventoryItemBase(itemID, remoteClient.AgentId);
item = m_scene.InventoryService.GetItem(item); if (m_scene.InventoryService != null)
item = m_scene.InventoryService.GetItem(item);
presence.Appearance.SetAttachment((int)AttachmentPt, itemID, item.AssetID /*att.UUID*/); presence.Appearance.SetAttachment((int)AttachmentPt, itemID, item.AssetID /*att.UUID*/);
} }

View File

@ -1628,6 +1628,7 @@ namespace OpenSim.Region.Framework.Scenes
remoteClient.AgentId); remoteClient.AgentId);
AssetService.Store(asset); AssetService.Store(asset);
m_log.DebugFormat("[ScriptState]: Saved attachment as asset {0}", asset.FullID);
item.AssetID = asset.FullID; item.AssetID = asset.FullID;
item.Description = asset.Description; item.Description = asset.Description;
item.Name = asset.Name; item.Name = asset.Name;

View File

@ -612,6 +612,7 @@ namespace OpenSim.Region.Framework.Scenes
{ {
UUID itemid = new UUID(node.Attributes["UUID"].Value); UUID itemid = new UUID(node.Attributes["UUID"].Value);
m_savedScriptState.Add(itemid, node.InnerXml); m_savedScriptState.Add(itemid, node.InnerXml);
m_log.DebugFormat("[ScriptState]: Retrieved state for script item ID {0}", itemid.ToString());
} }
} }
} }

View File

@ -333,8 +333,10 @@ namespace OpenSim.Region.Framework.Scenes
if (engines == null) // No engine at all if (engines == null) // No engine at all
return; return;
m_log.DebugFormat("[ScriptState]: Item ID changed: {0} to {1}", oldID, newID);
if (m_part.ParentGroup.m_savedScriptState.ContainsKey(oldID)) if (m_part.ParentGroup.m_savedScriptState.ContainsKey(oldID))
{ {
m_log.DebugFormat("[ScriptState]: Found script state for {0}, applying to new script item {1}", oldID, newID);
XmlDocument doc = new XmlDocument(); XmlDocument doc = new XmlDocument();
doc.LoadXml(m_part.ParentGroup.m_savedScriptState[oldID]); doc.LoadXml(m_part.ParentGroup.m_savedScriptState[oldID]);
@ -380,6 +382,10 @@ namespace OpenSim.Region.Framework.Scenes
} }
m_part.ParentGroup.m_savedScriptState.Remove(oldID); m_part.ParentGroup.m_savedScriptState.Remove(oldID);
} }
else
{
m_log.DebugFormat("[ScriptState]: No state for old ID {0}", oldID);
}
} }
/// <summary> /// <summary>