Hello,
I would like to execute xpath query on versioned node, but
QueryManager/Query interfaces do not seem to support relative xpath
query, which is puzzling me.
I tried to call the getPath() of a frozen node in order to get the
absolute path and then append my relative query, but the QueryManager
doesn't allow such xpath:
/jcr:system/jcr:versionStorage/fd/fe/06/fdfe0612-92ea-4e2f-94d7-cd81e5b5
91c3/jcr:rootVersion/jcr:frozenNode//tenant:_15/env:testEnv
The error trace below doesn't show what the problem might be with my
xpath. Is my xpath wrong syntactically? Or JCR/Jackrabbit doesn't allow
xpath-query on frozen node at all?
Any of your help would be really great!
Caused by: javax.jcr.query.InvalidQueryException: Parse error: data is
not a RelationQueryNode
at
org.apache.jackrabbit.spi.commons.query.xpath.XPathQueryBuilder.visit(XP
athQueryBuilder.java:508)
at
org.apache.jackrabbit.spi.commons.query.xpath.SimpleNode.jjtAccept(Simpl
eNode.java:81)
at
org.apache.jackrabbit.spi.commons.query.xpath.SimpleNode.childrenAccept(
SimpleNode.java:90)
at
org.apache.jackrabbit.spi.commons.query.xpath.XPathQueryBuilder.visit(XP
athQueryBuilder.java:559)
at
org.apache.jackrabbit.spi.commons.query.xpath.SimpleNode.jjtAccept(Simpl
eNode.java:81)
at
org.apache.jackrabbit.spi.commons.query.xpath.SimpleNode.childrenAccept(
SimpleNode.java:90)
at
org.apache.jackrabbit.spi.commons.query.xpath.XPathQueryBuilder.visit(XP
athQueryBuilder.java:559)
at
org.apache.jackrabbit.spi.commons.query.xpath.SimpleNode.jjtAccept(Simpl
eNode.java:81)
at
org.apache.jackrabbit.spi.commons.query.xpath.SimpleNode.childrenAccept(
SimpleNode.java:90)
at
org.apache.jackrabbit.spi.commons.query.xpath.XPathQueryBuilder.visit(XP
athQueryBuilder.java:559)
at
org.apache.jackrabbit.spi.commons.query.xpath.SimpleNode.jjtAccept(Simpl
eNode.java:81)
at
org.apache.jackrabbit.spi.commons.query.xpath.SimpleNode.childrenAccept(
SimpleNode.java:90)
at
org.apache.jackrabbit.spi.commons.query.xpath.XPathQueryBuilder.visit(XP
athQueryBuilder.java:559)
at
org.apache.jackrabbit.spi.commons.query.xpath.SimpleNode.jjtAccept(Simpl
eNode.java:81)
at
org.apache.jackrabbit.spi.commons.query.xpath.SimpleNode.childrenAccept(
SimpleNode.java:90)
at
org.apache.jackrabbit.spi.commons.query.xpath.XPathQueryBuilder.visit(XP
athQueryBuilder.java:559)
at
org.apache.jackrabbit.spi.commons.query.xpath.SimpleNode.jjtAccept(Simpl
eNode.java:81)
at
org.apache.jackrabbit.spi.commons.query.xpath.SimpleNode.childrenAccept(
SimpleNode.java:90)
at
org.apache.jackrabbit.spi.commons.query.xpath.XPathQueryBuilder.visit(XP
athQueryBuilder.java:559)
at
org.apache.jackrabbit.spi.commons.query.xpath.SimpleNode.jjtAccept(Simpl
eNode.java:81)
at
org.apache.jackrabbit.spi.commons.query.xpath.SimpleNode.childrenAccept(
SimpleNode.java:90)
at
org.apache.jackrabbit.spi.commons.query.xpath.XPathQueryBuilder.visit(XP
athQueryBuilder.java:559)
at
org.apache.jackrabbit.spi.commons.query.xpath.SimpleNode.jjtAccept(Simpl
eNode.java:81)
at
org.apache.jackrabbit.spi.commons.query.xpath.SimpleNode.childrenAccept(
SimpleNode.java:90)
at
org.apache.jackrabbit.spi.commons.query.xpath.XPathQueryBuilder.createPa
thQueryNode(XPathQueryBuilder.java:762)
at
org.apache.jackrabbit.spi.commons.query.xpath.XPathQueryBuilder.visit(XP
athQueryBuilder.java:373)
at
org.apache.jackrabbit.spi.commons.query.xpath.SimpleNode.jjtAccept(Simpl
eNode.java:81)
at
org.apache.jackrabbit.spi.commons.query.xpath.XPathQueryBuilder.<init>(X
PathQueryBuilder.java:298)
at
org.apache.jackrabbit.spi.commons.query.xpath.XPathQueryBuilder.createQu
ery(XPathQueryBuilder.java:332)
at
org.apache.jackrabbit.spi.commons.query.xpath.QueryBuilder.createQueryTr
ee(QueryBuilder.java:39)
at
org.apache.jackrabbit.spi.commons.query.QueryParser.parse(QueryParser.ja
va:57)
at
org.apache.jackrabbit.core.query.lucene.QueryImpl.<init>(QueryImpl.java:
95)
at
org.apache.jackrabbit.core.query.lucene.SearchIndex.createExecutableQuer
y(SearchIndex.java:668)
at
org.apache.jackrabbit.core.query.QueryImpl.init(QueryImpl.java:114)
at
org.apache.jackrabbit.core.SearchManager.createQuery(SearchManager.java:
250)
at
org.apache.jackrabbit.core.query.QueryManagerImpl$QueryFactoryImpl$2.cre
ateQuery(QueryManagerImpl.java:206)
at
org.apache.jackrabbit.core.query.CompoundQueryFactory.createQuery(Compou
ndQueryFactory.java:67)
at
org.apache.jackrabbit.core.query.QueryManagerImpl.createQuery(QueryManag
erImpl.java:98)
... 24 more
Regards,
Xuetao