Wrap analysis of the particle system in the UUID Gatherer in a separate try/catch as sometimes it appears that this can be corrupt.

As per Oren's suggestion.
master-beforevarregion
Justin Clark-Casey (justincc) 2013-12-14 01:48:03 +00:00
parent 996a6c2eea
commit e7a294e739
1 changed files with 12 additions and 3 deletions

View File

@ -180,11 +180,20 @@ namespace OpenSim.Region.Framework.Scenes
assetUuids[part.CollisionSound] = AssetType.Sound;
if (part.ParticleSystem.Length > 0)
{
try
{
Primitive.ParticleSystem ps = new Primitive.ParticleSystem(part.ParticleSystem, 0);
if (ps.Texture != UUID.Zero)
assetUuids[ps.Texture] = AssetType.Texture;
}
catch (Exception e)
{
m_log.WarnFormat(
"[UUID GATHERER]: Could not check particle system for part {0} {1} in object {2} {3} since it is corrupt. Continuing.",
part.Name, part.UUID, sceneObject.Name, sceneObject.UUID);
}
}
TaskInventoryDictionary taskDictionary = (TaskInventoryDictionary)part.TaskInventory.Clone();