diff --git a/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs b/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs index 73f27708b9..89d9e80794 100644 --- a/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs +++ b/OpenSim/Capabilities/Handlers/FetchInventory/FetchInvDescHandler.cs @@ -77,10 +77,7 @@ namespace OpenSim.Capabilities.Handlers } ArrayList foldersrequested = (ArrayList)hash["folders"]; - - StringBuilder tmpresponse = new StringBuilder(1024); - StringBuilder tmpbadfolders = new StringBuilder(1024); - + List folders = new List(); for (int i = 0; i < foldersrequested.Count; i++) { @@ -101,6 +98,8 @@ namespace OpenSim.Capabilities.Handlers folders.Add(llsdRequest); } + StringBuilder lastresponse = new StringBuilder(1024); + lastresponse.Append(""); if (folders.Count > 0) { List bad_folders = new List(); @@ -115,43 +114,39 @@ namespace OpenSim.Capabilities.Handlers #pragma warning restore 0612 } - string inventoryitemstr = string.Empty; - foreach (InventoryCollectionWithDescendents icoll in invcollSet) + if(invcollSet.Count > 0) { - LLSDInventoryFolderContents thiscontents = contentsToLLSD(icoll.Collection, icoll.Descendents); - inventoryitemstr = LLSDHelpers.SerialiseLLSDReply(thiscontents); - tmpresponse.Append(inventoryitemstr.Substring(6,inventoryitemstr.Length - 13)); + lastresponse.Append("folders"); + foreach (InventoryCollectionWithDescendents icoll in invcollSet) + { + LLSDInventoryFolderContents thiscontents = contentsToLLSD(icoll.Collection, icoll.Descendents); + lastresponse.Append(LLSDHelpers.SerialiseLLSDReplyNoHeader(thiscontents)); + } + lastresponse.Append(""); } + else + lastresponse.Append("folders"); //m_log.DebugFormat("[WEB FETCH INV DESC HANDLER]: Bad folders {0}", string.Join(", ", bad_folders)); - foreach (UUID bad in bad_folders) + if(bad_folders.Count > 0) { - tmpbadfolders.Append("folder_id"); - tmpbadfolders.Append(bad.ToString()); - tmpbadfolders.Append("errorUnknown"); + lastresponse.Append("bad_folders"); + foreach (UUID bad in bad_folders) + { + lastresponse.Append("folder_id"); + lastresponse.Append(bad.ToString()); + lastresponse.Append("errorUnknown"); + } + lastresponse.Append(""); } - } - - StringBuilder lastresponse = new StringBuilder(1024); - lastresponse.Append(""); - if(tmpresponse.Length > 0) - { - lastresponse.Append("folders"); - lastresponse.Append(tmpresponse.ToString()); - lastresponse.Append(""); + lastresponse.Append(""); } else - lastresponse.Append("folders"); - - if(tmpbadfolders.Length > 0) { - lastresponse.Append("bad_folders"); - lastresponse.Append(tmpbadfolders.ToString()); - lastresponse.Append(""); + lastresponse.Append("folders"); } - lastresponse.Append(""); - return lastresponse.ToString(); + return lastresponse.ToString();; } /// diff --git a/OpenSim/Capabilities/LLSDHelpers.cs b/OpenSim/Capabilities/LLSDHelpers.cs index e331cfba3d..4a7c6a54c9 100644 --- a/OpenSim/Capabilities/LLSDHelpers.cs +++ b/OpenSim/Capabilities/LLSDHelpers.cs @@ -54,6 +54,19 @@ namespace OpenSim.Framework.Capabilities return sw.ToString(); } + public static string SerialiseLLSDReplyNoHeader(object obj) + { + StringWriter sw = new StringWriter(); + XmlTextWriter writer = new XmlTextWriter(sw); + writer.Formatting = Formatting.None; + SerializeOSDType(writer, obj); + writer.Close(); + + //m_log.DebugFormat("[LLSD Helpers]: Generated serialized LLSD reply {0}", sw.ToString()); + + return sw.ToString(); + } + private static void SerializeOSDType(XmlTextWriter writer, object obj) { Type myType = obj.GetType(); diff --git a/OpenSim/Framework/Monitoring/JobEngine.cs b/OpenSim/Framework/Monitoring/JobEngine.cs index 4a831e8ae2..6c388b3b76 100644 --- a/OpenSim/Framework/Monitoring/JobEngine.cs +++ b/OpenSim/Framework/Monitoring/JobEngine.cs @@ -79,7 +79,7 @@ namespace OpenSim.Framework.Monitoring /// private bool m_warnOverMaxQueue = true; - private BlockingCollection m_jobQueue = new BlockingCollection(new ConcurrentQueue(), 5000); + private BlockingCollection m_jobQueue = new BlockingCollection(5000); private CancellationTokenSource m_cancelSource; diff --git a/bin/OpenSim32.exe.config b/bin/OpenSim32.exe.config index 92242406f1..a3b2026962 100644 --- a/bin/OpenSim32.exe.config +++ b/bin/OpenSim32.exe.config @@ -1,3 +1,4 @@ +
diff --git a/bin/Robust32.exe.config b/bin/Robust32.exe.config index ca3ee0e0cf..a27f22a117 100644 --- a/bin/Robust32.exe.config +++ b/bin/Robust32.exe.config @@ -3,9 +3,6 @@
- - - diff --git a/bin/Robust32.vshost.exe.config b/bin/Robust32.vshost.exe.config index ca3ee0e0cf..a27f22a117 100644 --- a/bin/Robust32.vshost.exe.config +++ b/bin/Robust32.vshost.exe.config @@ -3,9 +3,6 @@
- - -