From d50d169441d7394e1391d2d6b862a5607c07c6a0 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 20 Feb 2014 22:35:41 +0000
Subject: If GetFolderContent called by WebFetchInvDescHandler.Fetch() fails
for some reason and returns null, log and return empty contents rather than
throwing an exception that ends up terminating the simulator.
---
.../WebFetchInventoryDescendents/WebFetchInvDescHandler.cs | 10 +++++++++-
OpenSim/Services/Interfaces/IInventoryService.cs | 2 +-
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/OpenSim/Capabilities/Handlers/WebFetchInventoryDescendents/WebFetchInvDescHandler.cs b/OpenSim/Capabilities/Handlers/WebFetchInventoryDescendents/WebFetchInvDescHandler.cs
index 9a6ca86..b222d4b 100644
--- a/OpenSim/Capabilities/Handlers/WebFetchInventoryDescendents/WebFetchInvDescHandler.cs
+++ b/OpenSim/Capabilities/Handlers/WebFetchInventoryDescendents/WebFetchInvDescHandler.cs
@@ -238,7 +238,15 @@ namespace OpenSim.Capabilities.Handlers
if (folderID != UUID.Zero)
{
- contents = m_InventoryService.GetFolderContent(agentID, folderID);
+ InventoryCollection fetchedContents = m_InventoryService.GetFolderContent(agentID, folderID);
+
+ if (fetchedContents == null)
+ {
+ m_log.WarnFormat("[WEB FETCH INV DESC HANDLER]: Could not get contents of folder {0} for user {1}", folderID, agentID);
+ return contents;
+ }
+
+ contents = fetchedContents;
InventoryFolderBase containingFolder = new InventoryFolderBase();
containingFolder.ID = folderID;
containingFolder.Owner = agentID;
diff --git a/OpenSim/Services/Interfaces/IInventoryService.cs b/OpenSim/Services/Interfaces/IInventoryService.cs
index a8bfe47..36634a3 100644
--- a/OpenSim/Services/Interfaces/IInventoryService.cs
+++ b/OpenSim/Services/Interfaces/IInventoryService.cs
@@ -91,7 +91,7 @@ namespace OpenSim.Services.Interfaces
///
///
///
- ///
+ /// Inventory content. null if the request failed.
InventoryCollection GetFolderContent(UUID userID, UUID folderID);
///
--
cgit v1.1