Offline User Roster Functionality

Hi

Currently if a user is online and in a shared group, then the remove from roster option is not available, but if the user is offline then it is available due to ContactList.showPopup relying on ContactGroup.getContactItemByJID which doesn’t check offline users the user can be removed from the roster. What is the intended behaviour?

I have been removing some functionality and so may have broken something, but when I try to rename and offline user, an exception is thrown, as ContactList.actionPerformed relies on ContactGroup.getContactItemByDisplayName, but it returns null as it also doesn’t check offline users. What is the intended behaviour?

Thank you

Due to offline users being skipped, I propose the following patch, as getContactItemByJID will return null and, if I understand correctly, item will be equal to what is returned by getContactItemByJID if the user is online:

Index: ContactList.java

===================================================================

— ContactList.java (revision 11281)

+++ ContactList.java (working copy)

@@ -1160,7 +1160,7 @@

rosterGroup.removeEntry(rosterEntry);

}

}

  •            contactGroup.removeContactItem(contactGroup.getContactItemByJID(item.getJID())) ;
    
  •            contactGroup.removeContactItem(item);
    

checkGroup(contactGroup);

}

catch (Exception e) {