Commit 3a25f069 authored by Gaston Dombiak's avatar Gaston Dombiak Committed by gato

1) Fixed deletion of groups. JM-701

2) Fixed caching problem. JM-801

git-svn-id: http://svn.igniterealtime.org/svn/repos/wildfire/trunk@4852 b35dd754-fafc-0310-a699-88a17e54d16e
parent 4eb05b84
...@@ -255,9 +255,14 @@ public class RosterManager extends BasicModule implements GroupEventListener, Us ...@@ -255,9 +255,14 @@ public class RosterManager extends BasicModule implements GroupEventListener, Us
} }
public void groupDeleting(Group group, Map params) { public void groupDeleting(Group group, Map params) {
// Iterate on all the group users and update their rosters // Get group members
for (JID deletedUser : getAffectedUsers(group)) { Collection<JID> users = new HashSet<JID>(group.getMembers());
groupUserDeleted(group, deletedUser); users.addAll(group.getAdmins());
// Get users whose roster will be updated
Collection<JID> affectedUsers = getAffectedUsers(group);
// Iterate on group members and update rosters of affected users
for (JID deletedUser : users) {
groupUserDeleted(group, affectedUsers, deletedUser);
} }
} }
...@@ -618,6 +623,11 @@ public class RosterManager extends BasicModule implements GroupEventListener, Us ...@@ -618,6 +623,11 @@ public class RosterManager extends BasicModule implements GroupEventListener, Us
if (roster != null) { if (roster != null) {
roster.addSharedUser(group, addedUser); roster.addSharedUser(group, addedUser);
} }
// Check if the roster is still not in memory
if (addedUserRoster == null && server.isLocal(addedUser)) {
addedUserRoster =
(Roster) CacheManager.getCache("Roster").get(addedUser.getNode());
}
// Update the roster of the newly added group user. // Update the roster of the newly added group user.
if (addedUserRoster != null) { if (addedUserRoster != null) {
Collection<Group> groups = GroupManager.getInstance().getGroups(userToUpdate); Collection<Group> groups = GroupManager.getInstance().getGroups(userToUpdate);
...@@ -681,6 +691,11 @@ public class RosterManager extends BasicModule implements GroupEventListener, Us ...@@ -681,6 +691,11 @@ public class RosterManager extends BasicModule implements GroupEventListener, Us
if (roster != null) { if (roster != null) {
roster.deleteSharedUser(group, deletedUser); roster.deleteSharedUser(group, deletedUser);
} }
// Check if the roster is still not in memory
if (deletedUserRoster == null && server.isLocal(deletedUser)) {
deletedUserRoster =
(Roster) CacheManager.getCache("Roster").get(deletedUser.getNode());
}
// Update the roster of the newly deleted group user. // Update the roster of the newly deleted group user.
if (deletedUserRoster != null) { if (deletedUserRoster != null) {
deletedUserRoster.deleteSharedUser(userToUpdate, group); deletedUserRoster.deleteSharedUser(userToUpdate, group);
......
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