jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sebastian Lindstaedt <Sebastian.Lindsta...@vaberlin.de>
Subject AW: Resultless XPath Queries
Date Wed, 17 Jul 2013 13:40:14 GMT
Hi Julian,

Thank you very much, you were absolutely correct! The nodes where there.

Interestingly the code that I'm dealing with has plenty of such places where it relies on
the described behavior.

<code>
result.getNodes().getSize() >= 1
</code>

Checking the different Versions of RangeIterator (http://grepcode.com/file/repo1.maven.org/maven2/javax.jcr/jcr/1.0/javax/jcr/RangeIterator.java/)
I'm wondering how that worked over the course of years. Maybe the Implementation of RangeIterator
in the old Jackrabbit Version (1.5) did always knew how many nodes it contained :-)


Best regards, 

Sebastian

-----Urspr√ľngliche Nachricht-----
Von: Julian Reschke [mailto:julian.reschke@gmx.de] 
Gesendet: Mittwoch, 17. Juli 2013 14:09
An: users@jackrabbit.apache.org
Cc: Sebastian Lindstaedt
Betreff: Re: Resultless XPath Queries

On 2013-07-17 13:47, Sebastian Lindstaedt wrote:
> Hi,
>
> I'm migrating an Jackrabbit Application from JBoss EAP 5 to JBoss EAP 6 (aka. JBoss 7.1.3.Final-redheat-4).
> The Migration of Jackrabbit (from 1.5-jca to 2.5.3-jca) causes a bit of trouble with
XPath Queries.
>
> To get jackrabbit-jca-2.5.3.rar running in the JBoss I modified it, as 
> shown here 
> (https://community.jboss.org/wiki/JackrabbitDeploymentInAS6AndAS7) and 
> here (http://www.javaworld.com/community/node/8185)
>
> After Deployment JBoss starts and the repository gets created.
>
> In my EJB Application I inject the repository as a Resource <code>
>     Class MySessionBean ...{
>       ...
>      @Resource(mappedName = "java:jboss/jca/DocumentStore", type = javax.jcr.Repository.class,
authenticationType = javax.annotation.Resource.AuthenticationType.CONTAINER)
>      Repository                  repo;
>      ...
>      }
> </code>
>
> With this injected Repository I can:
> - create nodes:
>      <code>
>      Node node = rootNode.addNode("test", "nt:unstructured");
>      </code>
>
> - list existing nodes:
>      <code>
>      session.getRootNode().getNodes();
>      </code>
>
> - run JCR-SQL2 Queries, showing plenty of nodes
>      <code>
>      "SELECT * FROM [nt:unstructured]"
>      </code>
>
> But unfortunately any XPath Query returns without any result
> Query: "//*"  Result: queryresult.size = -1
> Query: "//*[jcr:contains(., '*')]" Result: queryresult.size = -1

Result size -1 means "unknown", not empty. You'll need to iterate through the result set...

Best regards, Julian

--
This email was Virus checked by Astaro Security Gateway. http://www.astaro.com
Mime
View raw message