When the server is started with an empty “ofPrivacyList” table, the behaviour concerning PrivacyLists is not robust.
Use any account to create one PrivacyList, then restart the server.
There are 2 instances of PrivacyListProvider (one in PrivacyListManager and the other in IQPrivacyHandler)
Both instances have separate privacyListCount variables, which are filled during PrivacyListProvider constructor (== server startup).
Thus, if at server startup the privacyListCount is 0, and one of the instances adds a PrivacyList, the other will never be informed and discard all changes and reads. This leads to inconsistent behaviour.
Make privacyListCount static.
Pull request here : https://github.com/igniterealtime/Openfire/pull/656