diff options
Diffstat (limited to 'OpenSim/Framework/Communications/Cache')
-rw-r--r-- | OpenSim/Framework/Communications/Cache/CachedUserInfo.cs | 47 |
1 files changed, 13 insertions, 34 deletions
diff --git a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs index 18bd994..03ba1db 100644 --- a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs +++ b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs | |||
@@ -258,7 +258,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
258 | /// <summary> | 258 | /// <summary> |
259 | /// Callback invoked when an item is received from an async request to the inventory service. | 259 | /// Callback invoked when an item is received from an async request to the inventory service. |
260 | /// | 260 | /// |
261 | /// We're assuming here that items are always received after all the folders have been | 261 | /// We're assuming here that items are always received after all the folders |
262 | /// received. | 262 | /// received. |
263 | /// </summary> | 263 | /// </summary> |
264 | /// <param name="folderInfo"></param> | 264 | /// <param name="folderInfo"></param> |
@@ -267,41 +267,20 @@ namespace OpenSim.Framework.Communications.Cache | |||
267 | // m_log.DebugFormat( | 267 | // m_log.DebugFormat( |
268 | // "[INVENTORY CACHE]: Received item {0} {1} for user {2}", | 268 | // "[INVENTORY CACHE]: Received item {0} {1} for user {2}", |
269 | // itemInfo.Name, itemInfo.ID, userID); | 269 | // itemInfo.Name, itemInfo.ID, userID); |
270 | InventoryFolderImpl folder = RootFolder.FindFolder(itemInfo.Folder); | ||
270 | 271 | ||
271 | if (RootFolder != null) | 272 | if (null == folder) |
272 | { | 273 | { |
273 | if (itemInfo.Folder == RootFolder.ID) | 274 | m_log.WarnFormat( |
274 | { | 275 | "Received item {0} {1} but its folder {2} does not exist", |
275 | lock (RootFolder.Items) | 276 | itemInfo.Name, itemInfo.ID, itemInfo.Folder); |
276 | { | 277 | |
277 | if (!RootFolder.Items.ContainsKey(itemInfo.ID)) | 278 | return; |
278 | { | 279 | } |
279 | RootFolder.Items.Add(itemInfo.ID, itemInfo); | 280 | |
280 | } | 281 | lock (folder.Items) |
281 | else | 282 | { |
282 | { | 283 | folder.Items[itemInfo.ID] = itemInfo; |
283 | RootFolder.Items[itemInfo.ID] = itemInfo; | ||
284 | } | ||
285 | } | ||
286 | } | ||
287 | else | ||
288 | { | ||
289 | InventoryFolderImpl folder = RootFolder.FindFolder(itemInfo.Folder); | ||
290 | if (folder != null) | ||
291 | { | ||
292 | lock (folder.Items) | ||
293 | { | ||
294 | if (!folder.Items.ContainsKey(itemInfo.ID)) | ||
295 | { | ||
296 | folder.Items.Add(itemInfo.ID, itemInfo); | ||
297 | } | ||
298 | else | ||
299 | { | ||
300 | folder.Items[itemInfo.ID] = itemInfo; | ||
301 | } | ||
302 | } | ||
303 | } | ||
304 | } | ||
305 | } | 284 | } |
306 | } | 285 | } |
307 | 286 | ||