Hibernate搜索程序错误仅在第二次编译时出错

时间:2016-10-17 07:04:59

标签: java hibernate hibernate-search

如果我第一次运行这个hibernate搜索程序它正常工作,而如果我第二次编译它会产生错误:

   ERROR: HSEARCH000058: Exception occurred org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@D:\data\index\com.srccodes.example.hibernate.Contact\write.lock
    Primary Failure:
        Entity com.srccodes.example.hibernate.Contact  Id null  Work Type  org.hibernate.search.backend.PurgeAllLuceneWork

    org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@D:\data\index\com.srccodes.example.hibernate.Contact\write.lock
        at org.apache.lucene.store.Lock.obtain(Lock.java:84)
        at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:1108)
        at org.hibernate.search.backend.impl.lucene.IndexWriterHolder.createNewIndexWriter(IndexWriterHolder.java:127)
        at org.hibernate.search.backend.impl.lucene.IndexWriterHolder.getIndexWriter(IndexWriterHolder.java:102)
        at org.hibernate.search.backend.impl.lucene.AbstractWorkspaceImpl.getIndexWriter(AbstractWorkspaceImpl.java:119)
        at org.hibernate.search.backend.impl.lucene.LuceneBackendQueueTask.applyUpdates(LuceneBackendQueueTask.java:99)
        at org.hibernate.search.backend.impl.lucene.LuceneBackendQueueTask.run(LuceneBackendQueueTask.java:67)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

1 个答案:

答案 0 :(得分:0)

如果您的Hibernate Search应用程序的第一个实例仍在运行(在任何操作系统上),您将收到此类错误。

此外,如果您正在运行Windows,如果没有正确关闭第一个实例,也可能会出现此错误。

请记住,正确关闭任何Hibernate应用程序需要您在Hibernate SessionFactory上调用“close()”方法,或者如果您使用JPA,则必须关闭{{1 }}

相关问题