I suspect that you’re seeing the initial values, and are getting to it before the data has been updated. When the roster is initially loaded, it doesn’t come with everyone’s actual status, that comes in a presence packet later on. I encountered a similar problem myself. In my case, I was setting my presence before the roster was loaded, and it was causing openfire to send everyone else’s presence before the roster reply, so it had nothing to fill out. I fixed it by:
Not sending my presence out until after the roster was loaded.
Attaching my code to a CollectionEvent.COLLECTION_CHANGE event, ie: