Incorporate the attached plugin manager patch. From aznidin:
"With the existing code, a parent plugin's destroyPlugin() is called more than once, addition of which is caused by the number of children plugins. It's the side effect of recursion. The key point is to call parentPluginMap.remove() and childPluginMap.remove() first before recursing the unloadPlugin().
Also, I've added some more codes into PluginManager.java for proper PluginListener implementation. Still a recursion effect and the order of plugins destroyed, the PluginListener.pluginDestroyed() isn't called whenever it should be. Additional info is provided as source comments. Please see the diff file attached."
Testing of the fix is pending. Code is in SVN now.
I have tried openfire_2008-11-17 nightly, but it has no affect on my problem with uninstalling the plugins. This happens only on my Windows box. Linux box is working fine with that. Uninstall takes a minute or so. Then it will show that plugin was uninstalled, but it still lists that plugin on the Plugins page as installed. After another few minutes it will finally dissapear. But he folder of such plugin in /openfire/plugins/ will stay until next openfire start. If i try to uninstall another plugin, then suddenly first uninstalled plugin appears on the list again.