Uploaded image for project: 'Crowd Data Center'
  1. Crowd Data Center
  2. CWD-2967

Upgrading from Java 1.6 to 1.7 fails due to dependencies recorded in the OSGi cache

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Low Low
    • 2.6.2
    • None
    • None
    • None

      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

            [CWD-2967] Upgrading from Java 1.6 to 1.7 fails due to dependencies recorded in the OSGi cache

            joe added a comment -

            Starting Crowd with 1.6 and then restarting with 1.7 ends up with this error:

            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.7.0)) [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))]
            

            I've confirmed that, after upgrading the plugins framework to a version that includes the fix, Crowd starts up without that error.

            joe added a comment - Starting Crowd with 1.6 and then restarting with 1.7 ends up with this error: 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.7.0)) [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))] I've confirmed that, after upgrading the plugins framework to a version that includes the fix, Crowd starts up without that error.

            joe added a comment -

            As a workaround, from the CROWDKB article:

            To resolve this, the caches have to be cleared. To do so, follow these steps :

            Shut down Crowd
            Clear your cache. To do this, access your Crowd Home Directory. There, delete these 2 folders : bundled-plugins and caches
            Startup Crowd

            joe added a comment - As a workaround, from the CROWDKB article : To resolve this, the caches have to be cleared. To do so, follow these steps : Shut down Crowd Clear your cache. To do this, access your Crowd Home Directory. There, delete these 2 folders : bundled-plugins and caches Startup Crowd

              jwalton joe
              dmason David Mason (Inactive)
              Affected customers:
              0 This affects my team
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: