Index: src/java/org/apache/lucene/index/IndexWriter.java =================================================================== RCS file: /home/cvspublic/jakarta-lucene/src/java/org/apache/lucene/index/IndexWriter.java,v retrieving revision 1.16 diff -u -w -r1.16 IndexWriter.java --- src/java/org/apache/lucene/index/IndexWriter.java 25 Sep 2003 22:01:51 -0000 1.16 +++ src/java/org/apache/lucene/index/IndexWriter.java 30 Sep 2003 21:49:13 -0000 @@ -296,6 +296,7 @@ segmentInfos.info(0).dir != directory))) { int minSegment = segmentInfos.size() - mergeFactor; mergeSegments(minSegment < 0 ? 0 : minSegment); + directory.touchFile("segments"); } } Index: src/java/org/apache/lucene/store/FSDirectory.java =================================================================== RCS file: /home/cvspublic/jakarta-lucene/src/java/org/apache/lucene/store/FSDirectory.java,v retrieving revision 1.21 diff -u -w -r1.21 FSDirectory.java --- src/java/org/apache/lucene/store/FSDirectory.java 25 Sep 2003 21:50:11 -0000 1.21 +++ src/java/org/apache/lucene/store/FSDirectory.java 30 Sep 2003 21:49:13 -0000 @@ -205,7 +205,13 @@ /** Set the modified time of an existing file to now. */ public void touchFile(String name) throws IOException { File file = new File(directory, name); + long oldModified = file.lastModified(); + do { file.setLastModified(System.currentTimeMillis()); + try { + Thread.sleep(1); + } catch(InterruptedException e) {} + } while(oldModified>=file.lastModified()); } /** Returns the length in bytes of a file in the directory. */