I have an openfire plugin which launch cuncurrent threads to managed user roster.
A problem raised during the test, a deadlock in the SequenceManager.next() method.
The problem was fixed exchanging the order of
in this way:
long rosterID = SequenceManager.nextID(JiveConstants.ROSTER);
con = DbConnectionManager.getConnection();
The nextID method call the DbConnectionManager.getConnection() as well, then when there is no longer available db connection the thread block all db accesses.
Fixed =) (in trunk at least)