Return-Path: X-Original-To: apmail-jackrabbit-oak-commits-archive@minotaur.apache.org Delivered-To: apmail-jackrabbit-oak-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 6CA2EE082 for ; Mon, 7 Jan 2013 16:30:40 +0000 (UTC) Received: (qmail 11766 invoked by uid 500); 7 Jan 2013 16:30:40 -0000 Delivered-To: apmail-jackrabbit-oak-commits-archive@jackrabbit.apache.org Received: (qmail 11745 invoked by uid 500); 7 Jan 2013 16:30:40 -0000 Mailing-List: contact oak-commits-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: oak-dev@jackrabbit.apache.org Delivered-To: mailing list oak-commits@jackrabbit.apache.org Received: (qmail 11736 invoked by uid 99); 7 Jan 2013 16:30:40 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 07 Jan 2013 16:30:40 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 07 Jan 2013 16:30:39 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 9F75323889BB; Mon, 7 Jan 2013 16:30:19 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1429885 - in /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query: XPathToSQL2Converter.java ast/BindVariableValueImpl.java ast/ComparisonImpl.java Date: Mon, 07 Jan 2013 16:30:19 -0000 To: oak-commits@jackrabbit.apache.org From: thomasm@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20130107163019.9F75323889BB@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: thomasm Date: Mon Jan 7 16:30:18 2013 New Revision: 1429885 URL: http://svn.apache.org/viewvc?rev=1429885&view=rev Log: OAK-28 Query implementation: fix code violations found by Sonar Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/XPathToSQL2Converter.java jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/BindVariableValueImpl.java jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/ComparisonImpl.java Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/XPathToSQL2Converter.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/XPathToSQL2Converter.java?rev=1429885&r1=1429884&r2=1429885&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/XPathToSQL2Converter.java (original) +++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/XPathToSQL2Converter.java Mon Jan 7 16:30:18 2013 @@ -824,7 +824,6 @@ public class XPathToSQL2Converter { // the '-' can be part of a name, // for example in "fn:lower-case" if (type != CHAR_NAME && type != CHAR_VALUE && chars[i] != '-') { - c = chars[i]; break; } i++; @@ -840,7 +839,10 @@ public class XPathToSQL2Converter { if (types[i] == CHAR_SPECIAL_2) { i++; } - // fall through + currentToken = statement.substring(start, i); + currentTokenType = KEYWORD; + parseIndex = i; + break; case CHAR_SPECIAL_1: currentToken = statement.substring(start, i); switch (c) { Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/BindVariableValueImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/BindVariableValueImpl.java?rev=1429885&r1=1429884&r2=1429885&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/BindVariableValueImpl.java (original) +++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/BindVariableValueImpl.java Mon Jan 7 16:30:18 2013 @@ -18,8 +18,6 @@ */ package org.apache.jackrabbit.oak.query.ast; -import javax.jcr.PropertyType; - import org.apache.jackrabbit.oak.api.PropertyValue; /** @@ -55,7 +53,7 @@ public class BindVariableValueImpl exten @Override int getPropertyType() { PropertyValue v = currentValue(); - return v == null ? PropertyType.UNDEFINED : v.getType().tag(); + return v.getType().tag(); } } Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/ComparisonImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/ComparisonImpl.java?rev=1429885&r1=1429884&r2=1429885&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/ComparisonImpl.java (original) +++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/ComparisonImpl.java Mon Jan 7 16:30:18 2013 @@ -78,9 +78,6 @@ public class ComparisonImpl extends Cons // "the value of operand2 is converted to the // property type of the value of operand1" p2 = PropertyValues.convert(p2, v1Type, query.getNamePathMapper()); - if (p2 == null) { - return false; - } } return evaluate(p1, p2); } @@ -152,24 +149,24 @@ public class ComparisonImpl extends Cons pattern = v.getValue(Type.STRING); LikePattern p = new LikePattern(pattern); String lowerBound = p.getLowerBound(); - String upperBound = p.getUpperBound(); - if (lowerBound == null && upperBound == null) { - // ignore - } else if (lowerBound.equals(upperBound)) { - // no wildcards - operand1.restrict(f, Operator.EQUAL, v); - } else if (operand1.supportsRangeConditions()) { - if (lowerBound != null) { - PropertyValue pv = PropertyValues.newString(lowerBound); - operand1.restrict(f, Operator.GREATER_OR_EQUAL, pv); - } - if (upperBound != null) { - PropertyValue pv = PropertyValues.newString(upperBound); - operand1.restrict(f, Operator.LESS_OR_EQUAL, pv); + if (lowerBound != null) { + String upperBound = p.getUpperBound(); + if (lowerBound.equals(upperBound)) { + // no wildcards + operand1.restrict(f, Operator.EQUAL, v); + } else if (operand1.supportsRangeConditions()) { + if (lowerBound != null) { + PropertyValue pv = PropertyValues.newString(lowerBound); + operand1.restrict(f, Operator.GREATER_OR_EQUAL, pv); + } + if (upperBound != null) { + PropertyValue pv = PropertyValues.newString(upperBound); + operand1.restrict(f, Operator.LESS_OR_EQUAL, pv); + } + } else { + // path conditions + operand1.restrict(f, operator, v); } - } else { - // path conditions - operand1.restrict(f, operator, v); } } else { operand1.restrict(f, operator, v);