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]