From 704a53fb9bfeb945fa25f7367c631698dea5ae89 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 23 Aug 2010 23:16:48 +0100 Subject: Fix bug in llGiveInventory() where items were disappearing on relog This was a regression - the code to look up the correct type folder was no longer being called if items were added without a parent folder set This may have been broken since commit bd49985a on 2010-05-02 --- OpenSim/Services/InventoryService/XInventoryService.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'OpenSim/Services/InventoryService') diff --git a/OpenSim/Services/InventoryService/XInventoryService.cs b/OpenSim/Services/InventoryService/XInventoryService.cs index 90a5c22..84306e7 100644 --- a/OpenSim/Services/InventoryService/XInventoryService.cs +++ b/OpenSim/Services/InventoryService/XInventoryService.cs @@ -219,12 +219,21 @@ namespace OpenSim.Services.InventoryService public virtual InventoryFolderBase GetFolderForType(UUID principalID, AssetType type) { +// m_log.DebugFormat("[XINVENTORY SERVICE]: Getting folder type {0} for user {1}", type, principalID); + XInventoryFolder[] folders = m_Database.GetFolders( new string[] { "agentID", "type"}, new string[] { principalID.ToString(), ((int)type).ToString() }); if (folders.Length == 0) + { +// m_log.WarnFormat("[XINVENTORY SERVICE]: Found no folder for type {0} for user {1}", type, principalID); return null; + } + +// m_log.DebugFormat( +// "[XINVENTORY SERVICE]: Found folder {0} {1} for type {2} for user {3}", +// folders[0].folderName, folders[0].folderID, type, principalID); return ConvertToOpenSim(folders[0]); } @@ -235,7 +244,7 @@ namespace OpenSim.Services.InventoryService // connector. So we disregard the principal and look // by ID. // - m_log.DebugFormat("[XINVENTORY]: Fetch contents for folder {0}", folderID.ToString()); + m_log.DebugFormat("[XINVENTORY SERVICE]: Fetch contents for folder {0}", folderID.ToString()); InventoryCollection inventory = new InventoryCollection(); inventory.UserID = principalID; inventory.Folders = new List(); @@ -354,6 +363,9 @@ namespace OpenSim.Services.InventoryService public virtual bool AddItem(InventoryItemBase item) { +// m_log.DebugFormat( +// "[XINVENTORY SERVICE]: Adding item {0} to folder {1} for {2}", item.ID, item.Folder, item.Owner); + return m_Database.StoreItem(ConvertFromOpenSim(item)); } -- cgit v1.1