-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
Jenkins 1.427, Java 1.6.0
After adding/changing an Axis to the configuration matrix of a multi configuration task, Doxygen publishing plugin fails to locate the doxygen path, or uses out of date data. By changing the axis the build directory will also change, but the Doxygen plugin keeps looking in the old location.
I found this to be caused by the usage of MatrixBuild::getRuns() function, instead of the MatrixBuild::getExactRuns() function. This resulted in the plugin trying to use the workspace of an older, successful, run.
Attached is a patch that fixes this issue in a similar fashion the CopyArtifect plugin handles this problem.
STR:
- setup a multi configuration build, with the doxygen publishing plugin enabled
- test if this works
- Change the name of a configuration axis
- Wipe the workspace
- run the job again, notice the doxygen plugin will fail with the following stack trace(or similar):
hudson.util.IOException2: remote file operation failed: /home/build/.jenkins/workspace/test_doxygen/OS/RHEL/ServerType/build at hudson.remoting.Channel@69b8b810:RedHat 6.0 Virtual Machine (64-bit)
at hudson.FilePath.act(FilePath.java:754)
at hudson.FilePath.act(FilePath.java:740)
at hudson.plugins.doxygen.DoxygenArchiver._perform(DoxygenArchiver.java:213)
at hudson.plugins.doxygen.DoxygenArchiver.access$200(DoxygenArchiver.java:50)
at hudson.plugins.doxygen.DoxygenArchiver$1.endBuild(DoxygenArchiver.java:369)
at hudson.matrix.MatrixBuild$RunnerImpl.post2(MatrixBuild.java:392)
at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:604)
at hudson.model.Run.run(Run.java:1401)
at hudson.matrix.MatrixBuild.run(MatrixBuild.java:220)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:230)
at hudson.model.OneOffExecutor.run(OneOffExecutor.java:66)
Caused by: java.io.FileNotFoundException: /home/build/.jenkins/workspace/test_doxygen/OS/RHEL/ServerType/build/build/doc/doxygen.conf (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at hudson.plugins.doxygen.DoxygenDirectoryParser.loadDoxyFile(DoxygenDirectoryParser.java:183)
at hudson.plugins.doxygen.DoxygenDirectoryParser.retrieveDoxygenDirectoryFromDoxyfile(DoxygenDirectoryParser.java:322)
at hudson.plugins.doxygen.DoxygenDirectoryParser.invoke(DoxygenDirectoryParser.java:55)
at hudson.plugins.doxygen.DoxygenDirectoryParser.invoke(DoxygenDirectoryParser.java:14)
at hudson.FilePath$FileCallableWrapper.call(FilePath.java:1994)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:287)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)