From 5a1017241fdde7bebcd24b23881add551712593b Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Mon, 16 Jun 2014 22:11:34 +0100 Subject: [PATCH] If processing a queued request fails up to the top of the stack, log the exception and move to the next request rather than terminate the simulator. --- .../Linden/Caps/WebFetchInvDescModule.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs index d9812c9104..87192a04ad 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs @@ -63,8 +63,7 @@ namespace OpenSim.Region.ClientStack.Linden public List folders; } - // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); /// /// Control whether requests will be processed asynchronously. @@ -438,7 +437,18 @@ namespace OpenSim.Region.ClientStack.Linden aPollRequest poolreq = m_queue.Dequeue(); if (poolreq != null && poolreq.thepoll != null) - poolreq.thepoll.Process(poolreq); + { + try + { + poolreq.thepoll.Process(poolreq); + } + catch (Exception e) + { + m_log.ErrorFormat( + "[INVENTORY]: Failed to process queued inventory request {0} for {1} in {2}. Exception {3}", + poolreq.reqID, poolreq.presence != null ? poolreq.presence.Name : "unknown", Scene.Name, e); + } + } } } }