You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@lucene.apache.org by mi...@apache.org on 2008/07/22 13:14:37 UTC

svn commit: r678716 - in /lucene/java/trunk/src/java/org/apache/lucene/index: IndexReader.java SegmentReader.java

Author: mikemccand
Date: Tue Jul 22 04:14:36 2008
New Revision: 678716

URL: http://svn.apache.org/viewvc?rev=678716&view=rev
Log:
LUCENE-1339: make IndexReader incRef and decRef expert public methods

Modified:
    lucene/java/trunk/src/java/org/apache/lucene/index/IndexReader.java
    lucene/java/trunk/src/java/org/apache/lucene/index/SegmentReader.java

Modified: lucene/java/trunk/src/java/org/apache/lucene/index/IndexReader.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/IndexReader.java?rev=678716&r1=678715&r2=678716&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/index/IndexReader.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/index/IndexReader.java Tue Jul 22 04:14:36 2008
@@ -102,23 +102,38 @@
   }
   
   /**
-   * Increments the refCount of this IndexReader instance. RefCounts are used to determine
-   * when a reader can be closed safely, i. e. as soon as no other IndexReader is referencing
-   * it anymore.
+   * Expert: increments the refCount of this IndexReader
+   * instance.  RefCounts are used to determine when a
+   * reader can be closed safely, i.e. as soon as there are
+   * no more references.  Be sure to always call a
+   * corresponding {@link #decRef}, in a finally clause;
+   * otherwise the reader may never be closed.  Note that
+   * {@link #close} simply calls decRef(), which means that
+   * the IndexReader will not really be closed until {@link
+   * #decRef} has been called for all outstanding
+   * references.
+   *
+   * @see #decRef
    */
-  protected synchronized void incRef() {
+  public synchronized void incRef() {
     assert refCount > 0;
+    ensureOpen();
     refCount++;
   }
 
   /**
-   * Decreases the refCount of this IndexReader instance. If the refCount drops
-   * to 0, then pending changes are committed to the index and this reader is closed.
+   * Expert: decreases the refCount of this IndexReader
+   * instance.  If the refCount drops to 0, then pending
+   * changes (if any) are committed to the index and this
+   * reader is closed.
    * 
    * @throws IOException in case an IOException occurs in commit() or doClose()
+   *
+   * @see #incRef
    */
-  protected synchronized void decRef() throws IOException {
+  public synchronized void decRef() throws IOException {
     assert refCount > 0;
+    ensureOpen();
     if (refCount == 1) {
       commit();
       doClose();

Modified: lucene/java/trunk/src/java/org/apache/lucene/index/SegmentReader.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/SegmentReader.java?rev=678716&r1=678715&r2=678716&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/index/SegmentReader.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/index/SegmentReader.java Tue Jul 22 04:14:36 2008
@@ -138,7 +138,7 @@
    * Increments the RC of this reader, as well as
    * of all norms this reader is using
    */
-  protected synchronized void incRef() {
+  public synchronized void incRef() {
     super.incRef();
     Iterator it = norms.values().iterator();
     while (it.hasNext()) {
@@ -157,7 +157,7 @@
     super.incRef();
   }
 
-  protected synchronized void decRef() throws IOException {
+  public synchronized void decRef() throws IOException {
     super.decRef();
     Iterator it = norms.values().iterator();
     while (it.hasNext()) {