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

WebHooks does not appear to be initialised with custom events, throws NPE's for same

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Low
    • 5.2.6
    • 5.2.5
    • None

    Description

      If custom events are created, during custom event firing, the WebHooks code (EventTypeInfoDecorator) doesn't seem to get mapped with the custom event and throws a NPE, its local map contains only:

      {1=jira:issue_created, 8=jira:issue_deleted, 3=jira:issue_updated, 5=jira:issue_updated, 7=jira:issue_updated, 4=jira:issue_updated, 14=jira:issue_updated, 6=jira:issue_updated, 9=jira:issue_updated, 2=jira:issue_updated, 11=jira:issue_updated, 12=jira:issue_updated, 13=jira:issue_updated, 15=jira:worklog_updated, 16=jira:worklog_updated, 10=jira:worklog_updated}
      

      There is no mention of custom events that have been created in JIRA, hence NPE. The behaviour isn't affected by a JIRA restart.

      Are webhooks not designed to work with custom events? if not, the NPE that happens in this situation should probably be caught?

      Stack:

      2013-01-28 15:54:38,667 http-bio-8080-exec-23 WARN admin 954x1309x1 1pvdiof 127.0.0.1 /secure/admin/jemh/JEMHTestCases!run.jspa [jira.plugins.webhooks.WebHookRegistrationManager] Failed to publish web-hooks for event com.atlassian.jira.event.issue.IssueEvent
      java.lang.NullPointerException: null value
      	at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:204)
      	at com.google.common.collect.ImmutableMap.entryOf(ImmutableMap.java:139)
      	at com.google.common.collect.ImmutableMap$Builder.put(ImmutableMap.java:178)
      	at com.atlassian.jira.plugins.webhooks.mapper.EventTypeInfoDecorator.toMap(EventTypeInfoDecorator.java:28)
      	at com.atlassian.jira.plugins.webhooks.impl.JiraEventSerializerFactory.create(JiraEventSerializerFactory.java:52)
      	at com.atlassian.jira.plugins.webhooks.impl.JiraEventSerializerFactory.create(JiraEventSerializerFactory.java:27)
      	at com.atlassian.jira.plugins.webhooks.WebHookRegistration.getEventSerializer(WebHookRegistration.java:39)
      	at com.atlassian.jira.plugins.webhooks.WebHookRegistrationManager.onEvent(WebHookRegistrationManager.java:136)  <+2> (DelegatingMethodAccessorImpl.java:25)
      	at java.lang.reflect.Method.invoke(Method.java:597)
      	at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:36)
      	at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$2.run(AsynchronousAbleEventDispatcher.java:66)
      	at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$1.execute(AsynchronousAbleEventDispatcher.java:32)
      	at com.atlassian.event.internal.AsynchronousAbleEventDispatcher.dispatch(AsynchronousAbleEventDispatcher.java:60)
      	at com.atlassian.event.internal.EventPublisherImpl.invokeListeners(EventPublisherImpl.java:160)
      	at com.atlassian.event.internal.EventPublisherImpl.publish(EventPublisherImpl.java:79)
      	at com.atlassian.multitenant.event.DefaultPeeringEventPublisherManager.publish(DefaultPeeringEventPublisherManager.java:17)
      	at com.atlassian.multitenant.event.PeeringEventPublisher.publish(PeeringEventPublisher.java:23)
      	at com.atlassian.jira.event.issue.DefaultIssueEventManager.publishEvent(DefaultIssueEventManager.java:124)
      	at com.atlassian.jira.event.issue.DefaultIssueEventManager.dispatchEvent(DefaultIssueEventManager.java:102)  <+3> (NativeMethodAccessorImpl.java:39) (DelegatingMethodAccessorImpl.java:25)
      	at java.lang.reflect.Method.invoke(Method.java:597)
      	at com.atlassian.multitenant.impl.MultiTenantComponentFactoryImpl$AbstractMultiTenantAwareInvocationHandler.invokeInternal(MultiTenantComponentFactoryImpl.java:181)
      	at com.atlassian.multitenant.impl.MultiTenantComponentFactoryImpl$MultiTenantAwareInvocationHandler.invoke(MultiTenantComponentFactoryImpl.java:211)
      	at $Proxy71.dispatchEvent(Unknown Source)  <+3> (NativeMethodAccessorImpl.java:39) (DelegatingMethodAccessorImpl.java:25)
      	at java.lang.reflect.Method.invoke(Method.java:597)
      	at com.atlassian.plugin.osgi.hostcomponents.impl.DefaultComponentRegistrar$ContextClassLoaderSettingInvocationHandler.invoke(DefaultComponentRegistrar.java:129)
      	at $Proxy71.dispatchEvent(Unknown Source)  <+3> (NativeMethodAccessorImpl.java:39) (DelegatingMethodAccessorImpl.java:25)
      	at java.lang.reflect.Method.invoke(Method.java:597)
      	at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:154)
      	at $Proxy71.dispatchEvent(Unknown Source)
      	at com.javahollic.jira.emh.service.ProcessorRunner.runProcessor(ProcessorRunner.java:835)
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              340ad212567f Andy Brook [Plugin People]
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: