diff --git a/core/src/main/java/org/jivesoftware/spark/ui/ContactList.java b/core/src/main/java/org/jivesoftware/spark/ui/ContactList.java index e62e5212c..81b003d56 100644 --- a/core/src/main/java/org/jivesoftware/spark/ui/ContactList.java +++ b/core/src/main/java/org/jivesoftware/spark/ui/ContactList.java @@ -1133,7 +1133,7 @@ public ContactGroup getContactGroup(String groupName) { ContactGroup cGroup = null; for (ContactGroup contactGroup : groupList) { - if (contactGroup.getGroupName().equals(groupName)) { + if (contactGroup.getGroupName().equalsIgnoreCase(groupName)) { cGroup = contactGroup; break; } else { @@ -1178,15 +1178,13 @@ public ContactGroup getParentGroup(String groupName) { * @return the nested ContactGroup. If not found, null will be returned. */ private ContactGroup getSubContactGroup(ContactGroup group, String groupName) { - final Iterator contactGroups = group.getContactGroups().iterator(); ContactGroup grp = null; - while (contactGroups.hasNext()) { - ContactGroup contactGroup = contactGroups.next(); - if (contactGroup.getGroupName().equals(groupName)) { + for (ContactGroup contactGroup : group.getContactGroups()) { + if (contactGroup.getGroupName().equalsIgnoreCase(groupName)) { grp = contactGroup; break; - } else if (contactGroup.getContactGroups().size() > 0) { + } else if (!contactGroup.getContactGroups().isEmpty()) { grp = getSubContactGroup(contactGroup, groupName); if (grp != null) { break; @@ -1518,9 +1516,12 @@ public void actionPerformed(ActionEvent actionEvent) { String groupName = item.getGroupName(); ContactGroup contactGroup = getContactGroup(groupName); + if (contactGroup == null) { + Log.error("Unable to get contact group for " + groupName); + } // Only show "Remove Contact From Group" if the user belongs to more than one group. - if (!contactGroup.isSharedGroup() && !contactGroup.isOfflineGroup() && contactGroup != getUnfiledGroup()) { + if (contactGroup != null && !contactGroup.isSharedGroup() && !contactGroup.isOfflineGroup() && contactGroup != getUnfiledGroup()) { Roster roster = Roster.getInstanceFor(SparkManager.getConnection()); RosterEntry entry = roster.getEntry(item.getJid().asBareJid()); if (entry != null) { @@ -1561,7 +1562,9 @@ public void actionPerformed(ActionEvent e) { // See if we should disable the option to remove a contact if (!Default.getBoolean(Default.DISABLE_REMOVALS) && Enterprise.containsFeature(Enterprise.REMOVALS_FEATURE)) { - if (!contactGroup.isSharedGroup() && !isInSharedGroup) popup.add(removeAction); + if (contactGroup != null && !contactGroup.isSharedGroup() && !isInSharedGroup) { + popup.add(removeAction); + } } // See if we should disable the option to rename a contact