I tried changing the group of three different roster items at once (against jivesoftware.com server):
(all users belonged to the group "Test" before)
<iq id="y2g208" type="set"><query xmlns="jabber:iq:roster"><item jid="Omega1@jivesoftware.com" name="Omega1" subscription="both"><group>Yeah</group></item><item jid="iain@jivesoftware.com" name="iain" subscription="both"><group>Yeah</group></item><item jid="billjive@jivesoftware.com" name="billjive" subscription="both"><group>Yeah</group></item></query></iq>
The server only changed the group name of the first item and ignored the rest. Here''s what I got back from the server:
<iq type="set"><query xmlns="jabber:iq:roster">
<item jid="Omega1@jivesoftware.com" subscription="both" name="Omega1"><group>Yeah</group></item><item jid="iain@jivesoftware.com" subscription="both" ask="subscribe" name="iain"><group>Test</group></item>
<item jid="billjive@jivesoftware.com" subscription="both" name="billjive"><group>Test</group></item></query></iq>
<iq from="jivesoftware.com" to="matt@jivesoftware.com/2Ynf" type="result" id="y2g208"/>
First, noticed that it is sending back two packets. Why? Second, the group is only changed correctly for the first user.
Regards,
Matt