Updated Branches:
  refs/heads/apache-blur-0.2 417f39251 -> ab41cc456

Making sure that the ref count can only be decremented once when the searcher 
is closing.  This may have been causing some weird already closed exceptions.


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

Branch: refs/heads/apache-blur-0.2
Commit: ab41cc45679b2626164a8d37ecd1799997d8fb5a
Parents: 417f392
Author: Aaron McCurry <[email protected]>
Authored: Tue Jan 14 06:06:43 2014 -0500
Committer: Aaron McCurry <[email protected]>
Committed: Tue Jan 14 06:06:43 2014 -0500

----------------------------------------------------------------------
 .../blur/manager/writer/BlurIndexSimpleWriter.java      | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/ab41cc45/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 296cb6e..0427195 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
@@ -152,14 +152,22 @@ public class BlurIndexSimpleWriter extends BlurIndex {
     final IndexReader indexReader = _indexReader.get();
     indexReader.incRef();
     return new IndexSearcherClosable(indexReader, _searchThreadPool) {
+
+      private boolean _closed;
+
       @Override
       public Directory getDirectory() {
         return _directory;
       }
 
       @Override
-      public void close() throws IOException {
-        indexReader.decRef();
+      public synchronized void close() throws IOException {
+        if (!_closed) {
+          indexReader.decRef();
+          _closed = true;
+        } else {
+          LOG.error("Searcher already closed [{0}].", new Throwable(), this);
+        }
       }
     };
   }

Reply via email to