Uploaded image for project: 'Jira Service Management Data Center'
  1. Jira Service Management Data Center
  2. JSDSERVER-5111

When there is no SLA metric user is not able to create the first one

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Medium Medium
    • 3.5.1
    • 3.5.0
    • SLA

      Summary

      When there is no SLA metric in the SD project user will encounter an endless spinner and a page keeps refreshing while trying to create the first SLA metric.

      Steps to Reproduce

      1. Create a new SD project.
      2. Remove all the existing SLA metric in the project.
      3. Try to create a new SLA metric

      Expected Results

      New SLA metric configuration page get correctly displayed.

      Actual Results

      Page keeps refreshing with an endless spinner
      The below exception is thrown in the log file:

      2017-05-16 13:52:11,352 http-nio-8080-exec-12 ERROR admin 832x249x2 myyi3q 0:0:0:0:0:0:0:1 /rest/servicedesk/1/servicedesk/agent/SLAT/sla/consistencydata [c.a.p.r.c.error.jersey.ThrowableExceptionMapper] Uncaught exception thrown by REST service: Trying to create empty sub-expression. Current JQL is '{project = 10102} AND ('.
      java.lang.IllegalStateException: Trying to create empty sub-expression. Current JQL is '{project = 10102} AND ('.
      	at com.atlassian.jira.jql.builder.PrecedenceSimpleClauseBuilder$StartGroup.endgroup(PrecedenceSimpleClauseBuilder.java:818)
      	at com.atlassian.jira.jql.builder.PrecedenceSimpleClauseBuilder.endsub(PrecedenceSimpleClauseBuilder.java:103)
      	at com.atlassian.jira.jql.builder.DefaultJqlClauseBuilder.endsub(DefaultJqlClauseBuilder.java:150)
      	at com.atlassian.servicedesk.internal.sla.task.OutdatedIssueFinder.getOutdatedMetricsQuery(OutdatedIssueFinder.java:119)
      	at com.atlassian.servicedesk.internal.sla.task.OutdatedIssueFinder.getOutdatedServiceDeskIssueCount(OutdatedIssueFinder.java:65)
      	at com.atlassian.servicedesk.internal.sla.task.SlaDataConsistencyServiceImpl.getSLADataConsistencyState(SlaDataConsistencyServiceImpl.java:49)
      	at com.atlassian.servicedesk.internal.rest.sla.agentview.ServiceDeskSlaHelper.getSLAConsistencyData(ServiceDeskSlaHelper.java:194)
      	at com.atlassian.servicedesk.internal.rest.sla.agentview.ServiceDeskSlaResource.lambda$getSlaConsistencyData$46(ServiceDeskSlaResource.java:213)
      	at com.atlassian.pocketknife.step.EitherStep3.lambda$null$0(EitherStep3.java:26)
      	at io.atlassian.fugue.Either$RightProjection.flatMap(Either.java:870)
      	at io.atlassian.fugue.Either.flatMap(Either.java:230)
      	at com.atlassian.pocketknife.step.EitherStep3.lambda$null$1(EitherStep3.java:26)
      	at io.atlassian.fugue.Either$RightProjection.flatMap(Either.java:870)
      	at io.atlassian.fugue.Either.flatMap(Either.java:230)
      	at com.atlassian.pocketknife.step.EitherStep3.lambda$then$2(EitherStep3.java:25)
      	at io.atlassian.fugue.Either$RightProjection.flatMap(Either.java:870)
      	at io.atlassian.fugue.Either.flatMap(Either.java:230)
      	at com.atlassian.pocketknife.step.EitherStep3.then(EitherStep3.java:24)
      	at com.atlassian.servicedesk.internal.rest.sla.agentview.ServiceDeskSlaResource.getSlaConsistencyData(ServiceDeskSlaResource.java:213)
      	... 3 filtered
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	... 19 filtered
      	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:154)
      	... 1 filtered
      	at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:68)
      	... 32 filtered
      	at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:56)
      	... 4 filtered
      	at com.atlassian.servicedesk.internal.web.UrlOperationalStatusCheckFilter.doFilterWhenLicensed(UrlOperationalStatusCheckFilter.java:38)
      	at com.atlassian.servicedesk.internal.web.OperationalStatusAwareHttpFilter.doFilter(OperationalStatusAwareHttpFilter.java:27)
      	... 4 filtered
      	at com.atlassian.servicedesk.internal.web.PopulateEyeballForRestFilter.doFilterWhenLicensed(PopulateEyeballForRestFilter.java:36)
      	at com.atlassian.servicedesk.internal.web.OperationalStatusAwareHttpFilter.doFilter(OperationalStatusAwareHttpFilter.java:27)
      	... 8 filtered
      	at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
      	... 53 filtered
      	at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:80)
      	... 1 filtered
      	at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:78)
      	... 16 filtered
      	at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:37)
      	... 20 filtered
      	at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30)
      	... 5 filtered
      	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:181)
      	at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:134)
      	at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:87)
      	at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runOutOfCustomerContext(CustomerContextServiceImpl.java:64)
      	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:174)
      	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:130)
      	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:121)
      	... 4 filtered
      	at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:32)
      	... 8 filtered
      	at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
      	... 4 filtered
      	at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36)
      	... 29 filtered
      	at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25)
      	... 28 filtered
      	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)
      

      Notes

      The error cannot be reproduced on a JSD 3.4.0 instance.

      Workaround

      1. Create a new SD project with pre-defined SLA.
      2. Copy project configuration from current project to new project.
      3. Setup the custom SLA in the new project before removing the pre-defined SLA.
      4. Move issues to new project.
      5. (Optional) Delete current project.
      6. (Optional) Change project key of new project.

          Form Name

            [JSDSERVER-5111] When there is no SLA metric user is not able to create the first one

            No work has yet been logged on this issue.

              lgoodhewcook Lachlan G (Inactive)
              cmao Chen Mao (Inactive)
              Affected customers:
              8 This affects my team
              Watchers:
              11 Start watching this issue

                Created:
                Updated:
                Resolved: