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)