Fix a nullref in attachment handling. Add some debug to find the attachment
state issueavinationmerge
parent
af778f09d5
commit
780630d7c0
|
@ -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*/);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Loading…
Reference in New Issue