Fixing a bug in the index closer. It would always close a reader reguardless if 
the reading was ready to be closer or not.


Project: http://git-wip-us.apache.org/repos/asf/incubator-blur/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-blur/commit/cfa3a070
Tree: http://git-wip-us.apache.org/repos/asf/incubator-blur/tree/cfa3a070
Diff: http://git-wip-us.apache.org/repos/asf/incubator-blur/diff/cfa3a070

Branch: refs/heads/apache-blur-0.2
Commit: cfa3a070fc68bc7a188c8c533cbc3b478beced1e
Parents: 41e44e8
Author: Aaron McCurry <[email protected]>
Authored: Thu Feb 6 07:56:58 2014 -0500
Committer: Aaron McCurry <[email protected]>
Committed: Thu Feb 6 07:56:58 2014 -0500

----------------------------------------------------------------------
 .../java/org/apache/blur/manager/writer/BlurIndexCloser.java    | 5 ++++-
 .../org/apache/blur/manager/writer/BlurIndexSimpleWriter.java   | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/cfa3a070/blur-core/src/main/java/org/apache/blur/manager/writer/BlurIndexCloser.java
----------------------------------------------------------------------
diff --git 
a/blur-core/src/main/java/org/apache/blur/manager/writer/BlurIndexCloser.java 
b/blur-core/src/main/java/org/apache/blur/manager/writer/BlurIndexCloser.java
index b31838d..f3aa777 100644
--- 
a/blur-core/src/main/java/org/apache/blur/manager/writer/BlurIndexCloser.java
+++ 
b/blur-core/src/main/java/org/apache/blur/manager/writer/BlurIndexCloser.java
@@ -86,11 +86,14 @@ public class BlurIndexCloser implements Runnable, Closeable 
{
       } else {
         LOG.debug("Could not close indexreader [" + reader + "] because of ref 
count [" + reader.getRefCount() + "].");
       }
-      closeInternal(reader);
     }
   }
 
   private void closeInternal(final IndexReader reader) {
+    if (reader.getRefCount() == 0) {
+      // Already closed.
+      return;
+    }
     executorService.submit(new Runnable() {
       @Override
       public void run() {

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/cfa3a070/blur-core/src/main/java/org/apache/blur/manager/writer/BlurIndexSimpleWriter.java
----------------------------------------------------------------------
diff --git 
a/blur-core/src/main/java/org/apache/blur/manager/writer/BlurIndexSimpleWriter.java
 
b/blur-core/src/main/java/org/apache/blur/manager/writer/BlurIndexSimpleWriter.java
index 3804f1a..26ecb34 100644
--- 
a/blur-core/src/main/java/org/apache/blur/manager/writer/BlurIndexSimpleWriter.java
+++ 
b/blur-core/src/main/java/org/apache/blur/manager/writer/BlurIndexSimpleWriter.java
@@ -72,7 +72,7 @@ public class BlurIndexSimpleWriter extends BlurIndex {
   private final Lock _writeLock = _lock.writeLock();
   private final ReadWriteLock _indexRefreshLock = new ReentrantReadWriteLock();
   private final Lock _indexRefreshWriteLock = _indexRefreshLock.writeLock();
-  private final Lock _indexRefreshReadLock = _indexRefreshLock.writeLock();
+  private final Lock _indexRefreshReadLock = _indexRefreshLock.readLock();
   private Thread _optimizeThread;
   private Thread _writerOpener;
   private final IndexDeletionPolicyReader _policy;

Reply via email to