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.resc...@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

Reply via email to