|
||||||||
This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators. For more information on JIRA, see: http://www.atlassian.com/software/jira |
- [JIRA] (JENKINS-15587) Builds disappear from j... ch...@orr.me.uk (JIRA)
- [JIRA] (JENKINS-15587) Builds disappear f... ch...@orr.me.uk (JIRA)
- [JIRA] (JENKINS-15587) Builds disappear f... alek...@java.net (JIRA)
- [JIRA] (JENKINS-15587) Builds disappear f... alek...@java.net (JIRA)
- [JIRA] (JENKINS-15587) Builds disappear f... alek...@java.net (JIRA)
- [JIRA] (JENKINS-15587) Builds disappear f... ant.ka...@gmail.com (JIRA)
- [JIRA] (JENKINS-15587) Builds disappear f... jos...@java.net (JIRA)
- [JIRA] (JENKINS-15587) Builds disappear f... jgl...@cloudbees.com (JIRA)
- [JIRA] (JENKINS-15587) Builds disappear f... rayd...@aol.com (JIRA)
- [JIRA] (JENKINS-15587) Builds disappear f... jos...@java.net (JIRA)
The issue is with the File.getCanonicalFile() function. It doesn't resolve the original directory name from NTFS symlink.
To see the code look here: function parseTimestampFromBuildDir in https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/model/Run.java .
To test the problem one can compile (jdk1.7) and run code below (change "./294" to appropriate symlink path)
To create directory symlink on windows Vista/7/2008 run command: mklink /D symlinkname targetdirpath (e.g. mklink /D win "C:\Windows")
MainClass.java code:
import java.io.File;
import java.nio.file.Path;
import java.nio.file.Files;
import java.io.IOException;
public class MainClass {
public static void main(String [] args) {
File file = new File("./294");
try { if(file.isDirectory()) System.out.print("Dir "); else System.out.print("File "); if(Files.isSymbolicLink(file.toPath())) System.out.print("Symlink "); System.out.println(file.getAbsolutePath()); System.out.println(file.getCanonicalFile().getName()); System.out.println(file.getCanonicalFile().getAbsolutePath()); } catch (IOException e) { e.printStackTrace(); }
}
}