Concurrency issues during plugin load/unload
There are two points in Openfire where plugins are loaded/unloaded:
Through the plugin monitor (which picks up on file system changed, such as new jar files)
Through the admin panel (where an admin can manually do things to plugins)
When executing at the same time, concurrency-related bugs pop up, that can leave the state of the plugin manager in limbo.
I've applied a fix that causes the admin console to not directly affect state of the plugin manager. Instead, it modifies file-based metadata, causing the plugin monitor to kick in.