diff --git oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java
index 6823174..fff125c 100644
--- oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java
+++ oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java
@@ -22,6 +22,7 @@ package org.apache.jackrabbit.oak.plugins.index.lucene.hybrid;
 import java.io.Closeable;
 import java.io.File;
 import java.io.IOException;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 
@@ -86,6 +87,7 @@ public class NRTIndex implements Closeable {
     private DirectoryReader dirReader;
     private boolean closed;
     private List<LuceneIndexReader> readers;
+    private List<DirectoryReader> openReaders = new LinkedList<>();
 
     public NRTIndex(IndexDefinition definition, IndexCopier indexCopier,
                     IndexUpdateListener refreshPolicy, @Nullable NRTIndex previous,
@@ -156,6 +158,7 @@ public class NRTIndex implements Closeable {
             //TODO Close call can possibly be speeded up by
             //avoiding merge and dropping stuff in memory. To be explored
             //indexWrite.close(waitForMerges)
+            closeOpenReaders();
             indexWriter.close();
             sizeHisto.update(dirSize(directory));
             directory.close();
@@ -188,6 +191,12 @@ public class NRTIndex implements Closeable {
         return indexDir;
     }
 
+    private void closeOpenReaders() throws IOException {
+        for (DirectoryReader reader : openReaders) {
+            reader.close();
+        }
+    }
+
     /**
      * If index was updated then a new reader would be returned otherwise
      * existing reader would be returned
@@ -207,11 +216,14 @@ public class NRTIndex implements Closeable {
             //stale result
             if (dirReader == null) {
                 result = DirectoryReader.open(indexWriter, false);
+                openReaders.add(result);
             } else {
                 DirectoryReader newReader = DirectoryReader.openIfChanged(dirReader, indexWriter, false);
                 if (newReader != null) {
                     result = newReader;
+                    openReaders.add(newReader);
                 }
+                //TODO Purge old readers
             }
             ctx.stop();
             return result;
diff --git oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java
index 06cd989..06d9bd0 100644
--- oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java
+++ oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java
@@ -341,7 +341,6 @@ public class HybridIndexTest extends AbstractQueryTest {
         assertQuery(query, of("/b", "/c"));
     }
 
-    @Ignore("OAK-6500")
     @Test
     public void noFileLeaks() throws Exception{
         nrtIndexFactory.setDirectoryFactory(new NRTDirectoryFactory() {
