Index: src/java/org/apache/lucene/index/IndexWriter.java =================================================================== RCS file: /home/cvspublic/jakarta-lucene/src/java/org/apache/lucene/index/IndexW riter.java,v retrieving revision 1.16 diff -u -r1.16 IndexWriter.java --- src/java/org/apache/lucene/index/IndexWriter.java 25 Sep 2003 22:01:51 -00 00 1.16 +++ src/java/org/apache/lucene/index/IndexWriter.java 6 Oct 2003 05:19:47 -000 0 @@ -296,7 +296,8 @@ segmentInfos.info(0).dir != directory))) { int minSegment = segmentInfos.size() - mergeFactor; mergeSegments(minSegment < 0 ? 0 : minSegment); - } + } + directory.touchFile("segments"); } /** Merges all segments from an array of indexes into this index. Index: src/java/org/apache/lucene/store/FSDirectory.java =================================================================== RCS file: /home/cvspublic/jakarta-lucene/src/java/org/apache/lucene/store/FSDire ctory.java,v retrieving revision 1.21 diff -u -r1.21 FSDirectory.java --- src/java/org/apache/lucene/store/FSDirectory.java 25 Sep 2003 21:50:11 -00 00 1.21 +++ src/java/org/apache/lucene/store/FSDirectory.java 6 Oct 2003 05:19:47 -000 0 @@ -205,7 +205,10 @@ /** Set the modified time of an existing file to now. */ public void touchFile(String name) throws IOException { File file = new File(directory, name); - file.setLastModified(System.currentTimeMillis()); + long oldModified = file.lastModified(); + long now = System.currentTimeMillis(); + long latest = oldModified > now ? oldModified : now; + file.setLastModified(latest + 1500); } /** Returns the length in bytes of a file in the directory. */