Maven Javadoc Plugin
  1. Maven Javadoc Plugin
  2. MJAVADOC-268

performance problem in AbstractJavadocMojo.getModulesLinks()

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 2.6
    • Fix Version/s: 2.6.1
    • Labels:
      None
    • Environment:
    • Patch Submitted:
      Yes
    • Number of attachments :
      1

      Description

      The getModulesLinks() method is unacceptably slow under certain conditions:
      1. project's url is defined
      2. one or more projects in reactor do not have any java sources and are not of "pom" packaging.
      For such projects the apidocs/ output folder is never created resulting in repeated invokation of a forked javadoc goal. It's more severe with high number of modules in reactor and high number of modules without any java sources.

      as an example checkout "hg clone https://hg.kenai.com/hg/forceten~src"

      The immediate problem is in the apidocsFile.exists() condition that re-triggers the forked invokation. The attached patch fixes that. However it looks suspicitions that the method is being called repeatedly for each module at all. Maybe the aborting condition at the start of the method body is wrong (I was not able to decypher that)

      workaround is to use 2.5 or not to specify the url in pom.xml or set the detectOfflineLinks parameter to "false".

        Issue Links

          Activity

          Hide
          Parag Mehta added a comment -

          The issue still exists in 2.7 and does not seem to be fixed. When running in a reactor, this problem causes maven to infinitely recurse. 2.5 seems to work ok though.

          Show
          Parag Mehta added a comment - The issue still exists in 2.7 and does not seem to be fixed. When running in a reactor, this problem causes maven to infinitely recurse. 2.5 seems to work ok though.
          Hide
          Erik Brakkee added a comment -

          I can also confirm it still exists in version 2.7. Reverting back to 2.5 solves the problem, however with only drawback which is that there is no multi-module javadoc available for the overall site. At least my site generation time reduces now from 45 minutes to about 7.

          Show
          Erik Brakkee added a comment - I can also confirm it still exists in version 2.7. Reverting back to 2.5 solves the problem, however with only drawback which is that there is no multi-module javadoc available for the overall site. At least my site generation time reduces now from 45 minutes to about 7.
          Hide
          Paul Nyheim added a comment -

          I can confirm this is NOT fixed for 2.7. Is it possible to reopen this Issue, or do we need to resubmit a new one?

          Show
          Paul Nyheim added a comment - I can confirm this is NOT fixed for 2.7. Is it possible to reopen this Issue, or do we need to resubmit a new one?
          Hide
          Julio Argüello Fernández added a comment -

          I agree, I think this issue should be reopened. It's indeed an important thing.

          Hoping to find a solution, thank you very much!

          Show
          Julio Argüello Fernández added a comment - I agree, I think this issue should be reopened. It's indeed an important thing. Hoping to find a solution, thank you very much!
          Hide
          Paul Nyheim added a comment -

          Ah - just noticed that it has been linked to MJAVADOC-286 which is still Open and Unresolved. So we could all go over there and vote for that issue.

          Show
          Paul Nyheim added a comment - Ah - just noticed that it has been linked to MJAVADOC-286 which is still Open and Unresolved. So we could all go over there and vote for that issue.

            People

            • Assignee:
              Vincent Siveton
              Reporter:
              Milos Kleint
            • Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: