jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Frédéric Esnault <f...@legisway.com>
Subject SQL request parse error
Date Wed, 20 Jun 2007 11:38:46 GMT
Hi all,


I encountered a problem working with a SQL request :


SELECT lgw:contractorType.lgw:title FROM lgw:contractorType, lgw:contractType 

WHERE lgw:contractType.jcr:uuid= 'b744b41b-8425-4008-99a6-ce8456d87c4e' 

AND lgw:contractorType.jcr:uuid=lgw:contractType.lgw:internalContractor


After debug, here is the analysis. The error is : javax.jcr.query.InvalidQueryException

But actually, the error is a NullPointerException.


The problem comes from the join.

During the AndExpression evaluation, it evaluates the two AndOperands. The first one is :


lgw:contractType.jcr:uuid= 'b744b41b-8425-4008-99a6-ce8456d87c4e'


and everything goes fine. The second one is :




and there it fails because during the evaluation,it calls createRelationQueryNode in JCRSQLQueryBuilder
and in the first case, no problem, but in the second case it fails because the first thing
done in this method is : String stringValue = literal.getValue();


But in the second case, there is no literal value, it deals with an Identifier instead of
a literal, but it seems to try and evaluate  it as a literal. And as it's not a literal, the
ASTLiteral[] value element is not filled, so it's null. Then, value[0].getValue() raises the


Is it a bug? Or is join not implemented? There is a getIdentifier (SimpleNode node) method
in the anonymous DefaultParserVisitor class defined in the visit(ASTPredicate node, Object
data) of JCRSQLQueryBuilder, but cannot step into it.


Frederic Esnault

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message