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

          Form Name

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

            Satej Mirpagar made changes -
            Resolution New: Fixed [ 1 ]
            Status Original: Waiting for Release [ 12075 ] New: Closed [ 6 ]
            Mingyi Yang made changes -
            Remote Link New: This issue links to "Page (Confluence)" [ 798169 ]
            Christopher Bowles made changes -
            Status Original: In Progress [ 3 ] New: Waiting for Release [ 12075 ]
            Christopher Bowles made changes -
            Fix Version/s New: 5.4.10 [ 105719 ]
            Fix Version/s New: 5.11.0 [ 105890 ]
            Christopher Bowles made changes -
            Status Original: Short Term Backlog [ 12074 ] New: In Progress [ 3 ]
            Alex Cooksey made changes -
            Assignee New: Christopher Bowles [ 12fbc3c722fa ]
            Christopher Bowles made changes -
            Remote Link New: This issue links to "Page (Confluence)" [ 794852 ]

            Hello,

            Do you have an update or workaround for this problem? 

            Thank you for your help,

            Alexandre

            Alexandre Allart added a comment - Hello, Do you have an update or workaround for this problem?  Thank you for your help, Alexandre
            Marc Dacanay made changes -
            Priority Original: Low [ 4 ] New: High [ 2 ]
            Marc Dacanay made changes -
            Status Original: Needs Triage [ 10030 ] New: Short Term Backlog [ 12074 ]

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

                Created:
                Updated:
                Resolved: