diff --git a/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs b/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs index 62ca8a3a3f..7618c3dd36 100644 --- a/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs +++ b/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs @@ -728,20 +728,6 @@ namespace OpenSim.Capabilities.Handlers itemsToReturn.InsertRange(0, links); - foreach (InventoryItemBase link in linkedFolderContents.Items) - { - // Take care of genuinely broken links where the target doesn't exist - // HACK: Also, don't follow up links that just point to other links. In theory this is legitimate, - // but no viewer has been observed to set these up and this is the lazy way of avoiding cycles - // rather than having to keep track of every folder requested in the recursion. - if (link != null && link.AssetType == (int)AssetType.Link) - { - //m_log.DebugFormat( - // "[WEB FETCH INV DESC HANDLER]: Adding item {0} {1} from folder {2} linked from {3} ({4} {5})", - // link.Name, (AssetType)link.AssetType, linkedFolderContents.FolderID, contents.FolderID, link.ID, link.AssetID); - itemIDs.Add(link.AssetID); - } - } } } diff --git a/OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs b/OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs index b123e9de48..33ec48564f 100644 --- a/OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs +++ b/OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs @@ -555,6 +555,9 @@ namespace OpenSim.Services.Connectors pending.Add(id); } + if (pending.Count == 0) // we're done, everything was in the cache + return itemArr; + try { Dictionary resultSet = MakeRequest("GETMULTIPLEITEMS", @@ -565,7 +568,12 @@ namespace OpenSim.Services.Connectors }); if (!CheckReturn(resultSet)) - return null; + { + if (i == 0) + return null; + else + return itemArr; + } // carry over index i where we left above foreach (KeyValuePair kvp in resultSet)