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
        2. qtp22
          18 kB
        3. qtp15
          19 kB
        4. qtp11
          17 kB
        5. qtp12
          19 kB

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

              Created:
              Updated: