Openfire uses event listening in various places: in various places, a collection of 'listeners' is maintained, on which a method is invoked whenever something happens.
A common pattern for dispatching an event is this:
When an event is dispatched to listeners, an exception thrown by one of the listeners should not prevent the other listeners from being invoked, which is what would happen in the code above.
The pattern above should be replaced by something like this:
Please find and replace all instances of the above pattern!