aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDiva Canto2015-06-04 06:58:07 -0700
committerDiva Canto2015-06-04 06:58:07 -0700
commitea5aa82c2c3368f942f5b58ba2e13ce9a2d2b582 (patch)
tree48fca79961c5ffbd15ef06afdbc2acce0b23f5bf
parentMantis #7567: added an 8-sec expiring item cache to the inventory network con... (diff)
downloadopensim-SC_OLD-ea5aa82c2c3368f942f5b58ba2e13ce9a2d2b582.zip
opensim-SC_OLD-ea5aa82c2c3368f942f5b58ba2e13ce9a2d2b582.tar.gz
opensim-SC_OLD-ea5aa82c2c3368f942f5b58ba2e13ce9a2d2b582.tar.bz2
opensim-SC_OLD-ea5aa82c2c3368f942f5b58ba2e13ce9a2d2b582.tar.xz
Mantis #7567. Once again, avoiding prefetching linked items within linked folders. Also fixing the inventory connector GetMultipleItems, so that if everything is in the cache, it returns successfully rather than unsuccessfully.
-rw-r--r--OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs14
-rw-r--r--OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs10
2 files changed, 9 insertions, 15 deletions
diff --git a/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs b/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs
index 62ca8a3..7618c3d 100644
--- a/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs
+++ b/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs
@@ -728,20 +728,6 @@ namespace OpenSim.Capabilities.Handlers
728 728
729 itemsToReturn.InsertRange(0, links); 729 itemsToReturn.InsertRange(0, links);
730 730
731 foreach (InventoryItemBase link in linkedFolderContents.Items)
732 {
733 // Take care of genuinely broken links where the target doesn't exist
734 // HACK: Also, don't follow up links that just point to other links. In theory this is legitimate,
735 // but no viewer has been observed to set these up and this is the lazy way of avoiding cycles
736 // rather than having to keep track of every folder requested in the recursion.
737 if (link != null && link.AssetType == (int)AssetType.Link)
738 {
739 //m_log.DebugFormat(
740 // "[WEB FETCH INV DESC HANDLER]: Adding item {0} {1} from folder {2} linked from {3} ({4} {5})",
741 // link.Name, (AssetType)link.AssetType, linkedFolderContents.FolderID, contents.FolderID, link.ID, link.AssetID);
742 itemIDs.Add(link.AssetID);
743 }
744 }
745 } 731 }
746 } 732 }
747 733
diff --git a/OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs b/OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs
index b123e9d..33ec485 100644
--- a/OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs
+++ b/OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs
@@ -555,6 +555,9 @@ namespace OpenSim.Services.Connectors
555 pending.Add(id); 555 pending.Add(id);
556 } 556 }
557 557
558 if (pending.Count == 0) // we're done, everything was in the cache
559 return itemArr;
560
558 try 561 try
559 { 562 {
560 Dictionary<string, object> resultSet = MakeRequest("GETMULTIPLEITEMS", 563 Dictionary<string, object> resultSet = MakeRequest("GETMULTIPLEITEMS",
@@ -565,7 +568,12 @@ namespace OpenSim.Services.Connectors
565 }); 568 });
566 569
567 if (!CheckReturn(resultSet)) 570 if (!CheckReturn(resultSet))
568 return null; 571 {
572 if (i == 0)
573 return null;
574 else
575 return itemArr;
576 }
569 577
570 // carry over index i where we left above 578 // carry over index i where we left above
571 foreach (KeyValuePair<string, object> kvp in resultSet) 579 foreach (KeyValuePair<string, object> kvp in resultSet)