Sorry, I tried many times and find that it's not the 6M DOC file cause this problem. This problem happens again and again after I save the TXT file, even just after the repository initialization. The problem didn't show any more when I rename the TXT file to JS extension or other extension. I cannot believe that I'm the only person reach this problem, can anyone help? Thanks anyway.
---------- Forwarded message ---------- From: 文刚顾 <[email protected]> Date: 2010/1/9 Subject: Unable to commit volatile index To: [email protected] Hello! I'm using JackRabbit 1.6. My project works well when I save small documents into then repository. Last time when I save a small TXT file after a 6M DOC file, I got the following exceptions. 2010-1-9 18:20:05[ERROR](MultiIndex.java:1174) Unable to commit volatile index java.io.IOException at org.apache.jackrabbit.core.query.lucene.Util.createIOException(Util.java:114) at org.apache.jackrabbit.core.query.lucene.AbstractIndex.addDocuments(AbstractIndex.java:199) at org.apache.jackrabbit.core.query.lucene.VolatileIndex.commitPending(VolatileIndex.java:171) at org.apache.jackrabbit.core.query.lucene.VolatileIndex.commit(VolatileIndex.java:140) at org.apache.jackrabbit.core.query.lucene.PersistentIndex.copyIndex(PersistentIndex.java:105) at org.apache.jackrabbit.core.query.lucene.MultiIndex$VolatileCommit.execute(MultiIndex.java:1984) at org.apache.jackrabbit.core.query.lucene.MultiIndex.executeAndLog(MultiIndex.java:1000) at org.apache.jackrabbit.core.query.lucene.MultiIndex.commitVolatileIndex(MultiIndex.java:1048) at org.apache.jackrabbit.core.query.lucene.MultiIndex.flush(MultiIndex.java:893) at org.apache.jackrabbit.core.query.lucene.MultiIndex.checkFlush(MultiIndex.java:1164) at org.apache.jackrabbit.core.query.lucene.MultiIndex.access$100(MultiIndex.java:80) at org.apache.jackrabbit.core.query.lucene.MultiIndex$1.run(MultiIndex.java:317) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462) Caused by: java.lang.NullPointerException at org.apache.jackrabbit.core.value.BLOBInTempFile.delete(BLOBInTempFile.java:110) at org.apache.jackrabbit.core.value.BLOBInTempFile.discard(BLOBInTempFile.java:120) at org.apache.jackrabbit.core.query.lucene.TextFilterExtractor$1.close(TextFilterExtractor.java:112) at org.apache.jackrabbit.core.query.lucene.TextExtractorJob.discard(TextExtractorJob.java:151) at org.apache.jackrabbit.core.query.lucene.TextExtractorReader.close(TextExtractorReader.java:90) at org.apache.commons.io.IOUtils.closeQuietly(IOUtils.java:142) at org.apache.jackrabbit.core.query.lucene.LazyTextExtractorField.stringValue(LazyTextExtractorField.java:98) at org.apache.lucene.index.DocInverterPerField.processFields(DocInverterPerField.java:109) at org.apache.lucene.index.DocFieldConsumersPerField.processFields(DocFieldConsumersPerField.java:36) at org.apache.lucene.index.DocFieldProcessorPerThread.processDocument(DocFieldProcessorPerThread.java:234) at org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:765) at org.apache.lucene.index.DocumentsWriter.addDocument(DocumentsWriter.java:743) at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1917) at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1895) at org.apache.jackrabbit.core.query.lucene.AbstractIndex$1.call(AbstractIndex.java:183) at org.apache.jackrabbit.core.query.lucene.DynamicPooledExecutor.executeAndWait(DynamicPooledExecutor.java:96) at org.apache.jackrabbit.core.query.lucene.AbstractIndex.addDocuments(AbstractIndex.java:188) ... 12 more 2010-1-9 18:20:05[ WARN](LazyTextExtractorField.java:94) Exception reading value for field: Stream closed 2010-1-9 18:20:05[ERROR](MultiIndex.java:1174) Unable to commit volatile index java.io.IOException at org.apache.jackrabbit.core.query.lucene.Util.createIOException(Util.java:114) at org.apache.jackrabbit.core.query.lucene.AbstractIndex.addDocuments(AbstractIndex.java:199) at org.apache.jackrabbit.core.query.lucene.VolatileIndex.commitPending(VolatileIndex.java:171) at org.apache.jackrabbit.core.query.lucene.VolatileIndex.commit(VolatileIndex.java:140) at org.apache.jackrabbit.core.query.lucene.PersistentIndex.copyIndex(PersistentIndex.java:105) at org.apache.jackrabbit.core.query.lucene.MultiIndex$VolatileCommit.execute(MultiIndex.java:1984) at org.apache.jackrabbit.core.query.lucene.MultiIndex.executeAndLog(MultiIndex.java:1000) at org.apache.jackrabbit.core.query.lucene.MultiIndex.commitVolatileIndex(MultiIndex.java:1048) at org.apache.jackrabbit.core.query.lucene.MultiIndex.flush(MultiIndex.java:893) at org.apache.jackrabbit.core.query.lucene.MultiIndex.checkFlush(MultiIndex.java:1164) at org.apache.jackrabbit.core.query.lucene.MultiIndex.access$100(MultiIndex.java:80) at org.apache.jackrabbit.core.query.lucene.MultiIndex$1.run(MultiIndex.java:317) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462) Caused by: java.lang.NullPointerException at org.apache.jackrabbit.core.value.BLOBInTempFile.delete(BLOBInTempFile.java:110) at org.apache.jackrabbit.core.value.BLOBInTempFile.discard(BLOBInTempFile.java:120) at org.apache.jackrabbit.core.query.lucene.TextFilterExtractor$1.close(TextFilterExtractor.java:112) at org.apache.jackrabbit.core.query.lucene.TextExtractorReader.close(TextExtractorReader.java:87) at org.apache.commons.io.IOUtils.closeQuietly(IOUtils.java:142) at org.apache.jackrabbit.core.query.lucene.LazyTextExtractorField.stringValue(LazyTextExtractorField.java:98) at org.apache.lucene.index.DocInverterPerField.processFields(DocInverterPerField.java:109) at org.apache.lucene.index.DocFieldConsumersPerField.processFields(DocFieldConsumersPerField.java:36) at org.apache.lucene.index.DocFieldProcessorPerThread.processDocument(DocFieldProcessorPerThread.java:234) at org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:765) at org.apache.lucene.index.DocumentsWriter.addDocument(DocumentsWriter.java:743) at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1917) at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1895) at org.apache.jackrabbit.core.query.lucene.AbstractIndex$1.call(AbstractIndex.java:183) at org.apache.jackrabbit.core.query.lucene.DynamicPooledExecutor.executeAndWait(DynamicPooledExecutor.java:96) at org.apache.jackrabbit.core.query.lucene.AbstractIndex.addDocuments(AbstractIndex.java:188) ... 12 more 2010-1-9 18:20:06[ WARN](LazyTextExtractorField.java:94) Exception reading value for field: Stream close Several lines before, there is a log INFO line like this, 2010-1-9 18:19:54[ INFO](MultiIndex.java:1210) updating index with 1 nodes from indexing queue. I‘m wandering if it is caused by the indexing mechanism. I knew that JackRabbit is not thread-safe, but how can I do the concurrency control? In my case, the node.save function returned without indicating the indexing still processing, how can I avoid these collision? Anyone can help?
