aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorUbitUmarov2015-09-11 22:26:05 +0100
committerUbitUmarov2015-09-11 22:26:05 +0100
commit410ae96d044f234f35a0824d934d72e77155d62f (patch)
treedc2614ce196230120e7a222254ae15648c542d41 /OpenSim/Region
parent inventory mess return to the state before divas cache issue (diff)
downloadopensim-SC_OLD-410ae96d044f234f35a0824d934d72e77155d62f.zip
opensim-SC_OLD-410ae96d044f234f35a0824d934d72e77155d62f.tar.gz
opensim-SC_OLD-410ae96d044f234f35a0824d934d72e77155d62f.tar.bz2
opensim-SC_OLD-410ae96d044f234f35a0824d934d72e77155d62f.tar.xz
put back diva's cache with her recent fix but also avoid duplicated InventoryService.UpdateItem call in case of m_uploadState is complete. In that case CompleteItemUpload will do it
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs35
1 files changed, 25 insertions, 10 deletions
diff --git a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs
index fdff199..fabb409 100644
--- a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs
+++ b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs
@@ -337,12 +337,16 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
337 m_asset.Description = item.Description; 337 m_asset.Description = item.Description;
338 m_asset.Type = (sbyte)item.AssetType; 338 m_asset.Type = (sbyte)item.AssetType;
339 339
340 // We must always store the item at this point even if the asset hasn't finished uploading, in order 340 // remove redundante m_Scene.InventoryService.UpdateItem
341 // to avoid a race condition when the appearance module retrieves the item to set the asset id in 341 // if uploadState == UploadState.Complete)
342 // the AvatarAppearance structure. 342// if (m_asset.FullID != UUID.Zero)
343 item.AssetID = m_asset.FullID; 343// {
344 if (item.AssetID != UUID.Zero) 344 // We must always store the item at this point even if the asset hasn't finished uploading, in order
345 m_Scene.InventoryService.UpdateItem(item); 345 // to avoid a race condition when the appearance module retrieves the item to set the asset id in
346 // the AvatarAppearance structure.
347// item.AssetID = m_asset.FullID;
348// m_Scene.InventoryService.UpdateItem(item);
349// }
346 350
347 if (m_uploadState == UploadState.Complete) 351 if (m_uploadState == UploadState.Complete)
348 { 352 {
@@ -350,10 +354,21 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
350 } 354 }
351 else 355 else
352 { 356 {
353// m_log.DebugFormat( 357 // do it here to avoid the eventual race condition
354// "[ASSET XFER UPLOADER]: Holding update inventory item request {0} for {1} pending completion of asset xfer for transaction {2}", 358 if (m_asset.FullID != UUID.Zero)
355// item.Name, remoteClient.Name, transactionID); 359 {
356 360 // We must always store the item at this point even if the asset hasn't finished uploading, in order
361 // to avoid a race condition when the appearance module retrieves the item to set the asset id in
362 // the AvatarAppearance structure.
363 item.AssetID = m_asset.FullID;
364 m_Scene.InventoryService.UpdateItem(item);
365 }
366
367
368 // m_log.DebugFormat(
369 // "[ASSET XFER UPLOADER]: Holding update inventory item request {0} for {1} pending completion of asset xfer for transaction {2}",
370 // item.Name, remoteClient.Name, transactionID);
371
357 m_updateItem = true; 372 m_updateItem = true;
358 m_updateItemData = item; 373 m_updateItemData = item;
359 } 374 }