Symptoms
If Crowd has been running with JDK 1.6 in the past, and then is changed to JDK 1.7, some plugins will fail to load, due to cached dependencies.
The following message appears in the log file:
2012-10-31 09:13:09,641 main ERROR [atlassian.plugin.manager.PluginEnabler] Unable to enable plugin crowd-rest-plugin
com.atlassian.plugin.osgi.container.OsgiContainerException: Cannot start plugin: crowd-rest-plugin
at com.atlassian.plugin.osgi.factory.OsgiPlugin.enableInternal(OsgiPlugin.java:430)
at com.atlassian.plugin.impl.AbstractPlugin.enable(AbstractPlugin.java:237)
at com.atlassian.plugin.impl.AbstractDelegatingPlugin.enable(AbstractDelegatingPlugin.java:213)
at com.atlassian.plugin.manager.PluginEnabler.actualEnable(PluginEnabler.java:114)
at com.atlassian.plugin.manager.PluginEnabler.enable(PluginEnabler.java:99)
at com.atlassian.plugin.manager.DefaultPluginManager.addPlugins(DefaultPluginManager.java:713)
at com.atlassian.plugin.manager.DefaultPluginManager.init(DefaultPluginManager.java:166)
at com.atlassian.crowd.plugin.CrowdPluginManager.init(CrowdPluginManager.java:69)
at com.atlassian.crowd.plugin.CrowdPluginManager.onApplicationStartedEvent(CrowdPluginManager.java:82)
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:601)
at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:36)
at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$2.run(AsynchronousAbleEventDispatcher.java:60)
at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$1.execute(AsynchronousAbleEventDispatcher.java:28)
at com.atlassian.event.internal.AsynchronousAbleEventDispatcher.dispatch(AsynchronousAbleEventDispatcher.java:56)
at com.atlassian.event.internal.EventPublisherImpl.invokeListeners(EventPublisherImpl.java:151)
at com.atlassian.event.internal.EventPublisherImpl.publish(EventPublisherImpl.java:70)
at com.atlassian.crowd.console.listener.StartupListener.contextInitialized(StartupListener.java:106)
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.addChildInternal(ContainerBase.java:799)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1315)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1061)
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:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: org.osgi.framework.BundleException: Unresolved constraint in bundle com.atlassian.crowd.rest-plugin [18]: Unable to resolve 18.0: missing requirement [18.0] package; (&(package=com.atlassian.plugins.rest.common)(version>=2.5.1.1)) [caused by: Unable to resolve 13.0: missing requirement [13.0] package; (&(package=javax.activation)(version>=0.0.0.1_006_JavaSE)(version<=0.0.0.1_006_JavaSE))]
at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3409)
at org.apache.felix.framework.Felix.startBundle(Felix.java:1709)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:905)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:892)
at com.atlassian.plugin.osgi.factory.OsgiPlugin.enableInternal(OsgiPlugin.java:402)
... 43 more
Workaround
Please see the KB here: https://confluence.atlassian.com/display/CROWDKB/Crowd+2.5+unable+to+be+used+after+upgrading+to+JDK+1.7