Hi Martin, Martin Perez wrote:
1 - I don't know if it's very normal that a query return "version" nodes. If the spec. does not says something about this, then maybe we're looking at a possible improvement area.
versions of a node are part of the workspace where the regular nodes live in. that means you can use any facility that works for othere nodes as well, if applicable. e.g. versions of a node are observable and you may also query them.
Ok, and now. My frozen node has {http://www.jcp.org/jcr/nt/1.0}frozenNode as primaryTypeName attribute value (I'm putting this because maybe it could affect the xpath queries). So: 2 - //element(*,mix:content)[jcr:contains(.'phrase')] : This query returns two results. One of type mix:content and another one of type nt:frozenNode
because version are located in a well defined tree you may also exlcude them with a query that does not include he /jcr:system subtree:
/jcr:root/mycontent/element(*,mix:content)[jcr:contains(.,'phrase')]
3 - //element(*,mix:content)[jcr:contains(.'phrase') and @jcr:primaryType !='nt:frozenNode'] : This query returns 0 results.
this is a bug and is tracked with jira issue JCR-266. I've fixed it already. the svn revision is: 329776
4 - //element(*,mix:content)[jcr:contains(.'phrase') and @jcr:primaryType =='nt:frozenNode'] : And also very interesting; this query does not return anything. It hangs !!!
could you create a jira issue and attach a thread-dump when jackrabbit hangs. that will help a lot to fix this issue.
and just to avoid confusion. I assume the two typos in the query are just copy-paste mistakes, right?
what you really execute as query is the following, I assume: //element(*,mix:content)[jcr:contains(.,'phrase') and @jcr:primaryType = 'nt:frozenNode'] regards marcel