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))
{
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*/);
}

View File

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

View File

@ -612,6 +612,7 @@ namespace OpenSim.Region.Framework.Scenes
{
UUID itemid = new UUID(node.Attributes["UUID"].Value);
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
return;
m_log.DebugFormat("[ScriptState]: Item ID changed: {0} to {1}", oldID, newID);
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();
doc.LoadXml(m_part.ParentGroup.m_savedScriptState[oldID]);
@ -380,6 +382,10 @@ namespace OpenSim.Region.Framework.Scenes
}
m_part.ParentGroup.m_savedScriptState.Remove(oldID);
}
else
{
m_log.DebugFormat("[ScriptState]: No state for old ID {0}", oldID);
}
}
/// <summary>