unico 2005/06/15 03:12:50 Modified: src/stores/org/apache/slide/store/impl/rdbms/expression Tag: SLIDE_2_1_RELEASE_BRANCH RDBMSNotPropContainsExpression.java RDBMSCompareExpression.java RDBMSPropContainsExpression.java Log: escape single quotes in DASL literal strings Revision Changes Path No revision No revision 1.2.2.3 +4 -4 jakarta-slide/src/stores/org/apache/slide/store/impl/rdbms/expression/RDBMSNotPropContainsExpression.java Index: RDBMSNotPropContainsExpression.java =================================================================== RCS file: /home/cvs/jakarta-slide/src/stores/org/apache/slide/store/impl/rdbms/expression/RDBMSNotPropContainsExpression.java,v retrieving revision 1.2.2.2 retrieving revision 1.2.2.3 diff -u -r1.2.2.2 -r1.2.2.3 --- RDBMSNotPropContainsExpression.java 22 Nov 2004 13:41:32 -0000 1.2.2.2 +++ RDBMSNotPropContainsExpression.java 15 Jun 2005 10:12:50 -0000 1.2.2.3 @@ -50,7 +50,7 @@ } sb.append(c); } - return sb.toString(); + return escapeLiteral(sb.toString()); } } 1.4.2.5 +21 -5 jakarta-slide/src/stores/org/apache/slide/store/impl/rdbms/expression/RDBMSCompareExpression.java Index: RDBMSCompareExpression.java =================================================================== RCS file: /home/cvs/jakarta-slide/src/stores/org/apache/slide/store/impl/rdbms/expression/RDBMSCompareExpression.java,v retrieving revision 1.4.2.4 retrieving revision 1.4.2.5 diff -u -r1.4.2.4 -r1.4.2.5 --- RDBMSCompareExpression.java 23 Nov 2004 16:04:18 -0000 1.4.2.4 +++ RDBMSCompareExpression.java 15 Jun 2005 10:12:50 -0000 1.4.2.5 @@ -88,7 +88,7 @@ return "(p" + _tableIndex + ".PROPERTY_NAME = '" + getPropertyName() + "' AND " + "p" + _tableIndex + ".PROPERTY_NAMESPACE = '" + getPropertyNamespace() + "' AND " + "p" + _tableIndex + ".PROPERTY_VALUE " + COMPARE_OPERATORS.get(_element.getName()) - + " '" + literal.getTextNormalize() + "')"; + + " '" + escapeLiteral(literal.getTextNormalize()) + "')"; } protected String join() { @@ -121,4 +121,20 @@ return getProperty().getNamespaceURI(); } -} \ No newline at end of file + /** + * Single quotes need to be escaped. + */ + protected static String escapeLiteral(String literal) { + StringBuffer sb = new StringBuffer(literal.length() + 3); + for (int i = 0, l = literal.length(); i < l; i++) { + char c = literal.charAt(i); + if (c == '\'') { + sb.append("''"); + } + else { + sb.append(c); + } + } + return sb.toString(); + } +} 1.2.2.3 +4 -4 jakarta-slide/src/stores/org/apache/slide/store/impl/rdbms/expression/RDBMSPropContainsExpression.java Index: RDBMSPropContainsExpression.java =================================================================== RCS file: /home/cvs/jakarta-slide/src/stores/org/apache/slide/store/impl/rdbms/expression/RDBMSPropContainsExpression.java,v retrieving revision 1.2.2.2 retrieving revision 1.2.2.3 diff -u -r1.2.2.2 -r1.2.2.3 --- RDBMSPropContainsExpression.java 22 Nov 2004 13:41:32 -0000 1.2.2.2 +++ RDBMSPropContainsExpression.java 15 Jun 2005 10:12:50 -0000 1.2.2.3 @@ -52,7 +52,7 @@ } sb.append(c); } - return sb.toString(); + return escapeLiteral(sb.toString()); } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]