Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-18925

Listeners are not being able to be loaded during plugins intialisation

    XMLWordPrintable

Details

    Description

      I was trying to get SAC up to JIRA 4.0 and came accross this issue.

      009-09-07 17:04:33,098 main ERROR     [atlassian.jira.event.DefaultListenerManager] Could not create listener named: Hercules
      com.atlassian.jira.event.ListenerException: Could not create listener for class: com.atlassian.hercules.events.HerculesEventListener
      	at com.atlassian.jira.event.ListenerFactory.getListener(ListenerFactory.java:43)
      	at com.atlassian.jira.event.DefaultListenerManager$Listeners.loadListeners(DefaultListenerManager.java:80)
      	at com.atlassian.jira.event.DefaultListenerManager$Listeners.create(DefaultListenerManager.java:41)
      	at com.atlassian.jira.event.DefaultListenerManager$Listeners.create(DefaultListenerManager.java:36)
      	at com.atlassian.util.concurrent.LazyReference$1.call(LazyReference.java:79)
      	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      	at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:146)
      	at com.atlassian.util.concurrent.LazyReference.get(LazyReference.java:115)
      	at com.atlassian.jira.event.DefaultListenerManager.getListeners(DefaultListenerManager.java:25)
      	at com.atlassian.jirafisheyeplugin.perforce.listener.JobUpdateListener.remove(JobUpdateListener.java:68)
      	at com.atlassian.jirafisheyeplugin.perforce.PerforceConfigStoreImpl.installListenerIfValidConfigExists(PerforceConfigStoreImpl.java:337)
      	at com.atlassian.jirafisheyeplugin.perforce.PerforceConfigStoreImpl.refresh(PerforceConfigStoreImpl.java:329)
      	at com.atlassian.jirafisheyeplugin.config.RefreshManager.refreshAll(RefreshManager.java:75)
      	at com.atlassian.jirafisheyeplugin.config.RefreshManager.onFrameworkStart(RefreshManager.java:98)
      	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.DefaultPluginEventManager$Listener.notify(DefaultPluginEventManager.java:196)
      	at com.atlassian.plugin.event.impl.DefaultPluginEventManager.broadcast(DefaultPluginEventManager.java:70)
      	at com.atlassian.plugin.manager.DefaultPluginManager.init(DefaultPluginManager.java:156)
      	at com.atlassian.jira.plugin.JiraPluginManager.start(JiraPluginManager.java:49)
      	at com.atlassian.jira.ComponentManager$PluginSystem.start(ComponentManager.java:1223)
      	at com.atlassian.jira.ComponentManager.quickStart(ComponentManager.java:190)
      	at com.atlassian.jira.ComponentManager.start(ComponentManager.java:176)
      	at com.atlassian.jira.upgrade.ConsistencyLauncher.launchConsistencyChecker(ConsistencyLauncher.java:63)
      	at com.atlassian.jira.upgrade.ConsistencyLauncher.contextInitialized(ConsistencyLauncher.java:42)
      
      Caused by: org.picocontainer.defaults.UnsatisfiableDependenciesException: com.atlassian.hercules.events.HerculesEventListener doesn't have any satisfiable constructors. Unsatisfiable dependencies: [[interface com.atlassian.hercules.HerculesService]]
      	at org.picocontainer.defaults.ConstructorInjectionComponentAdapter.getGreediestSatisifableConstructor(ConstructorInjectionComponentAdapter.java:138)
      	at org.picocontainer.defaults.ConstructorInjectionComponentAdapter.instantiateComponent(ConstructorInjectionComponentAdapter.java:193)
      	at org.picocontainer.defaults.InstantiatingComponentAdapter.getComponentInstance(InstantiatingComponentAdapter.java:48)
      	at org.picocontainer.defaults.DecoratingComponentAdapter.getComponentInstance(DecoratingComponentAdapter.java:42)
      	at org.picocontainer.defaults.SynchronizedComponentAdapter.getComponentInstance(SynchronizedComponentAdapter.java:35)
      	at org.picocontainer.defaults.DecoratingComponentAdapter.getComponentInstance(DecoratingComponentAdapter.java:42)
      	at com.atlassian.jira.config.component.ProfilingComponentAdapter.getComponentInstance(ProfilingComponentAdapter.java:38)
      	at org.picocontainer.defaults.DefaultPicoContainer.getComponentInstance(DefaultPicoContainer.java:298)
      	at com.atlassian.jira.util.JiraUtils.loadComponent(JiraUtils.java:116)
      	at com.atlassian.jira.util.JiraUtils.loadComponent(JiraUtils.java:94)
      	at com.atlassian.jira.util.JiraUtils.loadComponent(JiraUtils.java:89)
      	at com.atlassian.jira.event.ListenerFactory.getListener(ListenerFactory.java:32)
      

      It seems that the FishEye plugin causes the listeners to be loaded But the Hercules listener is not available at this time.

      All the class are in the mix but I suspect the plugin has not been initialised yet!

      We need to think about how this can be made to work.

      Attachments

        Issue Links

          Activity

            People

              mlassau Mark Lassau (Inactive)
              bbaker ɹǝʞɐq pɐɹq
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: