From f7aa018a783d2e04cdba6d23b9012695f1554061 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Mon, 25 Feb 2013 10:24:28 -0800 Subject: [PATCH] Fixes mantis #6551 -- misspelled key name. Also fixed an issue with the roles cache. --- .../Groups/Remote/GroupsServiceRemoteConnectorModule.cs | 2 +- .../Addons/Groups/Remote/GroupsServiceRobustConnector.cs | 2 +- OpenSim/Addons/Groups/RemoteConnectorCacheWrapper.cs | 9 ++++++++- OpenSim/Addons/Groups/Service/GroupsService.cs | 6 ++++++ 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/OpenSim/Addons/Groups/Remote/GroupsServiceRemoteConnectorModule.cs b/OpenSim/Addons/Groups/Remote/GroupsServiceRemoteConnectorModule.cs index d1c02db721..628ce4dd80 100644 --- a/OpenSim/Addons/Groups/Remote/GroupsServiceRemoteConnectorModule.cs +++ b/OpenSim/Addons/Groups/Remote/GroupsServiceRemoteConnectorModule.cs @@ -273,7 +273,7 @@ namespace OpenSim.Groups public bool AddGroupRole(string RequestingAgentID, UUID groupID, UUID roleID, string name, string description, string title, ulong powers, out string reason) { string r = string.Empty; - bool success = m_CacheWrapper.AddGroupRole(roleID, description, name, powers, title, delegate + bool success = m_CacheWrapper.AddGroupRole(groupID, roleID, description, name, powers, title, delegate { return m_GroupsService.AddGroupRole(RequestingAgentID, groupID, roleID, name, description, title, powers, out r); }); diff --git a/OpenSim/Addons/Groups/Remote/GroupsServiceRobustConnector.cs b/OpenSim/Addons/Groups/Remote/GroupsServiceRobustConnector.cs index 8c257edcc0..f991d016f0 100644 --- a/OpenSim/Addons/Groups/Remote/GroupsServiceRobustConnector.cs +++ b/OpenSim/Addons/Groups/Remote/GroupsServiceRobustConnector.cs @@ -371,7 +371,7 @@ namespace OpenSim.Groups Dictionary result = new Dictionary(); if (!request.ContainsKey("RequestingAgentID") || !request.ContainsKey("GroupID") || !request.ContainsKey("RoleID") || - !request.ContainsKey("Name") || !request.ContainsKey("Descrption") || !request.ContainsKey("Title") || + !request.ContainsKey("Name") || !request.ContainsKey("Description") || !request.ContainsKey("Title") || !request.ContainsKey("Powers") || !request.ContainsKey("OP")) NullResult(result, "Bad network data"); diff --git a/OpenSim/Addons/Groups/RemoteConnectorCacheWrapper.cs b/OpenSim/Addons/Groups/RemoteConnectorCacheWrapper.cs index f789626d07..e7d38c2020 100644 --- a/OpenSim/Addons/Groups/RemoteConnectorCacheWrapper.cs +++ b/OpenSim/Addons/Groups/RemoteConnectorCacheWrapper.cs @@ -393,7 +393,7 @@ namespace OpenSim.Groups } } - public bool AddGroupRole(UUID roleID, string description, string name, ulong powers, string title, BooleanDelegate d) + public bool AddGroupRole(UUID groupID, UUID roleID, string description, string name, ulong powers, string title, BooleanDelegate d) { if (d()) { @@ -406,8 +406,15 @@ namespace OpenSim.Groups role.Title = title; lock (m_Cache) + { m_Cache.AddOrUpdate("role-" + roleID.ToString(), role, GROUPS_CACHE_TIMEOUT); + // also remove this list + if (m_Cache.Contains("roles-" + groupID.ToString())) + m_Cache.Remove("roles-" + groupID.ToString()); + + } + return true; } diff --git a/OpenSim/Addons/Groups/Service/GroupsService.cs b/OpenSim/Addons/Groups/Service/GroupsService.cs index fc567dd6c3..0668870ef1 100644 --- a/OpenSim/Addons/Groups/Service/GroupsService.cs +++ b/OpenSim/Addons/Groups/Service/GroupsService.cs @@ -785,10 +785,16 @@ namespace OpenSim.Groups RoleData data = m_Database.RetrieveRole(groupID, roleID); if (add && data != null) // it already exists, can't create + { + m_log.DebugFormat("[Groups]: Group {0} already exists. Can't create it again", groupID); return false; + } if (!add && data == null) // it deosn't exist, can't update + { + m_log.DebugFormat("[Groups]: Group {0} doesn't exist. Can't update it", groupID); return false; + } if (add) data = new RoleData();