diff options
author | Justin Clarke Casey | 2009-06-05 19:20:31 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2009-06-05 19:20:31 +0000 |
commit | fbd0f5491b54655aef213796d1dd267f37f91b18 (patch) | |
tree | 7e22dc88e35d49dcb1ca42a6813f755acb8fc796 | |
parent | * refactor: split out part xml writing in SceneObjectSerializer (diff) | |
download | opensim-SC-fbd0f5491b54655aef213796d1dd267f37f91b18.zip opensim-SC-fbd0f5491b54655aef213796d1dd267f37f91b18.tar.gz opensim-SC-fbd0f5491b54655aef213796d1dd267f37f91b18.tar.bz2 opensim-SC-fbd0f5491b54655aef213796d1dd267f37f91b18.tar.xz |
* 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 :)
-rw-r--r-- | OpenSim/Region/Framework/Scenes/UuidGatherer.cs | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/OpenSim/Region/Framework/Scenes/UuidGatherer.cs b/OpenSim/Region/Framework/Scenes/UuidGatherer.cs index 12a4165..0bb7fff 100644 --- a/OpenSim/Region/Framework/Scenes/UuidGatherer.cs +++ b/OpenSim/Region/Framework/Scenes/UuidGatherer.cs | |||
@@ -177,8 +177,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
177 | 177 | ||
178 | protected void AssetReceived(string id, Object sender, AssetBase asset) | 178 | protected void AssetReceived(string id, Object sender, AssetBase asset) |
179 | { | 179 | { |
180 | if (asset != null) | 180 | AssetRequestCallback(asset.FullID, asset); |
181 | AssetRequestCallback(asset.FullID, asset); | ||
182 | } | 181 | } |
183 | 182 | ||
184 | /// <summary> | 183 | /// <summary> |
@@ -243,17 +242,21 @@ namespace OpenSim.Region.Framework.Scenes | |||
243 | protected void GetWearableAssetUuids(UUID wearableAssetUuid, IDictionary<UUID, int> assetUuids) | 242 | protected void GetWearableAssetUuids(UUID wearableAssetUuid, IDictionary<UUID, int> assetUuids) |
244 | { | 243 | { |
245 | AssetBase assetBase = GetAsset(wearableAssetUuid); | 244 | AssetBase assetBase = GetAsset(wearableAssetUuid); |
246 | //m_log.Debug(new System.Text.ASCIIEncoding().GetString(bodypartAsset.Data)); | ||
247 | AssetWearable wearableAsset = new AssetBodypart(wearableAssetUuid, assetBase.Data); | ||
248 | wearableAsset.Decode(); | ||
249 | 245 | ||
250 | //m_log.DebugFormat( | 246 | if (null != assetBase) |
251 | // "[ARCHIVER]: Wearable asset {0} references {1} assets", wearableAssetUuid, wearableAsset.Textures.Count); | 247 | { |
252 | 248 | //m_log.Debug(new System.Text.ASCIIEncoding().GetString(bodypartAsset.Data)); | |
253 | foreach (UUID uuid in wearableAsset.Textures.Values) | 249 | AssetWearable wearableAsset = new AssetBodypart(wearableAssetUuid, assetBase.Data); |
254 | { | 250 | wearableAsset.Decode(); |
255 | //m_log.DebugFormat("[ARCHIVER]: Got bodypart uuid {0}", uuid); | 251 | |
256 | assetUuids[uuid] = 1; | 252 | //m_log.DebugFormat( |
253 | // "[ARCHIVER]: Wearable asset {0} references {1} assets", wearableAssetUuid, wearableAsset.Textures.Count); | ||
254 | |||
255 | foreach (UUID uuid in wearableAsset.Textures.Values) | ||
256 | { | ||
257 | //m_log.DebugFormat("[ARCHIVER]: Got bodypart uuid {0}", uuid); | ||
258 | assetUuids[uuid] = 1; | ||
259 | } | ||
257 | } | 260 | } |
258 | } | 261 | } |
259 | 262 | ||