Explicit loading of plugins fails due to wrong classloader.
Description
If you install any plugin, you get a class not found. If you restart, everything is ok, it is just loading a new plugin "on the fly". Looking at the source, there is a difference in how the URLClassLoader is used on startup and "on the fly".
SEVERE: Unable to load plugin org.jivesoftware.spark.plugins.transfersettings.FileTransferSettingsPlugin. java.lang.ClassNotFoundException: org.jivesoftware.spark.plugins.transfersettings.FileTransferSettingsPlugin at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at org.jivesoftware.spark.PluginManager.loadPublicPlugin(PluginManager.java:260) at org.jivesoftware.spark.PluginManager.addPlugin(PluginManager.java:549) at org.jivesoftware.sparkimpl.plugin.viewer.PluginViewer$4.run(PluginViewer.java:331) at java.lang.Thread.run(Unknown Source)
If you install any plugin, you get a class not found. If you restart, everything is ok, it is just loading a new plugin "on the fly". Looking at the source, there is a difference in how the URLClassLoader is used on startup and "on the fly".
SEVERE: Unable to load plugin org.jivesoftware.spark.plugins.transfersettings.FileTransferSettingsPlugin.
java.lang.ClassNotFoundException: org.jivesoftware.spark.plugins.transfersettings.FileTransferSettingsPlugin
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.jivesoftware.spark.PluginManager.loadPublicPlugin(PluginManager.java:260)
at org.jivesoftware.spark.PluginManager.addPlugin(PluginManager.java:549)
at org.jivesoftware.sparkimpl.plugin.viewer.PluginViewer$4.run(PluginViewer.java:331)
at java.lang.Thread.run(Unknown Source)