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

    XMLWordPrintable

Details

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

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

              lgoodhewcook Lachlan G (Inactive)
              cmao Chen Mao (Inactive)
              Votes:
              8 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Backbone Issue Sync