DOM elements are getting removed in Jira 7.2 RC

XMLWordPrintable

    • Type: Bug
    • Resolution: Won't Fix
    • Priority: Medium
    • 7.2.0
    • Affects Version/s: 7.2.0-RC02
    • Component/s: Java API
    • 7.02

      Atlassian Update – 29 July 2016

      I've resolved the issue as Won't Fix because the bug is caused by incorrect initialisation of Zephyr steps when searching for tests using detail view.
      I have not observed the removal of any undesirable DOM elements.
      For the details please take a look at comments.

      Summary

      DOM elements are getting removed in Jira 7.2 RC

      Environment

      JIRA with the Zephyr installed.

      Steps to Reproduce

      1. Install Zephyr for JIRA plugin
      2. Create a Test within a project
      3. Create a Test within a project
      4. Add steps to the Test
      5. Create sub-task for the test from More Actions menu -> Create sub-task
      6. Search for this test and this does not load our steps

      Expected Results

      The steps are loaded.

      Actual Results

      The steps are not loaded.

       

      On debugging, we are facing an issue with MutationObserver, the steps created in the DOM are removed by the following snippet of code from file http://localhost:2990/jira/s/aa27b566fc0940a9234fcf34e7ba1ae2-CDN/i93w2e/72002/b6b48b2829824b869586ac216d119363/5.9.17/_/download/resources/com.atlassian.auiplugin:internal-skatejs-0.13.16-lib-document-observer/internal-node-modules-skatejs-lib-document-observer.js?locale=en-IN

       

      /**
       * The document observer handler.
       *
       * @param {Array} mutations The mutations to handle.
       *
       * @returns {undefined}
       */
      function documentObserverHandler(mutations) {
         var mutationsLen = mutations.length;
      
         for (var a = 0; a < mutationsLen; a++) {
            var mutation = mutations[a];
            var addedNodes = mutation.addedNodes;
            var removedNodes = mutation.removedNodes;
      
            // Since siblings are batched together, we check the first node's parent
            // node to see if it is ignored. If it is then we don't process any added
            // nodes. This prevents having to check every node.
            if (addedNodes && addedNodes.length && !getClosestIgnoredElement(addedNodes[0].parentNode)) {
               initElements(addedNodes);
            }
      
            // We can't check batched nodes here because they won't have a parent node.
            if (removedNodes && removedNodes.length) {
               removeElements(removedNodes);
            }
         }
      }
      
      
      

      Notes

      This is a critical issue for us, kindly let us know if there is a workaround or an alternative approach

      Workaround

      (If there is no workaround directly say so)

            Assignee:
            Maciej Rzymski
            Reporter:
            Ignat (Inactive)
            Votes:
            22 Vote for this issue
            Watchers:
            15 Start watching this issue

              Created:
              Updated:
              Resolved: