fix: mutual roster deletion problem
Nick: If a user A deletes user B from his roster (either using our application, or Psi), then user A is automatically deleted from user B's roster too.
XMPP-IM spec, and the last note in section 8 says:
Note: When the user removes the contact from the user's roster, the end state of the contact's roster is that the user is still in the contact's roster with a subscription state of "none"; in order to completely remove the roster item for the user, the contact needs to also send a roster removal request.
Hi, does someone know how to handle this issue in Openfire 3.3.3 ?
I tried the idea Nicholas Clare mentioned above in various ways, but it didn't work out for me
Is there any plan for this to be fixed? As far as I know, the idea I gave in my original forum thread, to report this error, should fix it:
It seems that "org.jivesoftware.wildfire.handler.IQRosterHandler" is the culprit. In the removeItem method (on line 236), it specially checks if the recipient is on the local server, and if he is, it fetches his roster, and deletes the inverse entry. I just commented out lines 243-246, and it worked for me. I haven''t had time to test it too thoroughly yet, so it might have other side effects. I must say, you have documented the code very well, as this is the first time I''ve looked at the source, and I could really follow it.
Obviously, by now the line numbers / class names have changed, but it still works (we compile our own custom version with this fix, every time we upgrade)
I noticed this too. Thank you Nick