Confluence Doesn't Start Due to 'Duplicate plugin found'
Symptoms
After recently installing a plugin either by placing the jar file in <CONFLUENCE_INSTALL>/confluence/WEB-INF/lib
directory or via the Administration > Plugins page, confluence fails to start up with the following in the atlassian-confluence.log file:
2010-03-27 12:34:16,237 ERROR [main] [atlassian.confluence.event.ConfluenceEventManager] publishEvent An exception was encountered while processing the event: com.atlassian.confluence.event.events.admin.ConfluenceReadyEvent[source=com.atlassian.confluence.upgrade.impl.DefaultUpgradeManager@56be1a11]
java.lang.RuntimeException: Error initialising plugin manager: Duplicate plugin found (installed version is the same or older) and could not be unloaded: 'com.pantero.confluence.plugins.testplans'
at com.atlassian.confluence.plugin.ConfluencePluginManager.processConfluenceReadyEvent(ConfluencePluginManager.java:276)
at com.atlassian.confluence.plugin.ConfluencePluginManager.onApplicationEvent(ConfluencePluginManager.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
...
at $Proxy8.publishEvent(Unknown Source)
at com.atlassian.confluence.upgrade.impl.DefaultUpgradeManager.upgrade(DefaultUpgradeManager.java:73)
...
Caused by: com.atlassian.plugin.PluginParseException: Duplicate plugin found (installed version is the same or older) and could not be unloaded: 'com.pantero.confluence.plugins.testplans'
at com.atlassian.plugin.manager.DefaultPluginManager.addPlugins(DefaultPluginManager.java:482)
at com.atlassian.plugin.manager.DefaultPluginManager.init(DefaultPluginManager.java:166)
at com.atlassian.confluence.plugin.ConfluencePluginManager.init(ConfluencePluginManager.java:163)
at com.atlassian.confluence.plugin.ConfluencePluginManager.processConfluenceReadyEvent(ConfluencePluginManager.java:272)
... 46 more
Caused by: com.atlassian.plugin.PluginException: Plugin is not uninstallable: com.pantero.confluence.plugins.testplans
at com.atlassian.plugin.manager.DefaultPluginManager.ensurePluginAndLoaderSupportsUninstall(DefaultPluginManager.java:399)
at com.atlassian.plugin.manager.DefaultPluginManager.unloadPlugin(DefaultPluginManager.java:379)
at com.atlassian.plugin.manager.DefaultPluginManager.uninstall(DefaultPluginManager.java:352)
at com.atlassian.plugin.manager.DefaultPluginManager.updatePlugin(DefaultPluginManager.java:555)
at com.atlassian.plugin.manager.DefaultPluginManager.addPlugins(DefaultPluginManager.java:476)
... 49 more
Cause
A similar issue was discovered at Confluence Doesn't Start Due to 'Duplicate plugin found', however this is not considered a bug as plugins in Confluence should not be installed via the classpath (i.e. put in the <CONFLUENCE_INSTALL>/confluence/WEB-INF/lib
directory). They should be only installed via the Administration >> Plugins
page within the Confluence Administration.
When confluence starts up it loads the classpath plugin first and then discovers that there is a newer version of the plugin in the database. In order to install the new version it first needs to uninstall the old one, but because it is a 'classpath' plugin it cannot be uninstalled hence the exception.
Resolution
Remove the plugin from the <CONFLUENCE_INSTALL>/confluence/WEB-INF/lib
directory and restart Confluence.