Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.

Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Problem

In a Service Desk, when going to Settings > Automation, the screen freezes and then throws an Internal Server Error with 500 HTTP Status Code.

The following appears in the atlassian-jira.log

2015-06-22 15:48:36,787 http-bio-8435-exec-11 ERROR admin 948x1772x1 1n761vc 192.168.10.10 /rest/servicedesk/automation/1/pages/settings/automation/TST [common.error.jersey.ThrowableExceptionMapper] Uncaught exception thrown by REST service: java.lang.NullPointerException: null value
com.atlassian.cache.CacheException: java.lang.NullPointerException: null value
	at com.atlassian.cache.memory.DelegatingCache$DelegatingLoadingCache.get(DelegatingCache.java:322)
	at com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.RuleSetManagerImpl.getAllActiveRuleSets(RuleSetManagerImpl.java:153)
	at com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.RuleSetManagerImpl.getActiveRuleSetsByProject(RuleSetManagerImpl.java:137)
	at com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.RuleSetServiceImpl.getActiveRuleSetsByProject(RuleSetServiceImpl.java:144)
	at com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.RuleSetServiceImpl.getActiveRuleSetsByProject(RuleSetServiceImpl.java:152)
	at com.atlassian.servicedesk.plugins.automation.internal.rest.AutomationSettingsPageResource.getAutomationPage(AutomationSettingsPageResource.java:99)  <+3> (NativeMethodAccessorImpl.java:57) (DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)  <+18> (DispatchProviderHelper.java:234) (DispatchProviderHelper.java:100) (DefaultMethodInvocation.java:61) (ExpandInterceptor.java:38) (DefaultMethodInvocation.java:61) (DispatchProviderHelper.java:132) (DispatchProviderHelper.java:230) (ResourceJavaMethodDispatcher.java:75) (HttpMethodRule.java:288) (ResourceClassRule.java:108) (RightHandPathRule.java:147) (RootResourceClassesRule.java:84) (WebApplicationImpl.java:1469) (WebApplicationImpl.java:1400) (WebApplicationImpl.java:1349) (WebApplicationImpl.java:1339) (WebComponent.java:416) (ServletContainer.java:537)
	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:178)  <+1> (ServletContainer.java:795)
	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:73)  <+16> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70) (RestServletUtilsUpdaterFilter.java:26) (RestServletUtilsUpdaterFilter.java:40) (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70) (ContextFilter.java:25) (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
	at com.atlassian.servicedesk.internal.web.RedirectExternalCustomerToPortalFilter.doFilter(RedirectExternalCustomerToPortalFilter.scala:18)  <+4> (AbstractHttpFilter.java:31) (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
	at com.atlassian.mywork.client.filter.ServingRequestsFilter.doFilter(ServingRequestsFilter.java:37)  <+3> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
	at com.atlassian.plugins.cors.CorsFilter.doFilter(CorsFilter.java:65)  <+3> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
	at com.atlassian.prettyurls.filter.PrettyUrlsSiteMeshFixupFilter.doFilter(PrettyUrlsSiteMeshFixupFilter.java:36)  <+3> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
	at com.atlassian.prettyurls.filter.PrettyUrlsDispatcherFilter.doFilter(PrettyUrlsDispatcherFilter.java:60)  <+3> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
	at com.atlassian.prettyurls.filter.PrettyUrlsSiteMeshFilter.doFilter(PrettyUrlsSiteMeshFilter.java:92)  <+3> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
	at com.atlassian.prettyurls.filter.PrettyUrlsMatcherFilter.doFilter(PrettyUrlsMatcherFilter.java:56)  <+3> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
	at com.atlassian.labs.botkiller.BotKillerFilter.doFilter(BotKillerFilter.java:36)  <+21> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (AccessLogFilter.java:107) (AccessLogFilter.java:91) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (XsrfTokenAdditionRequestFilter.java:54) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (PageBuilderFilter.java:90) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (CommittedResponseHtmlErrorRecoveryFilter.java:63) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:70)
	at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61)  <+22> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (SecurityFilter.java:239) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (TrustedApplicationsFilter.java:100) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (BaseLoginFilter.java:172) (JiraLoginFilter.java:70) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:70) (OAuthFilter.java:79) (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
	at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:40)  <+3> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
	at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61)  <+9> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (AbstractJohnsonFilter.java:71) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208)
	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)  <+10> (UrlRewriteFilter.java:394) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (GzipFilter.java:82) (GzipFilter.java:59) (JiraGzipFilter.java:56) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:70)
	at com.atlassian.analytics.client.filter.JiraAnalyticsFilter.doFilter(JiraAnalyticsFilter.java:40)
	at com.atlassian.analytics.client.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:32)  <+3> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
	at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61)  <+40> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (ChainedFilterStepRunner.java:87) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (AbstractCachingFilter.java:33) (AbstractHttpFilter.java:31) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (AbstractEncodingFilter.java:41) (AbstractHttpFilter.java:31) (PathMatchingEncodingFilter.java:45) (AbstractHttpFilter.java:31) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (JiraStartupChecklistFilter.java:79) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (MultipartBoundaryCheckFilter.java:41) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (ChainedFilterStepRunner.java:87) (JiraFirstFilter.java:61) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (StandardWrapperValve.java:220) (StandardContextValve.java:122) (AuthenticatorBase.java:501) (StandardHostValve.java:171) (ErrorReportValve.java:103) (StandardEngineValve.java:116) (AccessLogValve.java:950) (CoyoteAdapter.java:408) (AbstractHttp11Processor.java:1070) (AbstractProtocol.java:611) (JIoEndpoint.java:316)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)

Cause

There is a NULL value in one or more of the Service Desk tables. In this case, since the problem is with the Automation functionality provided by JIRA Service Desk, check the tables below:

  • AO_9B2E3B_EXEC_RULE_MSG_ITEM
  • AO_9B2E3B_IF_CONDITION_CONFIG
  • AO_9B2E3B_IF_COND_CONF_DATA
  • AO_9B2E3B_IF_COND_EXECUTION
  • AO_9B2E3B_IF_EXECUTION
  • AO_9B2E3B_IF_THEN
  • AO_9B2E3B_IF_THEN_EXECUTION
  • AO_9B2E3B_PROJECT_USER_CONTEXT
  • AO_9B2E3B_RSETREV_PROJ_CONTEXT
  • AO_9B2E3B_RSETREV_USER_CONTEXT
  • AO_9B2E3B_RULE
  • AO_9B2E3B_RULESET
  • AO_9B2E3B_RULESET_REVISION
  • AO_9B2E3B_RULE_EXECUTION
  • AO_9B2E3B_THEN_ACTION_CONFIG
  • AO_9B2E3B_THEN_ACT_CONF_DATA
  • AO_9B2E3B_THEN_ACT_EXECUTION
  • AO_9B2E3B_THEN_EXECUTION
  • AO_9B2E3B_WHEN_HANDLER_CONFIG
  • AO_9B2E3B_WHEN_HAND_CONF_DATA

You can run the following SQL queries in order to find any rows with a null value.

Select * from "AO_9B2E3B_EXEC_RULE_MSG_ITEM" where  "ID" is null or "RULE_EXECUTION_ID" is null or "RULE_MESSAGE_KEY" is null or "RULE_MESSAGE_VALUE" is null;
Select * from "AO_9B2E3B_PROJECT_USER_CONTEXT" where  "ID" is null or "PROJECT_ID" is null or "STRATEGY" is null or "USER_KEY" is null;
Select * from "AO_9B2E3B_RULE_EXECUTION" where  "EXECUTOR_USER_KEY" is null or "FINISH_TIME_MILLIS" is null or "ID" is null or "OUTCOME" is null or "RULE_ID" is null or "START_TIME_MILLIS" is null;
Select * from "AO_9B2E3B_IF_COND_EXECUTION" where  "FINISH_TIME_MILLIS" is null or "ID" is null or "IF_CONDITION_CONFIG_ID" is null or "IF_EXECUTION_ID" is null or "OUTCOME" is null or "START_TIME_MILLIS" is null;
Select * from "AO_9B2E3B_IF_COND_CONF_DATA" where  "CONFIG_DATA_KEY" is null or "CONFIG_DATA_VALUE" is null or "ID" is null or "IF_CONDITION_CONFIG_ID" is null;
Select * from "AO_9B2E3B_IF_CONDITION_CONFIG" where  "ID" is null or "IF_THEN_ID" is null or "MODULE_KEY" is null or "ORDINAL" is null;
Select * from "AO_9B2E3B_IF_EXECUTION" where  "FINISH_TIME_MILLIS" is null or "ID" is null or "IF_THEN_EXECUTION_ID" is null or "OUTCOME" is null or "START_TIME_MILLIS" is null;
Select * from "AO_9B2E3B_RULESET_REVISION" where  "CREATED_BY" is null or "CREATED_TIMESTAMP_MILLIS" is null or "DESCRIPTION" is null or "ID" is null or "NAME" is null or "RULE_SET_ID" is null or "TRIGGER_FROM_OTHER_RULES" is null;
Select * from "AO_9B2E3B_WHEN_HAND_CONF_DATA" where  "CONFIG_DATA_KEY" is null or "CONFIG_DATA_VALUE" is null or "ID" is null or "WHEN_HANDLER_CONFIG_ID" is null;
Select * from "AO_9B2E3B_THEN_ACTION_CONFIG" where  "ID" is null or "IF_THEN_ID" is null or "MODULE_KEY" is null or "ORDINAL" is null;
Select * from "AO_9B2E3B_THEN_ACT_CONF_DATA" where  "CONFIG_DATA_KEY" is null or "CONFIG_DATA_VALUE" is null or "ID" is null or "THEN_ACTION_CONFIG_ID" is null;
Select * from "AO_9B2E3B_RULE" where  "ID" is null or "ORDINAL" is null or "RULESET_REVISION_ID" is null;
Select * from "AO_9B2E3B_RSETREV_PROJ_CONTEXT" where  "ID" is null or "PROJECT_ID" is null or "RULESET_REVISION_ID" is null;
Select * from "AO_9B2E3B_IF_THEN" where  "ID" is null or "ORDINAL" is null or "RULE_ID" is null;
Select * from "AO_9B2E3B_WHEN_HANDLER_CONFIG" where  "ID" is null or "MODULE_KEY" is null or "ORDINAL" is null or "RULE_ID" is null;
Select * from "AO_9B2E3B_RSETREV_USER_CONTEXT" where  "ID" is null or "RULESET_REVISION_ID" is null or "STRATEGY" is null or "USER_KEY" is null;
Select * from "AO_9B2E3B_IF_THEN_EXECUTION" where  "FINISH_TIME_MILLIS" is null or "ID" is null or "IF_THEN_ID" is null or "OUTCOME" is null or "RULE_EXECUTION_ID" is null or "START_TIME_MILLIS" is null;
Select * from "AO_9B2E3B_RULESET" where  "ACTIVE_REVISION_ID" is null or "ID" is null;
Select * from "AO_9B2E3B_THEN_EXECUTION" where  "FINISH_TIME_MILLIS" is null or "ID" is null or "IF_THEN_EXECUTION_ID" is null or "OUTCOME" is null or "START_TIME_MILLIS" is null;
Select * from "AO_9B2E3B_THEN_ACT_EXECUTION" where  "FINISH_TIME_MILLIS" is null or "ID" is null or "OUTCOME" is null or "START_TIME_MILLIS" is null or "THEN_ACTION_CONFIG_ID" is null or "THEN_EXECUTION_ID" is null;

Workaround

Workaround #1

 

  1. Navigate to Administration > Add-ons > Manage add-ons page
  2. Locate JIRA Service Desk plugin, then disable and re-enable it
  3. Verify whether the problem persist. If it is, proceed to Workaround #2
Workaround #2

Always back up your data before performing any modifications to the database. If possible, test any alter, insert, update, or delete SQL commands on a staging server first.

  • Identify which table has the NULL value.
  • UPDATE the table to include the value needed.
  • Restart JIRA
Help us improve!

  • No labels