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

Assets issue count report on using aqlfunction throwing JQL Validation error

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: High High
    • 5.11.0, 5.4.10
    • 5.4.0, 5.4.2
    • Assets - Report
    • None

      Issue Summary

      This is reproducible on Data Center: (yes) / (no)

      Steps to Reproduce

      1. Create any assets custom field and update a few issues to add assets objects to the custom field. 
      2. Run a search in Jira issue search screen using aqlfunction and retrieve the issues.
        1. project = ITSD AND "Service Contract" in aqlFunction("Name = Contract1")
      1. It works as expected and displays the issues matching the JQL.
      2. Now open Assets reports and select "New report" and  "Issue Count" report. 
      3. Add all the mandatory fields, adn in the "Issue filter (JQL)" field, enter the JQL provided above that has aqlfunction.
      4. Hit Generate preview.

      Expected Results

      A preview of the data is displayed.

      Actual Results

       A validation JQL error is displayed on the screen. Even if the report is saved without any preview, still the gadget that shows this filter in the dashboard fails with the same error in the log.

      The below exception is thrown in the atlassian-jira.log file:

      2023-06-19 11:05:30,208+0530 DefaultDispatcher-worker-2 ERROR admin     [i.r.j.p.i.widget.queue.GenerationDataCapabilityQueueImpl] Fail running a job-queue under user `admin`
      io.riada.core.service.ServiceException: jql: {insight-widget.validation.jql.nonvalid}
              at io.riada.core.service.ServiceException$Companion.validationFailed(ServiceException.kt:110)
              at io.riada.core.service.ServiceException$Companion.validationFailed(ServiceException.kt:94)
              at io.riada.assetmgt.ticket.service.JiraIssueServiceImpl.parseJQL(JiraIssueServiceImpl.kt:109)
              at io.riada.assetmgt.ticket.service.JiraIssueServiceImpl.buildJQL(JiraIssueServiceImpl.kt:93)
              at io.riada.assetmgt.ticket.service.JiraIssueServiceImpl.findAllByObject(JiraIssueServiceImpl.kt:46)
              at io.riada.assetmgt.ticket.service.TicketServiceJiraImpl.findIssuesForObject(TicketServiceJiraImpl.kt:109)
              at io.riada.assetmgt.ticket.service.TicketServiceJiraImpl.findAllTicketsForObjects(TicketServiceJiraImpl.kt:69)
              at io.riada.jira.plugins.insight.reports.issuecount.IssueCountReport.findTicketsFrom(IssueCountReport.kt:113)
              at io.riada.jira.plugins.insight.reports.issuecount.IssueCountReport.generate(IssueCountReport.kt:93)
              at io.riada.jira.plugins.insight.reports.issuecount.IssueCountReport.generate(IssueCountReport.kt:26)
              at io.riada.jira.plugins.insight.widget.queue.GenerationDataCapabilityJobImpl.generate(GenerationDataCapabilityJobImpl.kt:42)
              at io.riada.jira.plugins.insight.widget.queue.GenerationDataCapabilityJobImpl.generateSample(GenerationDataCapabilityJobImpl.kt:26)
              at io.riada.jira.plugins.insight.widget.queue.GenerationDataCapabilityQueueImpl$generateSample$1.invoke(GenerationDataCapabilityQueueImpl.kt:181)
              at io.riada.jira.plugins.insight.widget.queue.GenerationDataCapabilityQueueImpl.runUnderContext(GenerationDataCapabilityQueueImpl.kt:193)
              at io.riada.jira.plugins.insight.widget.queue.GenerationDataCapabilityQueueImpl.generateSample(GenerationDataCapabilityQueueImpl.kt:179)
              at io.riada.jira.plugins.insight.widget.queue.GenerationDataCapabilityQueueImpl.previewOf$lambda-1(GenerationDataCapabilityQueueImpl.kt:117)
              at com.atlassian.jira.util.thread.JiraThreadLocalUtils.lambda$wrap$1(JiraThreadLocalUtils.java:156)
              at io.riada.jira.plugins.insight.widget.queue.GenerationDataCapabilityQueueRunnerJiraImpl$run$1$future$1.invokeSuspend(GenerationDataCapabilityQueueRunnerJiraImpl.kt:61)
              at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
              at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
              at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:39)
              at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
              at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
              at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
              at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
              at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
      2023-06-19 11:05:30,228+0530 DefaultDispatcher-worker-2 ERROR anonymous     [i.r.j.p.i.widget.queue.GenerationDataCapabilityQueueRunnerJiraImpl] Oops
      io.riada.core.service.ServiceException: jql: {insight-widget.validation.jql.nonvalid}
              at io.riada.core.service.ServiceException$Companion.validationFailed(ServiceException.kt:110)
              at io.riada.core.service.ServiceException$Companion.validationFailed(ServiceException.kt:94)
              at io.riada.assetmgt.ticket.service.JiraIssueServiceImpl.parseJQL(JiraIssueServiceImpl.kt:109)
              at io.riada.assetmgt.ticket.service.JiraIssueServiceImpl.buildJQL(JiraIssueServiceImpl.kt:93)
              at io.riada.assetmgt.ticket.service.JiraIssueServiceImpl.findAllByObject(JiraIssueServiceImpl.kt:46)
              at io.riada.assetmgt.ticket.service.TicketServiceJiraImpl.findIssuesForObject(TicketServiceJiraImpl.kt:109)
              at io.riada.assetmgt.ticket.service.TicketServiceJiraImpl.findAllTicketsForObjects(TicketServiceJiraImpl.kt:69)
              at io.riada.jira.plugins.insight.reports.issuecount.IssueCountReport.findTicketsFrom(IssueCountReport.kt:113)
              at io.riada.jira.plugins.insight.reports.issuecount.IssueCountReport.generate(IssueCountReport.kt:93)
              at io.riada.jira.plugins.insight.reports.issuecount.IssueCountReport.generate(IssueCountReport.kt:26)
              at io.riada.jira.plugins.insight.widget.queue.GenerationDataCapabilityJobImpl.generate(GenerationDataCapabilityJobImpl.kt:42)
              at io.riada.jira.plugins.insight.widget.queue.GenerationDataCapabilityJobImpl.generateSample(GenerationDataCapabilityJobImpl.kt:26)
              at io.riada.jira.plugins.insight.widget.queue.GenerationDataCapabilityQueueImpl$generateSample$1.invoke(GenerationDataCapabilityQueueImpl.kt:181)
              at io.riada.jira.plugins.insight.widget.queue.GenerationDataCapabilityQueueImpl.runUnderContext(GenerationDataCapabilityQueueImpl.kt:193)
              at io.riada.jira.plugins.insight.widget.queue.GenerationDataCapabilityQueueImpl.generateSample(GenerationDataCapabilityQueueImpl.kt:179)
              at io.riada.jira.plugins.insight.widget.queue.GenerationDataCapabilityQueueImpl.previewOf$lambda-1(GenerationDataCapabilityQueueImpl.kt:117)
              at com.atlassian.jira.util.thread.JiraThreadLocalUtils.lambda$wrap$1(JiraThreadLocalUtils.java:156)
              at io.riada.jira.plugins.insight.widget.queue.GenerationDataCapabilityQueueRunnerJiraImpl$run$1$future$1.invokeSuspend(GenerationDataCapabilityQueueRunnerJiraImpl.kt:61)
              at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
              at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
              at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:39)
              at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
              at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
              at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
              at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
              at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665) 

      Workaround

      Currently there is no known workaround for this behavior. A workaround will be added here when available

            [JSDSERVER-13385] Assets issue count report on using aqlfunction throwing JQL Validation error

              12fbc3c722fa Christopher Bowles
              1463fcb5e3fd Sireesha
              Affected customers:
              2 This affects my team
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: