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.

bullet-2.82
Justin Clark-Casey (justincc) 2014-06-16 22:11:34 +01:00
parent 696df33e5c
commit 4374ce9fbf
1 changed files with 13 additions and 3 deletions

View File

@ -63,8 +63,7 @@ namespace OpenSim.Region.ClientStack.Linden
public List<UUID> folders; public List<UUID> folders;
} }
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
/// <summary> /// <summary>
/// Control whether requests will be processed asynchronously. /// Control whether requests will be processed asynchronously.
@ -438,7 +437,18 @@ namespace OpenSim.Region.ClientStack.Linden
aPollRequest poolreq = m_queue.Dequeue(); aPollRequest poolreq = m_queue.Dequeue();
if (poolreq != null && poolreq.thepoll != null) if (poolreq != null && poolreq.thepoll != null)
{
try
{
poolreq.thepoll.Process(poolreq); 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);
}
}
}
} }
} }