Index: src/test/java/org/apache/jackrabbit/core/query/SQL2NodeLocalNameTest.java =================================================================== --- src/test/java/org/apache/jackrabbit/core/query/SQL2NodeLocalNameTest.java (revision 1428352) +++ src/test/java/org/apache/jackrabbit/core/query/SQL2NodeLocalNameTest.java (working copy) @@ -22,7 +22,7 @@ /** * Test case for Node LocalName queries with JCR_SQL2 - * + * * Inspired by JCR-2956 */ @@ -118,4 +118,22 @@ executeSQL2Query("SELECT * FROM [nt:base] as NODE WHERE LOWER(name(NODE)) like 'sql2nodelocalnametest%'"), 2); } + + /** + * test for JCR-3398 + */ + public void testLowerLocalNameOrContains() throws Exception { + checkResult( + executeSQL2Query("SELECT * FROM [nt:base] as NODE WHERE LOWER(localname(NODE)) like 'sql2nodelocalnametest%' OR contains(NODE.*, 'sql2nodelocalnametest')"), + 2); + } + + /** + * test for JCR-3398 + */ + public void testUpperLocalNameOrContains() throws Exception { + checkResult( + executeSQL2Query("SELECT * FROM [nt:base] as NODE WHERE UPPER(localname(NODE)) like 'SQL2NODELOCALNAMETEST%' OR contains(NODE.*, 'SQL2NODELOCALNAMETEST')"), + 2); + } } Index: src/main/java/org/apache/jackrabbit/core/query/lucene/LuceneQueryFactory.java =================================================================== --- src/main/java/org/apache/jackrabbit/core/query/lucene/LuceneQueryFactory.java (revision 1428352) +++ src/main/java/org/apache/jackrabbit/core/query/lucene/LuceneQueryFactory.java (working copy) @@ -669,9 +669,7 @@ protected Query getNodeLocalNameQuery(int transform, String operator, StaticOperand right) throws RepositoryException { - if (transform != TRANSFORM_NONE - || (!JCR_OPERATOR_EQUAL_TO.equals(operator) && !JCR_OPERATOR_LIKE - .equals(operator))) { + if (!JCR_OPERATOR_EQUAL_TO.equals(operator) && !JCR_OPERATOR_LIKE.equals(operator)) { throw new UnsupportedRepositoryOperationException(); } String name = evaluator.getValue(right).getString();