diff --git a/OpenSim/Framework/Communications/Cache/AgentAssetTransactionsManager.cs b/OpenSim/Framework/Communications/Cache/AgentAssetTransactionsManager.cs
index 70471ccd0f..c9c35d2573 100644
--- a/OpenSim/Framework/Communications/Cache/AgentAssetTransactionsManager.cs
+++ b/OpenSim/Framework/Communications/Cache/AgentAssetTransactionsManager.cs
@@ -81,28 +81,17 @@ namespace OpenSim.Framework.Communications.Cache
/// Get the collection of asset transactions for the given user.
///
///
- ///
+ /// null if this agent does not have an asset transactions collection
public AgentAssetTransactions GetUserTransactions(LLUUID userID)
{
if (AgentTransactions.ContainsKey(userID))
{
return AgentTransactions[userID];
}
+
return null;
}
- public void HandleInventoryFromTransaction(IClientAPI remoteClient, LLUUID transactionID, LLUUID folderID,
- uint callbackID, string description, string name, sbyte invType,
- sbyte type, byte wearableType, uint nextOwnerMask)
- {
- AgentAssetTransactions transactions = GetUserTransactions(remoteClient.AgentId);
- if (transactions != null)
- {
- transactions.RequestCreateInventoryItem(remoteClient, transactionID, folderID, callbackID, description,
- name, invType, type, wearableType, nextOwnerMask);
- }
- }
-
public void HandleUDPUploadRequest(IClientAPI remoteClient, LLUUID assetID, LLUUID transaction, sbyte type,
byte[] data, bool storeLocal, bool tempFile)
{
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index 953dce72d5..0dc3139628 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -449,7 +449,7 @@ namespace OpenSim.Region.Environment.Scenes
/// Create a new inventory item.
///
///
- ///
+ ///
///
///
///
@@ -458,14 +458,16 @@ namespace OpenSim.Region.Environment.Scenes
///
///
///
- public void CreateNewInventoryItem(IClientAPI remoteClient, LLUUID transActionID, LLUUID folderID,
+ public void CreateNewInventoryItem(IClientAPI remoteClient, LLUUID transactionID, LLUUID folderID,
uint callbackID, string description, string name, sbyte invType,
sbyte assetType,
byte wearableType, uint nextOwnerMask)
{
- if (transActionID == LLUUID.Zero)
+ if (transactionID == LLUUID.Zero)
{
- CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId);
+ CachedUserInfo userInfo
+ = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId);
+
if (userInfo != null)
{
AssetBase asset = CreateAsset(name, description, invType, assetType, null);
@@ -473,13 +475,30 @@ namespace OpenSim.Region.Environment.Scenes
CreateNewInventoryItem(remoteClient, folderID, callbackID, asset, nextOwnerMask);
}
+ else
+ {
+ m_log.ErrorFormat(
+ "userInfo for agent uuid {0} unexpectedly null in CreateNewInventoryItem",
+ remoteClient.AgentId);
+ }
}
else
{
- CommsManager.TransactionsManager.HandleInventoryFromTransaction(remoteClient, transActionID, folderID,
- callbackID, description, name, invType,
- assetType, wearableType, nextOwnerMask);
- //System.Console.WriteLine("request to create inventory item from transaction " + transActionID);
+ AgentAssetTransactions transactions
+ = CommsManager.TransactionsManager.GetUserTransactions(remoteClient.AgentId);
+
+ if (transactions != null)
+ {
+ transactions.RequestCreateInventoryItem(
+ remoteClient, transactionID, folderID, callbackID, description,
+ name, invType, assetType, wearableType, nextOwnerMask);
+ }
+ else
+ {
+ m_log.ErrorFormat(
+ "Agent asset transactions for agent {0} uuid {1} in transaction uuid {2} unexpectedly null!",
+ remoteClient.Name, remoteClient.AgentId, transactionID);
+ }
}
}