diff options
Diffstat (limited to 'OpenSim/Region/CoreModules')
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs index 144cbbe..f89b904 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs | |||
@@ -218,10 +218,35 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
218 | 218 | ||
219 | // Count inventory items (different to asset count) | 219 | // Count inventory items (different to asset count) |
220 | CountItems++; | 220 | CountItems++; |
221 | 221 | ||
222 | // Don't chase down link asset items as they actually point to their target item IDs rather than an asset | 222 | // Don't chase down link asset items as they actually point to their target item IDs rather than an asset |
223 | if (SaveAssets && itemAssetType != AssetType.Link && itemAssetType != AssetType.LinkFolder) | 223 | if (SaveAssets && itemAssetType != AssetType.Link && itemAssetType != AssetType.LinkFolder) |
224 | { | ||
225 | int curErrorCntr = m_assetGatherer.ErrorCount; | ||
224 | m_assetGatherer.AddForInspection(inventoryItem.AssetID); | 226 | m_assetGatherer.AddForInspection(inventoryItem.AssetID); |
227 | m_assetGatherer.GatherAll(); | ||
228 | curErrorCntr = m_assetGatherer.ErrorCount - curErrorCntr; | ||
229 | if(curErrorCntr > 0) | ||
230 | { | ||
231 | string spath; | ||
232 | int indx = path.IndexOf("__"); | ||
233 | if(indx > 0) | ||
234 | spath = path.Substring(0,indx); | ||
235 | else | ||
236 | spath = path; | ||
237 | |||
238 | if(curErrorCntr > 1) | ||
239 | { | ||
240 | m_log.WarnFormat("[INVENTORY ARCHIVER]: item {0} '{1}', type {2}, in '{3}', contains at least {4} references to missing or damaged assets", | ||
241 | inventoryItem.ID, inventoryItem.Name, itemAssetType.ToString(), spath, curErrorCntr); | ||
242 | } | ||
243 | else if(curErrorCntr == 1) | ||
244 | { | ||
245 | m_log.WarnFormat("[INVENTORY ARCHIVER]: item {0} '{1}', type {2}, in '{3}', contains at least 1 reference to a missing or damaged asset", | ||
246 | inventoryItem.ID, inventoryItem.Name, itemAssetType.ToString(), spath); | ||
247 | } | ||
248 | } | ||
249 | } | ||
225 | } | 250 | } |
226 | 251 | ||
227 | /// <summary> | 252 | /// <summary> |
@@ -427,7 +452,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
427 | m_log.DebugFormat( | 452 | m_log.DebugFormat( |
428 | "[INVENTORY ARCHIVER]: The items to save reference {0} assets", m_assetGatherer.GatheredUuids.Count + errors); | 453 | "[INVENTORY ARCHIVER]: The items to save reference {0} assets", m_assetGatherer.GatheredUuids.Count + errors); |
429 | if(errors > 0) | 454 | if(errors > 0) |
430 | m_log.DebugFormat("[INVENTORY ARCHIVER]: {0} of this assets have problems and will be ignored", errors); | 455 | m_log.DebugFormat("[INVENTORY ARCHIVER]: {0} of these assets have problems and will be ignored", errors); |
431 | 456 | ||
432 | AssetsRequest ar = new AssetsRequest( | 457 | AssetsRequest ar = new AssetsRequest( |
433 | new AssetsArchiver(m_archiveWriter), | 458 | new AssetsArchiver(m_archiveWriter), |