diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RacyGitTests.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RacyGitTests.java index c29f1a0d7..e208b27e6 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RacyGitTests.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RacyGitTests.java @@ -160,38 +160,6 @@ public class RacyGitTests extends RepositoryTestCase { indexState(SMUDGE|MOD_TIME|LENGTH)); } - /** - * Waits until it is guaranteed that the filesystem timer (used e.g. for - * lastModified) has a value greater than the lastmodified time of the given - * file. This is done by touch a file, reading the lastmodified and sleeping - * attribute sleeping - * - * @param lastFile - * @return return the last measured value of the filesystem timer which is - * greater than then the lastmodification time of lastfile. - * @throws InterruptedException - * @throws IOException - */ - public static long fsTick(File lastFile) throws InterruptedException, - IOException { - long sleepTime = 1; - File tmp = File.createTempFile("FileTreeIteratorWithTimeControl", null); - try { - long startTime = (lastFile == null) ? tmp.lastModified() : lastFile - .lastModified(); - long actTime = tmp.lastModified(); - while (actTime <= startTime) { - Thread.sleep(sleepTime); - sleepTime *= 5; - tmp.setLastModified(System.currentTimeMillis()); - actTime = tmp.lastModified(); - } - return actTime; - } finally { - tmp.delete(); - } - } - private void addToIndex(TreeSet modTimes) throws FileNotFoundException, IOException { DirCacheBuilder builder = db.lockDirCache().builder(); diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryTestCase.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryTestCase.java index cb1f38556..36b28ae07 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryTestCase.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryTestCase.java @@ -232,4 +232,40 @@ public abstract class RepositoryTestCase extends LocalDiskRepositoryTestCase { } return name; } + + /** + * Waits until it is guaranteed that a subsequent file modification has a + * younger modification timestamp than the modification timestamp of the + * given file. This is done by touching a temporary file, reading the + * lastmodified attribute and, if needed, sleeping. After sleeping this loop + * starts again until the filesystem timer has advanced enough. + * + * @param lastFile + * the file on which we want to wait until the filesystem timer + * has advanced more than the lastmodification timestamp of this + * file + * @return return the last measured value of the filesystem timer which is + * greater than then the lastmodification time of lastfile. + * @throws InterruptedException + * @throws IOException + */ + public static long fsTick(File lastFile) throws InterruptedException, + IOException { + long sleepTime = 1; + File tmp = File.createTempFile("FileTreeIteratorWithTimeControl", null); + try { + long startTime = (lastFile == null) ? tmp.lastModified() : lastFile + .lastModified(); + long actTime = tmp.lastModified(); + while (actTime <= startTime) { + Thread.sleep(sleepTime); + sleepTime *= 5; + tmp.setLastModified(System.currentTimeMillis()); + actTime = tmp.lastModified(); + } + return actTime; + } finally { + tmp.delete(); + } + } }