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.
0.7.6-extended
Justin Clark-Casey (justincc) 2013-12-14 01:48:03 +00:00
parent 5745aa0f86
commit c1ff245bf3
1 changed files with 12 additions and 3 deletions

View File

@ -181,9 +181,18 @@ namespace OpenSim.Region.Framework.Scenes
if (part.ParticleSystem.Length > 0) if (part.ParticleSystem.Length > 0)
{ {
Primitive.ParticleSystem ps = new Primitive.ParticleSystem(part.ParticleSystem, 0); try
if (ps.Texture != UUID.Zero) {
assetUuids[ps.Texture] = AssetType.Texture; 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(); TaskInventoryDictionary taskDictionary = (TaskInventoryDictionary)part.TaskInventory.Clone();