Author: dmitri Date: Mon Mar 20 16:48:07 2006 New Revision: 387363 URL: http://svn.apache.org/viewcvs?rev=387363&view=rev Log: Fixed a problem caused by "from" index greater than the string s length. Thanks to Barzilai Spinak
Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreFunction.java jakarta/commons/proper/jxpath/trunk/src/test/org/apache/commons/jxpath/ri/compiler/CoreFunctionTest.java Modified: jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreFunction.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreFunction.java?rev=387363&r1=387362&r2=387363&view=diff ============================================================================== --- jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreFunction.java (original) +++ jakarta/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreFunction.java Mon Mar 20 16:48:07 2006 @@ -473,6 +473,9 @@ } from = Math.round(from); + if (from > s1.length() + 1) { + return ""; + } if (ac == 2) { if (from < 1) { from = 1; Modified: jakarta/commons/proper/jxpath/trunk/src/test/org/apache/commons/jxpath/ri/compiler/CoreFunctionTest.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jxpath/trunk/src/test/org/apache/commons/jxpath/ri/compiler/CoreFunctionTest.java?rev=387363&r1=387362&r2=387363&view=diff ============================================================================== --- jakarta/commons/proper/jxpath/trunk/src/test/org/apache/commons/jxpath/ri/compiler/CoreFunctionTest.java (original) +++ jakarta/commons/proper/jxpath/trunk/src/test/org/apache/commons/jxpath/ri/compiler/CoreFunctionTest.java Mon Mar 20 16:48:07 2006 @@ -82,6 +82,9 @@ assertXPathValue(context, "substring('12345', 1, 0 div 0)", ""); assertXPathValue(context, "substring('12345', -42, 1 div 0)", "12345"); assertXPathValue(context, "substring('12345', -1 div 0, 1 div 0)", ""); + assertXPathValue(context, "substring('12345', 6, 6)", ""); + assertXPathValue(context, "substring('12345', 7, 8)", ""); + assertXPathValue(context, "substring('12345', 7)", ""); assertXPathValue(context, "string-length('12345')", new Double(5)); assertXPathValue(context, "normalize-space(' abc def ')", "abc def"); assertXPathValue(context, "normalize-space('abc def')", "abc def"); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]