Details
-
Bug
-
Resolution: Fixed
-
Low
-
5.2.5
-
None
-
5.02
-
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
- was cloned as
-
JRASERVER-31508 Support Custom Events with WebHooks
- Closed