Upgrade Fails Due to Modified Repository Key in atlassian-user.xml
Symptoms
Confluence upgrade fails if the repository key in atlassian-user.xml
is of non-default value. For example, this has non-default key:
<ldap key="AD" name="LDAP Repository@hecate.atlassian.com" cache="true">
...
</ldap>
A default key would have:
<ldap key="ldapRepository" name="LDAP Repository@hecate.atlassian.com" cache="true">
...
</ldap>
Upgrade fails with the following stack trace in atlassian-confluence.log
:
2011-06-17 23:19:32,324 ERROR [main] [atlassian.confluence.upgrade.UpgradeLauncherServletContextListener] contextInitialized Upgrade failed, application will not start: com.atlassian.confluence.user.migration.AtlassianUserMigrationException: no matching migrator found for [ com.atlassian.user.configuration.DefaultRepositoryConfiguration@14baaea8 ]
com.atlassian.confluence.upgrade.UpgradeException: com.atlassian.confluence.user.migration.AtlassianUserMigrationException: no matching migrator found for [ com.atlassian.user.configuration.DefaultRepositoryConfiguration@14baaea8 ]
at com.atlassian.confluence.upgrade.AbstractUpgradeManager.upgrade(AbstractUpgradeManager.java:81)
at com.atlassian.confluence.upgrade.impl.DefaultUpgradeManager.upgrade(DefaultUpgradeManager.java:139)
at com.atlassian.confluence.upgrade.UpgradeLauncherServletContextListener.contextInitialized(UpgradeLauncherServletContextListener.java:28)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4205)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4704)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: com.atlassian.confluence.user.migration.AtlassianUserMigrationException: no matching migrator found for [ com.atlassian.user.configuration.DefaultRepositoryConfiguration@14baaea8 ]
at com.atlassian.confluence.user.migration.AtlassianUserMigratorFactory.getMigrator(AtlassianUserMigratorFactory.java:31)
at com.atlassian.confluence.upgrade.upgradetask.AtlassianUserToEmbeddedCrowdConfigurationUpgradeTask.validate(AtlassianUserToEmbeddedCrowdConfigurationUpgradeTask.java:52)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy33.validate(Unknown Source)
at com.atlassian.confluence.upgrade.AbstractUpgradeManager.validate(AbstractUpgradeManager.java:145)
at com.atlassian.confluence.upgrade.AbstractUpgradeManager.upgrade(AbstractUpgradeManager.java:68)
... 17 more
Cause
Confluence uses the repository key in Confluence cache configuration file (ehcache.xml
for standalone edition, confluence-coherence-cache-config-clustered.xml
or confluence-coherence-cache-config.xml
for clustered edition) to identify the repository type. Confluence uses this key to choose the correct user migration path during upgrade.
Note: From Confluence 5.6 the cache configuration files are confluence-home>/shared-home/config/cache-settings-overrides.properties
for Confluence Server (standalone) or <confluence-shared-home>/config/cache-settings-overrides.properties
for Confluence Data Center (clustered).
Resolution
Revert your repository key to default value.
Alternatively, ensure that the customised Confluence cache configuration file exists in the target <confluence-home>/config/
directory.