Uploaded image for project: 'FishEye'
  1. FishEye
  2. FE-3701

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

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Medium
    • 2.7.1
    • 2.7.0
    • Repositories

    Description

      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.

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

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