RosterGroup modifications should depend on roster push
Description
As described in RFC3921 and more detailed in RFC3921bis updating a roster item should work in the same procedure like adding a roster item. This means it should depend on the roster push from the server to ensure a synchronized roster. But the RosterGroup#addEntry and RosterGroup#removeEntry adding/removing the item after the successful result of the request IQ. Also the Roster#RosterPacketListener which handles the roster pushes have to add or remove the roster entry from the groups. This can lead to an incorrect state.
Environment
None
Activity
Show:
Guenther Niess February 16, 2010 at 3:11 PM
Committed a patch to revision 11634.
Guenther Niess February 16, 2010 at 3:07 PM
I've committed a unit test which tests the RFC roster examples. The testUpdateRosterItem test results with duplicated roster entries for romeo which is a result of this bug.
As described in RFC3921 and more detailed in RFC3921bis updating a roster item should work in the same procedure like adding a roster item. This means it should depend on the roster push from the server to ensure a synchronized roster. But the
RosterGroup#addEntry
andRosterGroup#removeEntry
adding/removing the item after the successful result of the request IQ. Also theRoster#RosterPacketListener
which handles the roster pushes have to add or remove the roster entry from the groups. This can lead to an incorrect state.