-
Bug
-
Resolution: Fixed
-
Major
-
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.
Code changed in jenkins
User: Albert So
Path:
src/test/java/hudson/plugins/doxygen/DoxygenDirectoryParserTest.java
http://jenkins-ci.org/commit/doxygen-plugin/78e416c86cf0679e8f305679cdc48b1a6f74170c
Log:
JENKINS-13599Provided better implementation ofDoxygenDirectoryParser#isDirectoryAbsolute(). The previous implementation would
incorrectly think that doc was absolute because java.io.File found /home/y/doc