Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin
Panel

This article applies to: JIRA Client with JIRA Client plugin installed

The problem

On the JIRA Client administration page, there is an error message that reads:

Alternatively, JIRA Client desktop application fails to synchronize with JIRA on which this plugin is installed with error message JIRA is not properly configured for JIRA Client and a hint to ask your JIRA administrator to enable the Plugin License Storage plugin in JIRA.

However, the Plugin License Storage plugin is enabled (you can verify it by proceeding via the link in the error message on the JIRA Client Configuration page.)

JIRA logs have an entry that looks like this:

Code Block
2012-07-10 19:34:04,434 http-8080-6 WARN admin 1174x353x1 6gu45t 0:0:0:0:0:0:0:1 /secure/JIRAClientAdmin.jspa [almworks.jira.client.JIRAClientAdmin] Plugin License Storage plugin is unavailable
com.atlassian.upm.license.storage.lib.PluginLicenseStoragePluginUnresolvedException: com.atlassian.upm.license.storage.lib.LazyReference$InitializationException: com.atlassian.upm.license.storage.lib.PluginLicenseStoragePluginUnresolvedException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.atlassian.upm.license.storage.lib.ThirdPartyPluginLicenseStorageManagerAccessorImpl': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: com/atlassian/upm/license/storage/plugin/PluginLicenseStorageManager
	at com.atlassian.upm.license.storage.lib.ThirdPartyPluginLicenseStorageManagerImpl.execute(ThirdPartyPluginLicenseStorageManagerImpl.java:288)
...

Genesis

The problem appears in the following scenario:

  1. JIRA Client 3.0.0 RC1 (jiraclient-plugin-3.0.0.rc1) was installed on JIRA 5.0.0 or JIRA 4.x and was functioning properly.
  2. JIRA was updated to 5.0.1 or a later version.
  3. JIRA Client was updated to 3.0.0.

Resolution

To resolve this problem, do the following:

  1. Remove Atlassian Plugin License Storage plugin. It cannot be done in the web interface because it is a system plugin, so you will need to remove the corresponding JAR file. It is located in
    JIRA home/plugins/installed-plugins
    directory and its file name looks like
    plugin.5060132914789620379.plugin-license-storage-plugin.jar.
  2. Restart JIRA.

Explanation

Marketplace-paid plugins like JIRA Client require the Atlassian licensing API. The licensing API implementation is provided by the Universal Plugin Manager (or UPM in short). UPM is itself a JIRA plugin, and it has its own versioning. UPM supports licensing API only starting with version 2.0.1, which comes bundled with JIRA 5.0.1 and later. In order to make Marketplace-paid plugins work with previous versions of JIRA (more specifically, JIRA instances without UPM 2.0.1 or later), Atlassian provides a special plugin called Plugin License Storage. Marketplace-paid plugins come bundled with this plugin, which is installed automagically in case JIRA does not have UPM 2.0.1 or later.

In our case, when JIRA Client 3.0 RC1 is installed on JIRA 4.x or JIRA 5.0.0 (assuming UPM had not been previously updated to 2.0.1+ or higher), it installs Plugin License Storage plugin and uses it to manage licenses. When JIRA is updated, the UPM is updated as well, so Plugin License Storage plugin is not needed anymore.

JIRA Client 3.0.0 comes bundled with a newer version of Plugin License Storage plugin than that in JIRA Client 3.0.0 RC1. However the newer version of Plugin License Storage plugin is not installed because UPM is capable of handling the licensing; the older version remains. Somehow the wiring between JIRA Client and the JIRA plugin system causes JIRA Client to use the newer version of Plugin License Storage plugin instead of UPM 2.0.1+ for license management. Finally, the newer version of Plugin License Storage plugin is not there, so all attempts to check license result in an error that is shown to you.

Removal of Plugin License Storage plugin remedies the problem because JIRA Client now uses the new UPM. Please note that the restart JIRA step is mandatory.

This operation is safe because Plugin License Storage plugin is used only by Marketplace-paid JIRA plugins, and they should be using the new UPM instead of it anyway.