Unable to start the plugin container for plugin 'com.atlassian.upm.plugin-license-storage-plugin' after upgrade to Confluence 6.x
Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Problem
After upgrading to Confluence 6.x, the Atlassian Universal Plugin Manager - Plugin License Storage plugin (com.atlassian.upm.plugin-license-storage-plugin
) can't be enabled.
The following error appears in the atlassian-confluence.log
:
2017-03-16 17:07:07,764 ERROR [ThreadPoolAsyncTaskExecutor::Thread 24] [plugin.osgi.factory.OsgiPlugin] onPluginContainerFailed Unable to start the plugin container for plugin 'com.atlassian.upm.plugin-license-storage-plugin'
-- referer: https://wiki.wiki.com/plugins/servlet/upm/manage/all | url: /rest/plugins/1.0/com.atlassian.upm.plugin-license-storage-plugin-key | traceId: 1fe445b981f47ecc | userName: billy
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'licenseReceiptValidator' defined in URL [bundle://206.0:0/META-INF/spring/atlassian-plugins-components.xml]: Unsatisfied dependency expressed through constructor argument with index 0 of type [com.atlassian.upm.license.internal.PluginLicenseRepository]...Error creating bean with name 'licenseManagerProvider' defined in URL [bundle://206.0:0/META-INF/spring/atlassian-plugins-components.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.atlassian.upm.license.internal.impl.LicenseManagerProviderImpl]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: Could not initialize class com.atlassian.extras.decoder.v1.Version1LicenseDecoder
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:185)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1143)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1046)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)
...
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.atlassian.extras.decoder.v1.Version1LicenseDecoder
at com.atlassian.upm.license.internal.impl.LicenseManagerProviderImpl.<init>(LicenseManagerProviderImpl.java:40)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147)
... 61 more
Cause
This problem affects customers who have previously upgraded the Atlassian Universal Plugin Manager - Plugin License Storage plugin. When a system plugin is upgraded via UPM, Confluence considers it to be a "user installed" plugin and stores data in the PLUGINDATA
table. As the Plugin License Storage plugin (com.atlassian.upm.plugin-license-storage-plugin
) has been unbundled from Confluence 6.x, it fails to load the PLUGINDATA
entry.
Notes
This issue has been resolved in Confluence 6.2.4 and Confluence 6.3.1, see
Workaround
Always back up your data before performing any modifications to the database. If possible, test any alter, insert, update, or delete SQL commands on a staging server first.
To resolve this problem you'll need to remove the entry for this plugin manually:
- Stop Confluence.
Check whether there is an entry for this plugin in the
PLUGINDATA
table:select * from PLUGINDATA where PLUGINKEY='com.atlassian.upm.plugin-license-storage-plugin';
Delete the bad entry in PLUGINDATA by executing the following DELETE statement:
delete from PLUGINDATA where PLUGINKEY='com.atlassian.upm.plugin-license-storage-plugin';
- Clear the Confluence plugin cache - see How to clear Confluence plugins cache for more info.
- Start Confluence.