You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by ot...@apache.org on 2003/09/16 14:52:10 UTC

cvs commit: jakarta-lucene/src/java/org/apache/lucene/search QueryFilter.java

otis        2003/09/16 05:52:10

  Modified:    src/java/org/apache/lucene/search QueryFilter.java
  Log:
  - Fixed bug 20290
    http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20290
  - Added @version.
  
  Revision  Changes    Path
  1.4       +7 -2      jakarta-lucene/src/java/org/apache/lucene/search/QueryFilter.java
  
  Index: QueryFilter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-lucene/src/java/org/apache/lucene/search/QueryFilter.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- QueryFilter.java	13 Sep 2003 23:40:29 -0000	1.3
  +++ QueryFilter.java	16 Sep 2003 12:52:10 -0000	1.4
  @@ -68,10 +68,12 @@
    * QueryFilter that matches, e.g., only documents modified within the last
    * week.  The QueryFilter and RangeQuery would only need to be reconstructed
    * once per day.
  + *
  + * @version $Id$
    */
   public class QueryFilter extends Filter {
     private Query query;
  -  private transient WeakHashMap cache = new WeakHashMap();
  +  private transient WeakHashMap cache = null;
   
     /** Constructs a filter which only matches documents matching
      * <code>query</code>.
  @@ -82,6 +84,10 @@
   
     public BitSet bits(IndexReader reader) throws IOException {
   
  +    if (cache == null) {
  +      cache = new WeakHashMap();
  +    }
  +
       synchronized (cache) {  // check cache
         BitSet cached = (BitSet) cache.get(reader);
         if (cached != null) {
  @@ -96,7 +102,6 @@
           bits.set(doc);  // set bit for hit
         }
       });
  -
   
       synchronized (cache) {  // update cache
         cache.put(reader, bits);