aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clarke Casey2009-06-05 19:20:31 +0000
committerJustin Clarke Casey2009-06-05 19:20:31 +0000
commitfbd0f5491b54655aef213796d1dd267f37f91b18 (patch)
tree7e22dc88e35d49dcb1ca42a6813f755acb8fc796
parent* refactor: split out part xml writing in SceneObjectSerializer (diff)
downloadopensim-SC_OLD-fbd0f5491b54655aef213796d1dd267f37f91b18.zip
opensim-SC_OLD-fbd0f5491b54655aef213796d1dd267f37f91b18.tar.gz
opensim-SC_OLD-fbd0f5491b54655aef213796d1dd267f37f91b18.tar.bz2
opensim-SC_OLD-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 :)
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/UuidGatherer.cs27
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