private void addOrUpdateItem(final XmppURI jid, final String name, final SubscriptionState subscriptionState, final String... groups) {
final RosterItem item = new RosterItem(jid, subscriptionState, name, null);
item.setGroups(groups);
final IQ iq = new IQ(IQ.Type.set);
item.addStanzaTo(iq.addQuery(XmppNamespaces.ROSTER));
session.sendIQ("roster", iq, new IQCallback() {
@Override
public void onIQSuccess(final IQ iq) {
eventBus.fireEventFromSource(new RequestFailedEvent("rosterItem", "roster item can't be updated", iq), this);