关闭directoryReader时如何修复“句柄无效”?

时间:2019-07-18 12:32:43

标签: java lucene

我正在使用Lucene 4.8.0,并且我有一个无法关闭的DirectoryReader。当我尝试时,出现以下错误:

  

原因:java.lang.RuntimeException:java.io.IOException:句柄无效                   在apache.lucene.util.IOUtils.reThrowUnchecked(IOUtils.java:368)                   在apache.lucene.index.SegmentCoreReaders.notifyCoreClosedListeners(SegmentCoreReaders.java:203)                   在apache.lucene.index.SegmentCoreReaders.decRef(SegmentCoreReaders.java:183)                   在apache.lucene.index.SegmentReader.doClose(SegmentReader.java:258)                   在apache.lucene.index.IndexReader.decRef(IndexReader.java:243)                   在apache.lucene.index.StandardDirectoryReader.doClose(StandardDirectoryReader.java:364)                   在apache.lucene.index.IndexReader.decRef(IndexReader.java:243)                   在apache.lucene.index.IndexReader.close(IndexReader.java:479)

我的代码如下:

FSDirectory indexDir = null;
DirectoryReader dirReader = null
try{
indexDir = new SimpleFSDirectory(new File(baseDir + "/index"),null);
dirReader = DirectoryReader.open(indexDir);

//operations

finally {
if (dirReader != null) {
    dirReader.close();
}
if (indexDir != null) {
    indexDir.close();
}
}

但是这在dirReader.close()处崩溃。我是Lucene的新手,如果我错过了一些众所周知或显而易见的事情,我感到抱歉。

0 个答案:

没有答案