Author: ggregory Date: Sun Aug 21 14:57:01 2005 New Revision: 234360 URL: http://svn.apache.org/viewcvs?rev=234360&view=rev Log: Fix clone() and add a unit test.
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=234360&r1=234359&r2=234360&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 Sun Aug 21 14:57:01 2005 @@ -1056,7 +1056,7 @@ try { StrTokenizer cloned = (StrTokenizer) super.clone(); if (cloned.chars != null) { - cloned.chars = cloned.chars; + cloned.chars = (char[]) cloned.chars.clone(); } cloned.reset(); return cloned; 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=234360&r1=234359&r2=234360&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 Sun Aug 21 14:57:01 2005 @@ -542,7 +542,35 @@ assertEquals(tok, tok.setIgnoreEmptyTokens(false)); } - //----------------------------------------------------------------------- + public void testCloneNull() { + StrTokenizer tokenizer = new StrTokenizer((char[]) null); + // Start sanity check + assertEquals(null, tokenizer.nextToken()); + tokenizer.reset(); + assertEquals(null, tokenizer.nextToken()); + // End sanity check + StrTokenizer clonedTokenizer = (StrTokenizer) tokenizer.clone(); + tokenizer.reset(); + assertEquals(null, tokenizer.nextToken()); + assertEquals(null, clonedTokenizer.nextToken()); + } + + public void testCloneReset() { + char[] input = new char[]{'a'}; + StrTokenizer tokenizer = new StrTokenizer(input); + // Start sanity check + assertEquals("a", tokenizer.nextToken()); + tokenizer.reset(); + assertEquals("a", tokenizer.nextToken()); + // End sanity check + StrTokenizer clonedTokenizer = (StrTokenizer) tokenizer.clone(); + input[0] = 'b'; + tokenizer.reset(); + assertEquals("b", tokenizer.nextToken()); + assertEquals("a", clonedTokenizer.nextToken()); + } + + // ----------------------------------------------------------------------- public void testConstructor_String() { StrTokenizer tok = new StrTokenizer("a b"); assertEquals("a", tok.next()); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]