Author: ggregory Date: Sat Aug 6 11:53:57 2005 New Revision: 230565 URL: http://svn.apache.org/viewcvs?rev=230565&view=rev Log: [Bug 36059] [lang] Wrong length check in StrTokenizer.StringMatcher. From Oliver Heger <[EMAIL PROTECTED]>.
Modified: jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrTokenizer.java jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrTokenizerTest.java Modified: jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrTokenizer.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrTokenizer.java?rev=230565&r1=230564&r2=230565&view=diff ============================================================================== --- jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrTokenizer.java (original) +++ jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrTokenizer.java Sat Aug 6 11:53:57 2005 @@ -1238,7 +1238,7 @@ */ public int isMatch(char[] text, int textLen, int pos) { int len = chars.length; - if (pos + len >= textLen) { + if (pos + len > textLen) { return 0; } for (int i = 0; i < chars.length; i++, pos++) { Modified: jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrTokenizerTest.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrTokenizerTest.java?rev=230565&r1=230564&r2=230565&view=diff ============================================================================== --- jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrTokenizerTest.java (original) +++ jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrTokenizerTest.java Sat Aug 6 11:53:57 2005 @@ -379,6 +379,22 @@ assertEquals("f", tok.next()); assertEquals("g", tok.next()); } + + public void testStringMatcher() { + // build test fixture + char[] data = new char[26]; + for(int i = 0; i < data.length; i++) { + data[i] = (char) (i + 'a'); + } + // perform tests + StrTokenizer.Matcher matcher = new StrTokenizer.StringMatcher("z"); + for(int i = 0; i < data.length - 1; i++) { + assertEquals(0, matcher.isMatch(data, data.length, i)); + } + assertEquals(1, matcher.isMatch(data, data.length, data.length - 1)); + // test bad pos argument. + assertEquals(0, matcher.isMatch(data, data.length, data.length +100)); + } public void testTSV() { this.testXSVAbc(StrTokenizer.getTSVInstance(TSV_SIMPLE_FIXTURE)); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]