Unable to start the plugin container for plugin 'com.atlassian.upm.plugin-license-storage-plugin' after upgrade to Confluence 6.x
プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。
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.
*Fisheye および Crucible は除く
問題
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.
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
原因
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.
注意
This issue has been resovled in Confluence 6.2.4 and Confluence 6.3.1, see
- CONFSERVER-51958 - Getting issue details... STATUS
回避策
データベースの変更を行う場合は必ず事前にバックアップを取得してください。可能な場合は、まずステージング サーバーで SQL コマンドの変更、挿入、更新、または削除を行うようにします。
To resolve this problem you'll need to remove the entry for this plugin manually:
- 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.
- Confluence を起動します。