Hi Brian,

this is clearly a bug. however, your query will never return any results.

If you want to specify an absolute XPath it must always begin with /jcr:root otherwise you won't get any results. You may also write a relative XPath, which would be something like:

bcm/cal//element(*, caldav:resource)[EMAIL PROTECTED]:uid = '59BC120D-E909-4A56-A70D-8E97914E51A3']

and of course using:

//whatever

will also work because it includes /jcr:root

See spec section 6.6.4.3

Running a similar query with test data on my workspace returned the expected results when using an absolute path beginning with /jcr:root or when using a relative path.

I have not been able to reproduce a indefinite hang. even with the 'wrong' absolute query.

Could you please try to create a threaddump while jackrabbit seems to hang and post it to this list? thanks

I'll create a jira issue in the meantime and fix the UnsupportedOperationException asap.

regards
 marcel

Brian Moseley wrote:

well, i updated to the latest code, including the recent search changes, and things are even worse: the query seems to hang indefinitely, never returning.

for what's it worth, this query works as expected:

//element(*, caldav:resource)[EMAIL PROTECTED]:uid = '1']

Brian Moseley wrote:


is there anything wrong with the formulation of this xpath query statement?

/bcm/cal//element(*, caldav:resource)[EMAIL PROTECTED]:uid = '59BC120D-E909-4A56-A70D-8E97914E51A3']

i'm trying to find all nodes of type "caldav:resource" underneath (but not including) /bcm/cal where the "caldav:uid" property is the value given in the query.

when i execute the query, i get the below exception. looks like i'm not being successful in specifying a descendents-only query, but i can't imagine that's what's causing the exception...

thanks!

java.lang.UnsupportedOperationException
at org.apache.jackrabbit.core.query.lucene.CachingMultiReader$MultiTermDocs.skipTo(CachingMultiReader.java:281)
        at org.apache.lucene.search.TermScorer.skipTo(TermScorer.java:88)
at org.apache.lucene.search.ConjunctionScorer.doNext(ConjunctionScorer.java:53) at org.apache.lucene.search.ConjunctionScorer.next(ConjunctionScorer.java:48)
        at org.apache.lucene.search.Scorer.score(Scorer.java:37)
at org.apache.jackrabbit.core.query.lucene.ChildAxisQuery$ChildAxisScorer.calculateChildren(ChildAxisQuery.java:291) at org.apache.jackrabbit.core.query.lucene.ChildAxisQuery$ChildAxisScorer.next(ChildAxisQuery.java:251)
        at org.apache.lucene.search.Scorer.score(Scorer.java:37)
at org.apache.jackrabbit.core.query.lucene.DescendantSelfAxisQuery$DescendantSelfAxisScorer.calculateSubHits(DescendantSelfAxisQuery.java:302) at org.apache.jackrabbit.core.query.lucene.DescendantSelfAxisQuery$DescendantSelfAxisScorer.next(DescendantSelfAxisQuery.java:237)
        at org.apache.lucene.search.Scorer.score(Scorer.java:37)
at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:92)
        at org.apache.lucene.search.Hits.getMoreDocs(Hits.java:64)
        at org.apache.lucene.search.Hits.<init>(Hits.java:43)
        at org.apache.lucene.search.Searcher.search(Searcher.java:33)
        at org.apache.lucene.search.Searcher.search(Searcher.java:27)
at org.apache.jackrabbit.core.query.lucene.SearchIndex.executeQuery(SearchIndex.java:287) at org.apache.jackrabbit.core.query.lucene.QueryImpl.execute(QueryImpl.java:179) at org.apache.jackrabbit.core.query.QueryImpl.execute(QueryImpl.java:132)




Reply via email to