You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Grégory OLIVER (JIRA)" <ji...@apache.org> on 2013/03/15 09:18:14 UTC

[jira] [Updated] (JCR-3458) Remote SPI connection getNodes() throw NoSuchElementException

     [ https://issues.apache.org/jira/browse/JCR-3458?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Grégory OLIVER updated JCR-3458:
--------------------------------

    Fix Version/s: 2.4.4
    
> Remote SPI connection getNodes() throw NoSuchElementException
> -------------------------------------------------------------
>
>                 Key: JCR-3458
>                 URL: https://issues.apache.org/jira/browse/JCR-3458
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-jcr2spi
>    Affects Versions: 2.4.3
>         Environment: Linux
>            Reporter: Grégory OLIVER
>             Fix For: 2.4.4
>
>
> With the remote spi connection, it seems that the inner/outer join doesn't work with the result.getNodes() function.
> My code : 
> Repository repository = JcrUtils.getRepository(jcrUrl); 
> Session session = repository.login( new SimpleCredentials("admin", "admin".toCharArray()));
> String expression = ...;
> QueryManager queryMgr = session.getWorkspace().getQueryManager();
> Query query = queryMgr.createQuery(expression,Query.JCR_SQL2);
> QueryResult result = query.execute();
> Node node = result.getNodes().nextNode();
> Query1 :
> select node.* from [nt:unstructured] as node
> Return one element.
> Query2 :
> select node.* from [nt:unstructured] as node
> left outer join [nt:file] as file on ischildnode(file, node)
> left outer join [nt:resource] as filecontent on ischildnode(filecontent, file) 
> Doesn't return any element :
> java.util.NoSuchElementException
>     at org.apache.jackrabbit.jcr2spi.query.NodeIteratorImpl.nextNode(NodeIteratorImpl.java:110)
> The second query should return at least one element due to left outer join.
> A solution is to use ( work with both query )
> Node node = result.getRows().nextRow().getNode("node");

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira