[ https://issues.apache.org/jira/browse/JCR-778?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12490717 ]
Michael Neale commented on JCR-778: ----------------------------------- OK looking a little deeper, the problem stems from: public Lock makeLock(final String name) { final File lockFile = new File(directory, name); return new Lock() { public boolean obtain() throws IOException { if (DISABLE_LOCKS) { return true; } return lockFile.createNewFile(); } In FSDirectory in jackrabbit core. IT seems that it is using an empty file as a lock, yet when you look at JRE source for createNewFile, it EXPLICITLY says not to use this for file locking: * Note: this method should <i>not</i> be used for file-locking, as * the resulting protocol cannot be made to work reliably. The * [EMAIL PROTECTED] java.nio.channels.FileLock FileLock} * facility should be used instead. So this is a problem I believe. > Error on query initialization - intermittent > -------------------------------------------- > > Key: JCR-778 > URL: https://issues.apache.org/jira/browse/JCR-778 > Project: Jackrabbit > Issue Type: Bug > Components: indexing > Affects Versions: 1.1, 1.2.2 > Environment: Linux Fedora Core 5, ext2 filesystem, Java 1.5 (Sun) > Reporter: Michael Neale > > About 1 in ten times, I get the error as shown in the stack trace below. This > happens when I run test, or when I start the app. The only way to resolve > (when testing) seems to be to blow away the repository. > It always happens at the point the query manager is accessed (triggering the > query subsystem to start up). It DOES NOT cause an exception to be thrown > back to the caller, I just noticed it in the logs. Basically the queries > return NO data at all (and show up as test failures of course). > In each case when I startup the system/test, if the repository exists I use > it, and (for tests) clean it by deleting the root node of the user content, > and then starting again, otherwise there is nothing that exciting. > Please let me know if more info is needed. > ERROR 05-03 15:54:39,386 (LazyQueryResultImpl.java:getResults:266) > -Exception while executing query: > java.io.IOException : No such file or directory > at java.io.UnixFileSystem.createFileExclusively(Native Method) > at java.io.File.createNewFile(File.java:850) > at org.apache.jackrabbit.core.query.lucene.FSDirectory$1.obtain( > FSDirectory.java:119) > at org.apache.lucene.store.Lock.obtain(Lock.java:51) > at org.apache.lucene.store.Lock$With.run(Lock.java:98) > at org.apache.lucene.index.IndexReader.open(IndexReader.java:141) > at org.apache.lucene.index.IndexReader.open(IndexReader.java:136) > at > org.apache.jackrabbit.core.query.lucene.AbstractIndex.getReadOnlyIndexReader(AbstractIndex.java:191) > at org.apache.jackrabbit.core.query.lucene.MultiIndex.getIndexReader > (MultiIndex.java:616) > at > org.apache.jackrabbit.core.query.lucene.SearchIndex.executeQuery(SearchIndex.java:384) > at > org.apache.jackrabbit.core.query.lucene.LazyQueryResultImpl.executeQuery(LazyQueryResultImpl.java > :204) > at > org.apache.jackrabbit.core.query.lucene.LazyQueryResultImpl.getResults(LazyQueryResultImpl.java:244) > at > org.apache.jackrabbit.core.query.lucene.LazyQueryResultImpl.<init>(LazyQueryResultImpl.java > :161) > at > org.apache.jackrabbit.core.query.lucene.QueryImpl.execute(QueryImpl.java:164) > at org.apache.jackrabbit.core.query.QueryImpl.execute(QueryImpl.java:142) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.