Pergunta
Estou vendo o seguinte erro ao tentar pesquisar usando o Lucene. (Versão 1.4.3). Alguma idéia de por que eu poderia estar vendo isso e como consertá -lo?
Caused by: java.io.IOException: read past EOF
at org.apache.lucene.store.InputStream.refill(InputStream.java:154)
at org.apache.lucene.store.InputStream.readByte(InputStream.java:43)
at org.apache.lucene.store.InputStream.readVInt(InputStream.java:83)
at org.apache.lucene.index.FieldInfos.read(FieldInfos.java:195)
at org.apache.lucene.index.FieldInfos.<init>(FieldInfos.java:55)
at org.apache.lucene.index.SegmentReader.initialize(SegmentReader.java:109)
at org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:89)
at org.apache.lucene.index.IndexReader$1.doBody(IndexReader.java:118)
at org.apache.lucene.store.Lock$With.run(Lock.java:109)
at org.apache.lucene.index.IndexReader.open(IndexReader.java:111)
at org.apache.lucene.index.IndexReader.open(IndexReader.java:106)
at org.apache.lucene.search.IndexSearcher.<init>(IndexSearcher.java:43)
Nesse mesmo ambiente, também vejo o seguinte erro:
Caused by: java.io.IOException: Lock obtain timed out:
Lock@/tmp/lucene-3ec31395c8e06a56e2939f1fdda16c67-write.lock
at org.apache.lucene.store.Lock.obtain(Lock.java:58)
at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:223)
at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:213)
O mesmo código funciona em um ambiente de teste, mas não em produção. Não é possível identificar diferenças óbvias entre os dois ambientes.
Solução
As permissões de arquivo estão erradas (precisa de permissão de gravação) ou não podem acessar um arquivo bloqueado que o processo atual precisa.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow