getReviewsForChangeset() can be very slow for large changesets

XMLWordPrintable

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Medium
    • None
    • Affects Version/s: 3.0.0, 3.8.0
    • Component/s: None
    • None
    • Severity 2 - Major
    • 5

      When checking the reviews for a specific changeset (this is used in activity streams, changeset page, services used by the JIRA development panel, and the API), the getReviewsForChangeset() method traverses all revisions for the reviews.

      The number of revisions can be very large in some cases (especially for tag/branch commits in SVN), causing the method to execute very long.

      Example stacks are:

      ...
      	at com.cenqua.fisheye.rep.impl.CommonRevInfoDAO$3.apply(CommonRevInfoDAO.java:2304)
      	at com.cenqua.fisheye.rep.impl.CommonRevInfoDAO$3.apply(CommonRevInfoDAO.java:2298)
      	at com.cenqua.fisheye.rep.impl.CommonRevInfoDAO.searchChangeSetRevids(CommonRevInfoDAO.java:320)
      	at com.cenqua.fisheye.rep.impl.CommonRevInfoDAO.getReviewsForChangeset(CommonRevInfoDAO.java:2298)
      	at com.cenqua.fisheye.rep.RevidChangeSet.getReviewIds(RevidChangeSet.java:37)
      ...
      

      Note: this can affect JIRA-FishEye dev status integration and cause timeouts on the Jira dev status panel. This can affect the performance of the following REST query:

      /rest/dev-status/1.0/details/repositories?globalId=[ISSUE-KEY]
      

        1. qtp17
          19 kB
          Marek Parfianowicz
        2. qtp22
          18 kB
          Marek Parfianowicz
        3. qtp15
          19 kB
          Marek Parfianowicz
        4. qtp11
          17 kB
          Marek Parfianowicz
        5. qtp12
          19 kB
          Marek Parfianowicz

            Assignee:
            Unassigned
            Reporter:
            Lukasz Pater
            Votes:
            4 Vote for this issue
            Watchers:
            14 Start watching this issue

              Created:
              Updated: