diff options
author | Justin Clark-Casey (justincc) | 2011-09-01 02:43:17 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2011-09-01 02:43:17 +0100 |
commit | 616e672fce793350071bff538db4a8dc033f6259 (patch) | |
tree | 14094a8869d3adb595d3007760773e294520f3da /OpenSim/Region | |
parent | refactor: use SOG register target waypoints and rots directly instead of call... (diff) | |
download | opensim-SC_OLD-616e672fce793350071bff538db4a8dc033f6259.zip opensim-SC_OLD-616e672fce793350071bff538db4a8dc033f6259.tar.gz opensim-SC_OLD-616e672fce793350071bff538db4a8dc033f6259.tar.bz2 opensim-SC_OLD-616e672fce793350071bff538db4a8dc033f6259.tar.xz |
If the user receiving an inventory folder has left the scene by the time the acceptence message arrives, then don't send them an inventory update.
Doing so causes a NullReferenceException
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs index b4f69e6..f46d9f7 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs | |||
@@ -208,9 +208,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
208 | Array.Copy(copyIDBytes, 0, im.binaryBucket, 1, copyIDBytes.Length); | 208 | Array.Copy(copyIDBytes, 0, im.binaryBucket, 1, copyIDBytes.Length); |
209 | 209 | ||
210 | if (user != null) | 210 | if (user != null) |
211 | { | ||
212 | user.ControllingClient.SendBulkUpdateInventory(folderCopy); | 211 | user.ControllingClient.SendBulkUpdateInventory(folderCopy); |
213 | } | ||
214 | 212 | ||
215 | // HACK!! | 213 | // HACK!! |
216 | im.imSessionID = folderID.Guid; | 214 | im.imSessionID = folderID.Guid; |
@@ -240,9 +238,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
240 | Array.Copy(copyID.GetBytes(), 0, im.binaryBucket, 1, 16); | 238 | Array.Copy(copyID.GetBytes(), 0, im.binaryBucket, 1, 16); |
241 | 239 | ||
242 | if (user != null) | 240 | if (user != null) |
243 | { | ||
244 | user.ControllingClient.SendBulkUpdateInventory(itemCopy); | 241 | user.ControllingClient.SendBulkUpdateInventory(itemCopy); |
245 | } | ||
246 | 242 | ||
247 | // HACK!! | 243 | // HACK!! |
248 | im.imSessionID = itemID.Guid; | 244 | im.imSessionID = itemID.Guid; |
@@ -288,7 +284,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer | |||
288 | 284 | ||
289 | ScenePresence fromUser = scene.GetScenePresence(new UUID(im.fromAgentID)); | 285 | ScenePresence fromUser = scene.GetScenePresence(new UUID(im.fromAgentID)); |
290 | 286 | ||
291 | fromUser.ControllingClient.SendBulkUpdateInventory(folder); | 287 | // If the user has left the scene by the time the message comes back then we can't send |
288 | // them the update. | ||
289 | if (fromUser != null) | ||
290 | fromUser.ControllingClient.SendBulkUpdateInventory(folder); | ||
292 | }); | 291 | }); |
293 | } | 292 | } |
294 | } | 293 | } |