CommitHookModuleDescriptor#enable can fail if ActiveObjectsConfiguration for Commit Hooks Plugin is not available yet

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: Medium
    • 2.7.1
    • Affects Version/s: 2.7.0
    • Component/s: Repositories

      The FishEye/Crucible Review Smart Commit Plugin will fail to load when starting up FECRU 2.7 with the following error:

      2011-09-08 10:10:31,697 ERROR - There was an error loading the descriptor 'Review Creation' of plugin 'com.atlassian.fecru.plugin.commithook.fecru-reviewcommithook-plugin'. Disabling.
      com.atlassian.plugin.PluginException: com.atlassian.activeobjects.osgi.NoServicesFoundException: Was expecting at least one service reference for interface <com.atlassian.activeobjects.config.ActiveObjectsConfiguration> and filter <(com.atlassian.plugin.key=com.atlassian.fecru.plugin.commithook.fecru-commithooks-plugin)>. Got null !
      	at com.atlassian.activeobjects.osgi.ActiveObjectsServiceFactory.getConfiguration(ActiveObjectsServiceFactory.java:93)
      	at com.atlassian.activeobjects.osgi.ActiveObjectsServiceFactory.access$000(ActiveObjectsServiceFactory.java:35)
      	at com.atlassian.activeobjects.osgi.ActiveObjectsServiceFactory$LazyActiveObjectConfiguration.getDelegate(ActiveObjectsServiceFactory.java:163)
      	at com.atlassian.activeobjects.osgi.ActiveObjectsServiceFactory$LazyActiveObjectConfiguration.hashCode(ActiveObjectsServiceFactory.java:150)
      	at java.util.HashMap.get(HashMap.java:300)
      	at com.atlassian.activeobjects.internal.WeakReferencedActiveObjectsRegistry.get(WeakReferencedActiveObjectsRegistry.java:19)
      	at com.atlassian.activeobjects.internal.RegistryBasedActiveObjectsProvider.get(RegistryBasedActiveObjectsProvider.java:25)
      	at com.atlassian.activeobjects.osgi.DelegatingActiveObjects.getDelegate(DelegatingActiveObjects.java:126)
      	at com.atlassian.activeobjects.osgi.DelegatingActiveObjects.executeInTransaction(DelegatingActiveObjects.java:111)
      	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:307)
      	at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:58)
      	at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:62)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
      	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      	at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:56)
      	at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:39)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      	at org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
      	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      	at $Proxy130.executeInTransaction(Unknown Source)
      	at com.atlassian.fecru.plugin.commithook.internal.DefaultCommitHookManager.register(DefaultCommitHookManager.java:102)
      	at com.atlassian.fecru.plugin.commithook.internal.CommitHookModuleDescriptor.enabled(CommitHookModuleDescriptor.java:77)
      	at com.atlassian.plugin.manager.DefaultPluginManager.notifyModuleEnabled(DefaultPluginManager.java:1420)
      	at com.atlassian.plugin.manager.DefaultPluginManager.enableConfiguredPluginModule(DefaultPluginManager.java:1227)
      	at com.atlassian.plugin.manager.DefaultPluginManager.onPluginModuleAvailable(DefaultPluginManager.java:231)
      	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 com.atlassian.plugin.event.impl.MethodSelectorListenerHandler$1$1.invoke(MethodSelectorListenerHandler.java:49)
      	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.plugin.event.impl.DefaultPluginEventManager.broadcast(DefaultPluginEventManager.java:84)
      	at com.atlassian.plugin.osgi.factory.UnrecognizedModuleDescriptorServiceTrackerCustomizer.canFactoryResolveUnrecognizedDescriptor(UnrecognizedModuleDescriptorServiceTrackerCustomizer.java:91)
      	at com.atlassian.plugin.osgi.factory.UnrecognizedModuleDescriptorServiceTrackerCustomizer.addingService(UnrecognizedModuleDescriptorServiceTrackerCustomizer.java:54)
      	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:896)
      	at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:261)
      	at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:184)
      	at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:339)
      	at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:273)
      	at com.atlassian.plugin.osgi.factory.OsgiPluginInstalledHelper.onEnable(OsgiPluginInstalledHelper.java:92)
      	at com.atlassian.plugin.osgi.factory.OsgiPlugin.enableInternal(OsgiPlugin.java:404)
      	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:682)
      	at com.atlassian.plugin.manager.DefaultPluginManager.init(DefaultPluginManager.java:156)
      	at com.atlassian.fisheye.plugin.DelegatingFisheyePluginManager.onApplicationEvent(DelegatingFisheyePluginManager.java:176)
      	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.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:549)
      	at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
      	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
      	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
      	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
      	at com.cenqua.fisheye.web.jetty.FishEyeWebApplicationContext.doStart(FishEyeWebApplicationContext.java:27)
      	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
      	at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
      	at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
      	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
      	at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
      	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
      	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
      	at org.mortbay.jetty.Server.doStart(Server.java:224)
      	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
      	at com.cenqua.fisheye.web.WebServer.start(WebServer.java:275)
      	at com.cenqua.fisheye.ctl.Run.mainImpl(Run.java:229)
      	at com.cenqua.fisheye.ctl.Run.main(Run.java:77)
      	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 com.cenqua.fisheye.FishEyeCtl.mainImpl(FishEyeCtl.java:98)
      	at com.cenqua.fisheye.FishEyeCtl.main(FishEyeCtl.java:41)
      
      

      This does not appear to affect the installation/upgrade in any way. The application will start up as expected.

      Under "Administration -> Plugins", the FishEye/Crucible Review Smart Commit Plugin will appear as disabled. The plugin as well as the "Review Creation" module within can be enabled manually, though the "Crucible Integration" related feature is still not available under "Administration -> Smart Commits". Only the "JIRA Issue Transitions" option is available there.

            Assignee:
            jhinch (Atlassian)
            Reporter:
            jhinch (Atlassian)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - Not Specified
                Not Specified
                Logged:
                Time Spent - 4m
                4m