* A further fix for mantis 3641 (oar saves do not complete)

* For some reason, if a null was recieved (indicating a missing asset), the code had stopped passing that on to the waiting lock, resulting in a perpetual freeze
* This change passes the null on correctly
* Many thanks to thomax for being insistent in presenting his analysis of the problem :)
0.6.6-post-fixes
Justin Clarke Casey 2009-06-05 19:20:31 +00:00
parent c20f31beff
commit fbd0f5491b
1 changed files with 15 additions and 12 deletions

View File

@ -177,7 +177,6 @@ namespace OpenSim.Region.Framework.Scenes
protected void AssetReceived(string id, Object sender, AssetBase asset) protected void AssetReceived(string id, Object sender, AssetBase asset)
{ {
if (asset != null)
AssetRequestCallback(asset.FullID, asset); AssetRequestCallback(asset.FullID, asset);
} }
@ -243,6 +242,9 @@ namespace OpenSim.Region.Framework.Scenes
protected void GetWearableAssetUuids(UUID wearableAssetUuid, IDictionary<UUID, int> assetUuids) protected void GetWearableAssetUuids(UUID wearableAssetUuid, IDictionary<UUID, int> assetUuids)
{ {
AssetBase assetBase = GetAsset(wearableAssetUuid); AssetBase assetBase = GetAsset(wearableAssetUuid);
if (null != assetBase)
{
//m_log.Debug(new System.Text.ASCIIEncoding().GetString(bodypartAsset.Data)); //m_log.Debug(new System.Text.ASCIIEncoding().GetString(bodypartAsset.Data));
AssetWearable wearableAsset = new AssetBodypart(wearableAssetUuid, assetBase.Data); AssetWearable wearableAsset = new AssetBodypart(wearableAssetUuid, assetBase.Data);
wearableAsset.Decode(); wearableAsset.Decode();
@ -256,6 +258,7 @@ namespace OpenSim.Region.Framework.Scenes
assetUuids[uuid] = 1; assetUuids[uuid] = 1;
} }
} }
}
/// <summary> /// <summary>
/// Get all the asset uuids associated with a given object. This includes both those directly associated with /// Get all the asset uuids associated with a given object. This includes both those directly associated with