You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by cu...@apache.org on 2003/10/21 20:24:23 UTC

cvs commit: jakarta-lucene/src/java/org/apache/lucene/index FilterIndexReader.java IndexReader.java SegmentReader.java SegmentsReader.java

cutting     2003/10/21 11:24:23

  Modified:    .        CHANGES.txt
               src/java/org/apache/lucene/index FilterIndexReader.java
                        IndexReader.java SegmentReader.java
                        SegmentsReader.java
  Log:
  Add IndexReader.undeleteAll().
  
  Revision  Changes    Path
  1.56      +4 -1      jakarta-lucene/CHANGES.txt
  
  Index: CHANGES.txt
  ===================================================================
  RCS file: /home/cvs/jakarta-lucene/CHANGES.txt,v
  retrieving revision 1.55
  retrieving revision 1.56
  diff -u -r1.55 -r1.56
  --- CHANGES.txt	21 Oct 2003 17:59:16 -0000	1.55
  +++ CHANGES.txt	21 Oct 2003 18:24:22 -0000	1.56
  @@ -52,6 +52,9 @@
       stop most OutOfMemoryExceptions by prefix, wildcard and fuzzy
       queries which run amok. (cutting)
   
  +13. Add new method: IndexReader.undeleteAll().  This undeletes all
  +    deleted documents which still remain in the index. (cutting)
  +
   
   1.3 RC1
   
  
  
  
  1.2       +1 -0      jakarta-lucene/src/java/org/apache/lucene/index/FilterIndexReader.java
  
  Index: FilterIndexReader.java
  ===================================================================
  RCS file: /home/cvs/jakarta-lucene/src/java/org/apache/lucene/index/FilterIndexReader.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FilterIndexReader.java	21 Oct 2003 17:59:16 -0000	1.1
  +++ FilterIndexReader.java	21 Oct 2003 18:24:23 -0000	1.2
  @@ -124,6 +124,7 @@
   
     public boolean isDeleted(int n) { return in.isDeleted(n); }
     public boolean hasDeletions() { return in.hasDeletions(); }
  +  public void undeleteAll() throws IOException { in.undeleteAll(); }
   
     public byte[] norms(String f) throws IOException { return in.norms(f); }
   
  
  
  
  1.22      +4 -1      jakarta-lucene/src/java/org/apache/lucene/index/IndexReader.java
  
  Index: IndexReader.java
  ===================================================================
  RCS file: /home/cvs/jakarta-lucene/src/java/org/apache/lucene/index/IndexReader.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- IndexReader.java	21 Oct 2003 17:59:16 -0000	1.21
  +++ IndexReader.java	21 Oct 2003 18:24:23 -0000	1.22
  @@ -318,6 +318,9 @@
       return n;
     }
   
  +  /** Undeletes all documents currently marked as deleted in this index.*/
  +  public abstract void undeleteAll() throws IOException;
  +
     /**
      * Closes files associated with this index.
      * Also saves any new deletions to disk.
  
  
  
  1.15      +18 -1     jakarta-lucene/src/java/org/apache/lucene/index/SegmentReader.java
  
  Index: SegmentReader.java
  ===================================================================
  RCS file: /home/cvs/jakarta-lucene/src/java/org/apache/lucene/index/SegmentReader.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- SegmentReader.java	21 Oct 2003 17:59:16 -0000	1.14
  +++ SegmentReader.java	21 Oct 2003 18:24:23 -0000	1.15
  @@ -185,6 +185,23 @@
       deletedDocs.set(docNum);
     }
   
  +  public void undeleteAll() throws IOException {
  +    synchronized (directory()) {		  // in- & inter-process sync
  +      new Lock.With(directory().makeLock(IndexWriter.COMMIT_LOCK_NAME),
  +                    IndexWriter.COMMIT_LOCK_TIMEOUT) {
  +        public Object doBody() throws IOException {
  +          if (directory().fileExists(segment + ".del")) {
  +            directory().deleteFile(segment + ".del");
  +          }
  +          return null;
  +        }
  +      };
  +      deletedDocs = null;
  +      deletedDocsDirty = false;
  +    }
  +  }
  +
  +
     final Vector files() throws IOException {
       Vector files = new Vector(16);
       final String ext[] = new String[] {
  
  
  
  1.14      +6 -1      jakarta-lucene/src/java/org/apache/lucene/index/SegmentsReader.java
  
  Index: SegmentsReader.java
  ===================================================================
  RCS file: /home/cvs/jakarta-lucene/src/java/org/apache/lucene/index/SegmentsReader.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- SegmentsReader.java	21 Oct 2003 17:59:16 -0000	1.13
  +++ SegmentsReader.java	21 Oct 2003 18:24:23 -0000	1.14
  @@ -125,6 +125,11 @@
       hasDeletions = true;
     }
   
  +  public void undeleteAll() throws IOException {
  +    for (int i = 0; i < readers.length; i++)
  +      readers[i].undeleteAll();
  +  }
  +
     private final int readerIndex(int n) {	  // find reader for doc n:
       int lo = 0;					  // search starts array
       int hi = readers.length - 1;                  // for first element less
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: lucene-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: lucene-dev-help@jakarta.apache.org