Hi,
I am trying to connect to a tigase server, and read the roster, using a fresh copy of Smack 4.0.5.
After I connect, I get a "IQ Received" packet like this:
<iq id="tig3" to="user0221@group2.2.1/Smack" type="set">
<query xmlns="jabber:iq:roster">
<item jid="user0000@group2.2.1" name="user0000" subscription="both">
<group>Group Roster</group>
</item>
<item jid="user0001@group2.2.1" name="user0001" subscription="both">
<group>Group Roster</group>
</item>
<item jid="user0002@group2.2.1" name="user0002" subscription="both">
<group>Group Roster</group>
</item>
etc...
<item jid="user0019@group2.2.1" name="user0019" subscription="both">
<group>Group Roster</group>
</item>
</query>
</iq>
When Smack 4.0.5 sees this, it issues the warning:
WARNING: Ignoring roster push with not exaclty one entry. size=20
However, from RFC-3921:
7. Roster Management
etc...
7.1. Syntax and Semantics
Rosters are managed using IQ stanzas, specifically by means of a
<query/> child element qualified by the 'jabber:iq:roster' namespace.
The <query/> element MAY contain one or more <item/> children, each
describing a unique roster item or "contact".
So, this appears to state that the stanza is correct, and that the error is not valid:
Roster.java:1043
// A roster push must contain exactly one entry | |
Collection<Item> items = rosterPacket.getRosterItems(); | |
if (items.size() != 1) { | |
LOGGER.warning("Ignoring roster push with not exaclty one entry. size=" + items.size()); | |
return; | |
} |
So, I guess my question is, who is right? I can't imagine that Smack has not been handling rosters correctly... Maybe it's a configuration thing?
Thanks very much for any help!
--
Jamie.