• Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Low Low
    • 3.5.1
    • 3.4.1, 3.5.0
    • SLA

      Problem

      When there are multiple updates to the SLA value within the same request, it can result the SLA being overridden.

      Cause

      The method when we retrieve values vs writing values differ.

      issue.getCustomFieldValue(customField);
      
      • getCustomFieldValue will load the value, and cache it in a map on the IssueImpl object.
      customField.getCustomFieldType().updateValue(customField, issue, updatingValue);
      
      • when we update the value, we write it directly to the database, but do not update this map in the IssueImpl.

      So if in the same request has multiple read/writes, our changes can be overridden as the value retrieved from issue is the original start value (in the map cache), which was not updated with previous writes.

      Visible user symptoms/problem

      SLA rule sporadically doesn't react (doesn't pause, etc) on issue status change.

      Workaround:

      Missing/Incorrect SLAs can be reconstructed by following the Missing SLA data in JIRA ServiceDesk KB.

          Form Name

            [JSDSERVER-5066] Multiple SLA updates in same request override each other

            Mateusz T made changes -
            Remote Link Original: This issue links to "JSDS-512 (JIRA Server)" [ 283787 ] New: This issue links to "JSMDC-512 (JIRA Server (Bulldog))" [ 283787 ]
            Owen made changes -
            Workflow Original: JSD Bug Workflow v5 - TEMP [ 2305121 ] New: JAC Bug Workflow v3 [ 3126456 ]
            Status Original: Done [ 10044 ] New: Closed [ 6 ]
            Owen made changes -
            Symptom Severity Original: Minor [ 14432 ] New: Severity 3 - Minor [ 15832 ]
            Luciano Fagundes (Inactive) made changes -
            Description Original: h4. Problem

            When there are multiple updates to the SLA value within the same request, it can result the SLA being overridden.
            h4. Cause

            The method when we retrieve values vs writing values differ.
            {code:java}
            issue.getCustomFieldValue(customField);
            {code}
             * getCustomFieldValue will load the value, and cache it in a map on the {{IssueImpl}} object.

            {code:java}
            customField.getCustomFieldType().updateValue(customField, issue, updatingValue);
            {code}
             * when we update the value, we write it directly to the database, but do not update this map in the {{IssueImpl}}.

            So if in the same request has multiple read/writes, our changes can be overridden as the value retrieved from issue is the original start value (in the map cache), which was not updated with previous writes.
            h4. Visible user symptoms/problem

            SLA rule sporadically doesn't react (doesn't _pause_, etc) on issue status change.
            h4. Workaround:

            Missing/Incorrect SLAs can be reconstructed by following [Missing SLA data in JIRA ServiceDesk|https://confluence.atlassian.com/jirakb/missing-sla-data-in-jira-servicedesk-828790603.html] KB.
            New: h4. Problem

            When there are multiple updates to the SLA value within the same request, it can result the SLA being overridden.
            h4. Cause

            The method when we retrieve values vs writing values differ.
            {code:java}
            issue.getCustomFieldValue(customField);
            {code}
             * getCustomFieldValue will load the value, and cache it in a map on the {{IssueImpl}} object.

            {code:java}
            customField.getCustomFieldType().updateValue(customField, issue, updatingValue);
            {code}
             * when we update the value, we write it directly to the database, but do not update this map in the {{IssueImpl}}.

            So if in the same request has multiple read/writes, our changes can be overridden as the value retrieved from issue is the original start value (in the map cache), which was not updated with previous writes.
            h4. Visible user symptoms/problem

            SLA rule sporadically doesn't react (doesn't _pause_, etc) on issue status change.
            h4. Workaround:

            Missing/Incorrect SLAs can be reconstructed by following the [Missing SLA data in JIRA ServiceDesk|https://confluence.atlassian.com/jirakb/missing-sla-data-in-jira-servicedesk-828790603.html] KB.
            Luciano Fagundes (Inactive) made changes -
            Description Original: h4. Problem
            When there are multiple updates to the SLA value within the same request, it can result the SLA being overridden.

            h4. Cause
            The method when we retrieve values vs writing values differ.
            {code}
            issue.getCustomFieldValue(customField);
            {code}
            * getCustomFieldValue will load the value, and cache it in a map on the {{IssueImpl}} object.

            {code}
            customField.getCustomFieldType().updateValue(customField, issue, updatingValue);
            {code}
            * when we update the value, we write it directly to the database, but do not update this map in the {{IssueImpl}}.

            So if in the same request has multiple read/writes, our changes can be overridden as the value retrieved from issue is the original start value (in the map cache), which was not updated with previous writes.

            h4. Visible user symptoms/problem
            SLA rule sporadically doesn't react (doesn't _pause_, etc) on issue status change.
            New: h4. Problem

            When there are multiple updates to the SLA value within the same request, it can result the SLA being overridden.
            h4. Cause

            The method when we retrieve values vs writing values differ.
            {code:java}
            issue.getCustomFieldValue(customField);
            {code}
             * getCustomFieldValue will load the value, and cache it in a map on the {{IssueImpl}} object.

            {code:java}
            customField.getCustomFieldType().updateValue(customField, issue, updatingValue);
            {code}
             * when we update the value, we write it directly to the database, but do not update this map in the {{IssueImpl}}.

            So if in the same request has multiple read/writes, our changes can be overridden as the value retrieved from issue is the original start value (in the map cache), which was not updated with previous writes.
            h4. Visible user symptoms/problem

            SLA rule sporadically doesn't react (doesn't _pause_, etc) on issue status change.
            h4. Workaround:

            Missing/Incorrect SLAs can be reconstructed by following [Missing SLA data in JIRA ServiceDesk|https://confluence.atlassian.com/jirakb/missing-sla-data-in-jira-servicedesk-828790603.html] KB.
            Andriy Yakovlev [Atlassian] made changes -
            Link New: This issue relates to JSDSERVER-5299 [ JSDSERVER-5299 ]
            Kevin Liou made changes -
            Affects Version/s New: 3.5.0 [ 70597 ]
            Matthew McMahon (Inactive) made changes -
            Resolution New: Fixed [ 1 ]
            Status Original: Awaiting Release [ 11372 ] New: Done [ 10044 ]
            Katherine Yabut made changes -
            Workflow Original: JSD Bug Workflow v5 [ 2059048 ] New: JSD Bug Workflow v5 - TEMP [ 2305121 ]
            Katherine Yabut made changes -
            Workflow Original: JSD Bug Workflow v5 - TEMP [ 2056440 ] New: JSD Bug Workflow v5 [ 2059048 ]

              mmcmahon Matthew McMahon (Inactive)
              dchan David Chan
              Affected customers:
              1 This affects my team
              Watchers:
              7 Start watching this issue

                Created:
                Updated:
                Resolved: