Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-13599

DoxygenDirectoryParser#isDirectoryAbsolute() can get confused and cause the doxygen OUTPUT_DIR not to be found

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • doxygen-plugin
    • None

      We have a doxygen.conf file where OUTPUT_DIRECTORY = doc. The doxygen html files were generated properly under ${workspace}/doc/html however the plugin kept on saying it couldn't find the directory.

      After tracing in to the code, I think I see the problem. DoxygenDirectoryParser#isDirectoryAbsolute() checks to see if the passed in path is absolute by seeing if the path's parent exists.

      If we pass in "doc" you would expext isDirectoryAbsolute() to return false. However, in our environment, ${user.dir}/doc actually does exist.

      From http://docs.oracle.com/javase/6/docs/api/java/io/File.html, "By default the classes in the java.io package always resolve relative pathnames against the current user directory. This directory is named by the system property user.dir, and is typically the directory in which the Java virtual machine was invoked."

      For Unix environments, I'm thinking we can just check to see if the path starts with a "/" to see if a directory is absolute. However, for Windows environments, the check will have to include checking for drive letter names and UNC paths.

            kingfai Albert So
            kingfai Albert So
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: