Deleted status causes 500 error NullPointerException in customer portal

XMLWordPrintable

      NOTE: This bug report is for JIRA Service Desk Server. Using JIRA Service Desk Cloud? See the corresponding bug report.

      When an issue's change history contains an entry with a deleted status ID, a 500 error is thrown when trying to access the portal.

      Steps to reproduce:

      • Create Service Desk
      • Create new Status
      • Add status (and transitions) to workflow
      • Transition issue to and from this new status (ending with issue NOT in this status)
      • Change the workflow to one that does not contain this status
      • Delete original workflow
      • Delete status
      • Attempt to access customer portal using "Create a Service Desk Request" 500 error shows in portal:
      2014-08-01 04:23:43,678 http-bio-8080-exec-17 ERROR egemme 263x572x1 19855nj 192.168.56.1 /servicedesk/customer/portals [common.error.jersey.ThrowableExceptionMapper] Uncaught exception thrown by REST service: null
      java.lang.NullPointerException
      	at com.atlassian.servicedesk.internal.feature.customer.request.requesttype.RequestStatusMapper.translateToCustomerStatus(RequestStatusService.scala:85)
      	at com.atlassian.servicedesk.internal.feature.customer.request.RequestActivityProvider$$anonfun$7.apply(RequestActivityProvider.scala:141)
      	at com.atlassian.servicedesk.internal.feature.customer.request.RequestActivityProvider$$anonfun$7.apply(RequestActivityProvider.scala:135)
      	at scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:144)
      	at scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:144)
      	at scala.collection.Iterator$class.foreach(Iterator.scala:727)
      	at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
      	at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
      	at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
      	at scala.collection.TraversableOnce$class.foldLeft(TraversableOnce.scala:144)
      	at scala.collection.AbstractTraversable.foldLeft(Traversable.scala:105)
      	at com.atlassian.servicedesk.internal.feature.customer.request.RequestActivityProvider.extractRelevantChanges(RequestActivityProvider.scala:135)
      	at com.atlassian.servicedesk.internal.feature.customer.request.RequestActivityProvider.com$atlassian$servicedesk$internal$feature$customer$request$RequestActivityProvider$$constructItemBuilder(RequestActivityProvider.scala:156)
      	at com.atlassian.servicedesk.internal.feature.customer.request.RequestActivityProvider$$anonfun$getStatusList$1.apply(RequestActivityProvider.scala:81)
      	at com.atlassian.servicedesk.internal.feature.customer.request.RequestActivityProvider$$anonfun$getStatusList$1.apply(RequestActivityProvider.scala:80)
      	at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
      	at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
      	at scala.collection.Iterator$class.foreach(Iterator.scala:727)
      	at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
      	at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
      	at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
      	at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251)
      	at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105)
      	at com.atlassian.servicedesk.internal.feature.customer.request.RequestActivityProvider.getStatusList(RequestActivityProvider.scala:80)
      	at com.atlassian.servicedesk.internal.feature.customer.request.RequestActivityProvider.getActivity(RequestActivityProvider.scala:128)
      	at com.atlassian.servicedesk.internal.feature.customer.request.IssueViewProvider.getIssueListItemViewCommon(IssueViewProvider.scala:225)
      	at com.atlassian.servicedesk.internal.feature.customer.request.IssueViewProvider.getIssueListItemView(IssueViewProvider.scala:216)
      	at com.atlassian.servicedesk.internal.feature.customer.request.RequestListProvider$IssueToRequestListItemViewMapper$$anonfun$toRequestListItemViewWithPortal$1$$anonfun$apply$19.apply(RequestListProvider.scala:403)
      	at com.atlassian.servicedesk.internal.feature.customer.request.RequestListProvider$IssueToRequestListItemViewMapper$$anonfun$toRequestListItemViewWithPortal$1$$anonfun$apply$19.apply(RequestListProvider.scala:396)
      	at scala.Option.map(Option.scala:145)
      	at com.atlassian.servicedesk.internal.feature.customer.request.RequestListProvider$IssueToRequestListItemViewMapper$$anonfun$toRequestListItemViewWithPortal$1.apply(RequestListProvider.scala:396)
      	at com.atlassian.servicedesk.internal.feature.customer.request.RequestListProvider$IssueToRequestListItemViewMapper$$anonfun$toRequestListItemViewWithPortal$1.apply(RequestListProvider.scala:395)
      	at scala.Option.flatMap(Option.scala:170)
      	at com.atlassian.servicedesk.internal.feature.customer.request.RequestListProvider$IssueToRequestListItemViewMapper.toRequestListItemViewWithPortal(RequestListProvider.scala:395)
      	at com.atlassian.servicedesk.internal.feature.customer.request.RequestListProvider$$anonfun$10.apply(RequestListProvider.scala:193)
      	at com.atlassian.servicedesk.internal.feature.customer.request.RequestListProvider$$anonfun$10.apply(RequestListProvider.scala:193)
      	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
      	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
      	at scala.collection.immutable.List.foreach(List.scala:318)
      	at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
      	at scala.collection.AbstractTraversable.map(Traversable.scala:105)
      	at com.atlassian.servicedesk.internal.feature.customer.request.RequestListProvider.buildMultiPortalSearchResult(RequestListProvider.scala:193)
      	at com.atlassian.servicedesk.internal.feature.customer.request.RequestListProvider.searchForMultiplePortalIssues(RequestListProvider.scala:187)
      	at com.atlassian.servicedesk.internal.feature.customer.portal.providers.RecentRequestsResponseProvider.com$atlassian$servicedesk$internal$feature$customer$portal$providers$RecentRequestsResponseProvider$$getRecentRequests(RecentRequestsResponseProvider.scala:43)
      	at com.atlassian.servicedesk.internal.feature.customer.portal.providers.RecentRequestsResponseProvider$$anonfun$getResponse$1.apply(RecentRequestsResponseProvider.scala:36)
      	at com.atlassian.servicedesk.internal.feature.customer.portal.providers.RecentRequestsResponseProvider$$anonfun$getResponse$1.apply(RecentRequestsResponseProvider.scala:34)
      	at scalaz.$bslash$div$class.map(Either.scala:94)
      	at scalaz.$bslash$div$minus.map(Either.scala:283)
      	at com.atlassian.servicedesk.internal.feature.customer.portal.providers.RecentRequestsResponseProvider.getResponse(RecentRequestsResponseProvider.scala:34)
      	at com.atlassian.servicedesk.internal.rest.CustomerResponseFactory$$anonfun$com$atlassian$servicedesk$internal$rest$CustomerResponseFactory$$getResponse$1.apply(CustomerResponseFactory.scala:85)
      	at com.atlassian.servicedesk.internal.rest.CustomerResponseFactory$$anonfun$com$atlassian$servicedesk$internal$rest$CustomerResponseFactory$$getResponse$1.apply(CustomerResponseFactory.scala:84)
      	at scalaz.$bslash$div$class.flatMap(Either.scala:117)
      	at scalaz.$bslash$div$minus.flatMap(Either.scala:283)
      	at com.atlassian.servicedesk.internal.rest.CustomerResponseFactory.com$atlassian$servicedesk$internal$rest$CustomerResponseFactory$$getResponse(CustomerResponseFactory.scala:84)
      	at com.atlassian.servicedesk.internal.rest.CustomerResponseFactory$$anonfun$1.apply(CustomerResponseFactory.scala:41)
      	at com.atlassian.servicedesk.internal.rest.CustomerResponseFactory$$anonfun$1.apply(CustomerResponseFactory.scala:41)
      	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
      	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
      	at scala.collection.Iterator$class.foreach(Iterator.scala:727)
      	at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
      	at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
      	at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
      	at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
      	at scala.collection.AbstractTraversable.map(Traversable.scala:105)
      	at com.atlassian.servicedesk.internal.rest.CustomerResponseFactory.createResponse(CustomerResponseFactory.scala:41)
      	at com.atlassian.servicedesk.internal.web.CustomerPageRenderer.createPageParams(CustomerPageRenderer.scala:78)
      	at com.atlassian.servicedesk.internal.web.CustomerPageRenderer.createPage(CustomerPageRenderer.scala:51)
      	at com.atlassian.servicedesk.internal.web.CustomerPageRenderer.createPage(CustomerPageRenderer.scala:57)
      	at com.atlassian.servicedesk.internal.rest.CustomerWeb$$anonfun$portalOfPortals$2.apply(CustomerWeb.scala:158)
      	at com.atlassian.servicedesk.internal.rest.CustomerWeb$$anonfun$portalOfPortals$2.apply(CustomerWeb.scala:145)
      	at scalaz.$bslash$div$class.fold(Either.scala:40)
      	at scalaz.$bslash$div$minus.fold(Either.scala:283)
      	at com.atlassian.servicedesk.internal.rest.CustomerWeb.portalOfPortals(CustomerWeb.scala:143)  <+3> (NativeMethodAccessorImpl.java:62) (DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)  <+19> (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) (RightHandPathRule.java:147) (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.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.PrettyUrlsCommonFilter.preventDoubleInvocation(PrettyUrlsCommonFilter.java:38)
      	at com.atlassian.prettyurls.filter.PrettyUrlsSiteMeshFilter.doFilter(PrettyUrlsSiteMeshFilter.java:74)  <+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:30)  <+11> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (PageBuilderFilter.java:69) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:70)
      	at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61)  <+19> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (SecurityFilter.java:85) (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.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61)  <+8> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (IteratingFilterChain.java:46) (DelegatingPluginFilter.java:70)
      	at com.atlassian.servicedesk.internal.web.PortalContextSetter$$anonfun$doFilter$1.apply$mcV$sp(PortalContextSetter.scala:12)
      	at com.atlassian.servicedesk.internal.web.PortalContextSetter$$anonfun$doFilter$1.apply(PortalContextSetter.scala:11)
      	at com.atlassian.servicedesk.internal.web.PortalContextSetter$$anonfun$doFilter$1.apply(PortalContextSetter.scala:11)
      	at com.atlassian.servicedesk.internal.utils.context.PortalContextUtil$.inPortalContext(PortalContextUtil.scala:29)
      	at com.atlassian.servicedesk.internal.web.PortalContextSetter.doFilter(PortalContextSetter.scala:11)  <+4> (AbstractHttpFilter.java:31) (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (DelegatingPluginFilter.java:70)
      	at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61)  <+10> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (ApplicationFilterChain.java:241) (ApplicationFilterChain.java:208) (ApplicationDispatcher.java:748) (ApplicationDispatcher.java:486) (ApplicationDispatcher.java:411) (ApplicationDispatcher.java:338)
      	at com.atlassian.prettyurls.filter.PrettyUrlsDispatcherFilter.doFilter(PrettyUrlsDispatcherFilter.java:55)  <+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.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61)  <+6> (DelegatingPluginFilter.java:78) (IteratingFilterChain.java:42) (ServletFilterModuleContainerFilter.java:77) (ServletFilterModuleContainerFilter.java:63) (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.servicedesk.internal.web.PortalContextSetter$$anonfun$doFilter$1.apply$mcV$sp(PortalContextSetter.scala:12)
      	at com.atlassian.servicedesk.internal.web.PortalContextSetter$$anonfun$doFilter$1.apply(PortalContextSetter.scala:11)
      	at com.atlassian.servicedesk.internal.web.PortalContextSetter$$anonfun$doFilter$1.apply(PortalContextSetter.scala:11)
      	at com.atlassian.servicedesk.internal.utils.context.PortalContextUtil$.inPortalContext(PortalContextUtil.scala:23)
      	at com.atlassian.servicedesk.internal.web.PortalContextSetter.doFilter(PortalContextSetter.scala:11)  <+4> (AbstractHttpFilter.java:31) (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:49) (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:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      	at java.lang.Thread.run(Thread.java:745)
      

      Workaround

      The workaround involves creating the statuses in the JIRA Administration interface and then changing the status ID to be the ID of the deleted status. You only need to add the status and change the ID, the status does not need to be added to any workflows.

      1. Use the following query to obtain the ID and status name that is missing
        SELECT DISTINCT newvalue,newstring FROM changeitem WHERE field ='status' AND newvalue NOT IN (SELECT id FROM issuestatus);
        
        • If more than one status is returned, perform the following steps for each unique "newvalue"
          • The string is the status name. if multiple strings appear for the same "newvalue" you should select whichever name suits you best. You only need to create one status for each unique "newvalue"
      2. Create the status in the JIRA Administration page
      3. After creating the status, hover over the edit link for the new status to obtain the URL for this link. Copy down the ID that appears at the end of this URL.
      4. Shut down JIRA
      5. Update the issuestatus table so that the newly created status has the ID of the deleted status.
        • Run the following query. Replace the first ID with the ID you obtained from the URL when you added the status. Replace the second ID with the missing status ID that you obtained in the first SQL query.
          UPDATE issuestatus SET id='10200' WHERE id='10610';
          
      6. Start JIRA

            Assignee:
            Unassigned
            Reporter:
            Tim Evans (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: