Unresolved constraint in bundle - Fisheye fails to start
Symptoms
When starting (or restarting Fisheye/Crucible), the application fails and the following is logged:
E.g. #1:
2013-03-26 15:29:23,194 ERROR [WrapperStartStopAppMain ] com.atlassian.plugin.osgi.factory.OsgiPlugin OsgiPlugin-enableInternal - Detected an error (BundleException) enabling the plugin 'com.atlassian.applinks.applinks-plugin' : Unresolved constraint in bundle com.atlassian.applinks.plugin [17]: Unable to resolve 17.0: missing requirement [17.0] package; (&(package=com.atlassian.plugins.rest.common)(version>=0.0.0)) [caused by: Unable to resolve 42.0: missing requirement [42.0] package; (&(package=javax.imageio)(version>=0.0.0.1_006_JavaSE)(version<=0.0.0.1_006_JavaSE))]. This error usually occurs when your plugin imports a package from another bundle with a specific version constraint and either the bundle providing that package doesn't meet those version constraints, or there is no bundle available that provides the specified package. For more details on how to fix this, see http://confluence.atlassian.com/x/1xy6D
2013-03-26 15:29:23,194 WARN [WrapperStartStopAppMain ] com.atlassian.plugin.osgi.factory.OsgiPlugin AbstractPlugin-enable - Unable to enable plugin 'com.atlassian.applinks.applinks-plugin'
com.atlassian.plugin.osgi.container.OsgiContainerException: Cannot start plugin: com.atlassian.applinks.applinks-plugin
at com.atlassian.plugin.osgi.factory.OsgiPlugin.enableInternal(OsgiPlugin.java:445)
at com.atlassian.plugin.impl.AbstractPlugin.enable(AbstractPlugin.java:237)
at com.atlassian.plugin.impl.AbstractDelegatingPlugin.enable(AbstractDelegatingPlugin.java:215)
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.fisheye.plugin.DelegatingFisheyePluginManager.onContextRefreshedEvent(DelegatingFisheyePluginManager.java:173)
at com.cenqua.fisheye.config.SpringContext.onApplicationEvent(SpringContext.java:30)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:97)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:303)
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:911)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:428)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
...
Caused by: org.osgi.framework.BundleException: Unresolved constraint in bundle com.atlassian.applinks.plugin [17]: Unable to resolve 17.0: missing requirement [17.0] package; (&(package=com.atlassian.plugins.rest.common)(version>=0.0.0)) [caused by: Unable to resolve 42.0: missing requirement [42.0] package; (&(package=javax.imageio)(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:417)
... 45 more
E.g. #2
2014-07-23 16:21:56,683 WARN [main ] com.atlassian.plugin.osgi.factory.OsgiPlugin AbstractPlugin-enable - Unable to enable plugin 'com.atlassian.activeobjects.activeobjects-plugin'
2014-07-23 16:21:56,684 WARN [main ] com.atlassian.plugin.osgi.factory.OsgiPlugin AbstractPlugin-enable - Because of this exception
com.atlassian.plugin.osgi.container.OsgiContainerException: Cannot start plugin: com.atlassian.activeobjects.activeobjects-plugin
at com.atlassian.plugin.osgi.factory.OsgiPlugin.enableInternal(OsgiPlugin.java:483)
at com.atlassian.plugin.impl.AbstractPlugin.enable(AbstractPlugin.java:273)
at com.atlassian.plugin.impl.AbstractDelegatingPlugin.enable(AbstractDelegatingPlugin.java:226)
at com.atlassian.plugin.manager.PluginEnabler.actualEnable(PluginEnabler.java:116)
at com.atlassian.plugin.manager.PluginEnabler.enable(PluginEnabler.java:101)
at com.atlassian.plugin.manager.DefaultPluginManager.addPlugins(DefaultPluginManager.java:900)
at com.atlassian.plugin.manager.DefaultPluginManager.init(DefaultPluginManager.java:291)
at com.atlassian.fisheye.plugin.DelegatingFisheyePluginManager.onContextRefreshedEvent(DelegatingFisheyePluginManager.java:199)
at com.cenqua.fisheye.config.SpringContext.onApplicationEvent(SpringContext.java:29)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:97)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:303)
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:911)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:428)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:775)
at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:424)
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:767)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:249)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1252)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:710)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494)
at com.cenqua.fisheye.web.jetty.FishEyeWebApplicationContext.doStart(FishEyeWebApplicationContext.java:30)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:172)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95)
at org.eclipse.jetty.server.Server.doStart(Server.java:280)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at com.cenqua.fisheye.web.WebServer.start(WebServer.java:313)
at com.cenqua.fisheye.ctl.Run.mainImpl(Run.java:229)
at com.cenqua.fisheye.ctl.Run.main(Run.java:56)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.cenqua.fisheye.FishEyeCtl.mainImpl(FishEyeCtl.java:99)
at com.cenqua.fisheye.FishEyeCtl.main(FishEyeCtl.java:42)
Caused by: org.osgi.framework.BundleException: Unresolved constraint in bundle com.atlassian.activeobjects.activeobjects-plugin [15]: Unable to resolve 15.0: missing requirement [15.0] package; (&(package=com.atlassian.activeobjects.spi)(version>=0.17.0))
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:459)
... 41 more
Cause
A:
Automatic purge and recreation of dynamic libraries on an upgrade from Java 6 to Java 7 failed.
B:
An upgrade from a single folder environment to one with two folders (a directory for application data (referenced by $FISHEYE_INST
) and a separate directory for application binaries) wasn't completed properly and as such, the plugins
folder remained in both directories.
Resolution
A:
Versions up to 2.9.x
- Shutdown Fisheye.
- Delete (or move for backup purposes) the entire folder:
FISHEYE_INST/cache/plugins
(e.g./fisheye/cache/plugins
)
- Restart Fisheye.
Versions 2.10+
- Shutdown Fisheye.
- Delete (or move for backup purposes) the entire folder:
FISHEYE_INST/var/osgi-cache
(e.g./fisheye/var/osgi-cache
)
- Restart Fisheye.
B:
Clean the $FISHEYE_INST
folder to ensure that only the following files/folders exist:
- config.xml
- /var
- /cache
Optional - /data
- /backup
- /export
- /logs
See Fisheye upgrade guide for more information.