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

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Medium Medium
    • 2.7.1
    • 2.7.0
    • 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.

              jhinch jhinch (Atlassian)
              jhinch 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