You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by gg...@apache.org on 2005/08/06 20:54:01 UTC

svn commit: r230565 - in /jakarta/commons/proper/lang/trunk/src: java/org/apache/commons/lang/text/StrTokenizer.java test/org/apache/commons/lang/text/StrTokenizerTest.java

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 <ol...@t-online.de>. 

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: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org