Unverified Commit ffe14c90 authored by akrherz's avatar akrherz

OF-867 Wrong key in groupMetaCache evict

untested by me, patch by @aberenguel
parent 8e2da200
......@@ -174,9 +174,7 @@ public class GroupManager {
// Remove only the collection of groups the member belongs to.
String member = (String) params.get("member");
if(member != null) {
groupMetaCache.remove(member);
}
evictCachedUserForGroup(member);
}
@Override
......@@ -187,9 +185,7 @@ public class GroupManager {
// Remove only the collection of groups the member belongs to.
String member = (String) params.get("member");
if(member != null) {
groupMetaCache.remove(member);
}
evictCachedUserForGroup(member);
}
@Override
......@@ -200,9 +196,7 @@ public class GroupManager {
// Remove only the collection of groups the member belongs to.
String member = (String) params.get("admin");
if(member != null) {
groupMetaCache.remove(member);
}
evictCachedUserForGroup(member);
}
@Override
......@@ -213,11 +207,20 @@ public class GroupManager {
// Remove only the collection of groups the member belongs to.
String member = (String) params.get("admin");
if(member != null) {
groupMetaCache.remove(member);
}
evictCachedUserForGroup(member);
}
private void evictCachedUserForGroup(String user) {
if(user != null) {
JID userJid = new JID(user);
if (XMPPServer.getInstance().isLocal(userJid)) {
String username = userJid.getNode();
synchronized (username.intern()) {
groupMetaCache.remove(username);
}
}
}
}
});
UserEventDispatcher.addListener(new UserEventListener() {
......@@ -586,7 +589,7 @@ public class GroupManager {
* @return all groups that an entity belongs to.
*/
public Collection<Group> getGroups(JID user) {
String key = user.toBareJID();
String key = user.getNode();
Collection<String> groupNames = (Collection<String>)groupMetaCache.get(key);
if (groupNames == null) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment