mantis 8755: display bad folders owner (if avaiable) but on a single message per request, not per each bad one.(please test, i don't have bad folders

This commit is contained in:
UbitUmarov
2020-08-25 15:31:39 +01:00
parent 39ab8902da
commit 3464c6457e

View File

@@ -142,6 +142,8 @@ namespace OpenSim.Capabilities.Handlers
int total_folders = 0;
int total_items = 0;
UUID requester = folders[0].owner_id;
List<InventoryCollection> invcollSet = Fetch(folders, bad_folders, ref total_folders, ref total_items);
//m_log.DebugFormat("[XXX]: Got {0} folders from a request of {1}", invcollSet.Count, folders.Count);
@@ -157,6 +159,7 @@ namespace OpenSim.Capabilities.Handlers
StringBuilder lastresponse = new StringBuilder(mem);
lastresponse.Append("<llsd>");
if (invcollSetCount > 0)
{
lastresponse.Append("<map><key>folders</key><array>");
@@ -220,7 +223,6 @@ namespace OpenSim.Capabilities.Handlers
lastresponse.Append("<map><key>folders</key><array /></map>");
}
//m_log.DebugFormat("[WEB FETCH INV DESC HANDLER]: Bad folders {0}", string.Join(", ", bad_folders));
if (bad_folders.Count > 0)
{
lastresponse.Append("<map><key>bad_folders</key><array>");
@@ -232,6 +234,22 @@ namespace OpenSim.Capabilities.Handlers
lastresponse.Append("</uuid><key>error</key><string>Unknown</string></map>");
}
lastresponse.Append("</array></map>");
StringBuilder sb = osStringBuilderCache.Acquire();
sb.Append("[WEB FETCH INV DESC HANDLER]: Unable to fetch folders owned by ");
sb.Append(requester.ToString());
sb.Append(" :");
int limit = 9;
foreach (UUID bad in bad_folders)
{
sb.Append(" ");
sb.Append(bad.ToString());
if(--limit < 0)
break;
}
if(limit < 0)
sb.Append(" ...");
m_log.Warn(osStringBuilderCache.GetStringAndRelease(sb));
}
lastresponse.Append("</llsd>");
@@ -390,7 +408,6 @@ namespace OpenSim.Capabilities.Handlers
InventoryFolderBase containingFolder = m_InventoryService.GetFolder(freq.owner_id, freq.folder_id);
if (containingFolder == null)
{
m_log.WarnFormat("[WEB FETCH INV DESC HANDLER]: Unable to fetch folder {0}", freq.folder_id);
bad_folders.Add(freq.folder_id);
return true;
}