After connection termination all roster entries turned offline and roster state set to uninitialized. And if connection was resumed, roster is not loaded again.
I think that roster with saved presences should be restored in some way, but I didn’t find how to do that. Am I wrong or is it not implemented yet?
Ahh, yes, after a quick look at the code, this could be very possible.
The Roster’s connection listener resets the roster state on connectionTerminated(), which is called in both cases, i.e. a clean termination and an unclean one. But in case of an unclean one, SM may be used. In which case the roster state should be kept.
I’ve uploaded Smack 4.2.0-beta2-SNAPSHOT with Only reset Roster on clean termination · Flowdalic/Smack@fc3f5ef · GitHub . Could you try and report back if it fixes the issue for you?