You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sc...@apache.org on 2005/08/20 12:56:52 UTC
svn commit: r234018 - in /jakarta/commons/proper/lang/trunk/src:
java/org/apache/commons/lang/text/StrBuilder.java
test/org/apache/commons/lang/text/StrBuilderAppendInsertTest.java
Author: scolebourne
Date: Sat Aug 20 03:56:46 2005
New Revision: 234018
URL: http://svn.apache.org/viewcvs?rev=234018&view=rev
Log:
Fix null handling behaviour on char[] methods
Modified:
jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrBuilder.java
jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrBuilderAppendInsertTest.java
Modified: jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrBuilder.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrBuilder.java?rev=234018&r1=234017&r2=234018&view=diff
==============================================================================
--- jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrBuilder.java (original)
+++ jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrBuilder.java Sat Aug 20 03:56:46 2005
@@ -594,17 +594,14 @@
/**
* Appends a char array to the string builder.
- * Appending null has no effect.
- * <p>
- * Note: This method treats a null char array as an empty char array,
- * unlike StringBuffer or String.
+ * Appending null will call {@link #appendNull()}.
*
* @param chars the char array to append
* @return this, to enable chaining
*/
public StrBuilder append(char[] chars) {
if (chars == null) {
- return this;
+ return appendNull();
}
int strLen = chars.length;
if (strLen > 0) {
@@ -618,10 +615,7 @@
/**
* Appends a char array to the string builder.
- * Appending null has no effect.
- * <p>
- * Note: This method treats a null char array as an empty char array,
- * unlike StringBuffer or String.
+ * Appending null will call {@link #appendNull()}.
*
* @param chars the char array to append
* @param startIndex the start index, inclusive, must be valid
@@ -630,7 +624,7 @@
*/
public StrBuilder append(char[] chars, int startIndex, int length) {
if (chars == null) {
- return this;
+ return appendNull();
}
if (startIndex < 0 || startIndex > chars.length) {
throw new StringIndexOutOfBoundsException("Invalid startIndex: " + length);
@@ -945,10 +939,7 @@
/**
* Inserts the character array into this builder.
- * Inserting null has no effect.
- * <p>
- * Note: This method treats a null char array as an empty char array,
- * unlike StringBuffer or String.
+ * Inserting null will use the stored null text value.
*
* @param index the index to add at, must be valid
* @param chars the char array to insert
@@ -958,7 +949,7 @@
public StrBuilder insert(int index, char chars[]) {
validateIndex(index);
if (chars == null) {
- return this;
+ return insert(index, nullText);
}
int len = chars.length;
if (len > 0) {
@@ -972,10 +963,7 @@
/**
* Inserts part of the character array into this builder.
- * Inserting null has no effect.
- * <p>
- * Note: This method treats a null char array as an empty char array,
- * unlike StringBuffer or String.
+ * Inserting null will use the stored null text value.
*
* @param index the index to add at, must be valid
* @param chars the char array to insert
@@ -987,7 +975,7 @@
public StrBuilder insert(int index, char chars[], int offset, int length) {
validateIndex(index);
if (chars == null) {
- return this;
+ return insert(index, nullText);
}
if (offset < 0 || offset > chars.length) {
throw new StringIndexOutOfBoundsException("Invalid offset: " + offset);
Modified: jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrBuilderAppendInsertTest.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrBuilderAppendInsertTest.java?rev=234018&r1=234017&r2=234018&view=diff
==============================================================================
--- jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrBuilderAppendInsertTest.java (original)
+++ jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrBuilderAppendInsertTest.java Sat Aug 20 03:56:46 2005
@@ -138,13 +138,13 @@
//-----------------------------------------------------------------------
public void testAppend_String() {
StrBuilder sb = new StrBuilder();
+ sb.setNullText("NULL").append((String) null);
+ assertEquals("NULL", sb.toString());
+ sb = new StrBuilder();
sb.append("foo");
assertEquals("foo", sb.toString());
- sb.append((String) null);
- assertEquals("foo", sb.toString());
-
sb.append("");
assertEquals("foo", sb.toString());
@@ -155,11 +155,11 @@
//-----------------------------------------------------------------------
public void testAppend_String_int_int() {
StrBuilder sb = new StrBuilder();
-
- sb.append("foo", 0, 3);
- assertEquals("foo", sb.toString());
+ sb.setNullText("NULL").append((String) null, 0, 1);
+ assertEquals("NULL", sb.toString());
- sb.append((String) null, 0, 1);
+ sb = new StrBuilder();
+ sb.append("foo", 0, 3);
assertEquals("foo", sb.toString());
try {
@@ -214,13 +214,13 @@
//-----------------------------------------------------------------------
public void testAppend_StringBuffer() {
StrBuilder sb = new StrBuilder();
+ sb.setNullText("NULL").append((StringBuffer) null);
+ assertEquals("NULL", sb.toString());
+ sb = new StrBuilder();
sb.append(new StringBuffer("foo"));
assertEquals("foo", sb.toString());
- sb.append((StringBuffer) null);
- assertEquals("foo", sb.toString());
-
sb.append(new StringBuffer(""));
assertEquals("foo", sb.toString());
@@ -231,11 +231,11 @@
//-----------------------------------------------------------------------
public void testAppend_StringBuffer_int_int() {
StrBuilder sb = new StrBuilder();
-
- sb.append(new StringBuffer("foo"), 0, 3);
- assertEquals("foo", sb.toString());
+ sb.setNullText("NULL").append((StringBuffer) null, 0, 1);
+ assertEquals("NULL", sb.toString());
- sb.append((StringBuffer) null, 0, 1);
+ sb = new StrBuilder();
+ sb.append(new StringBuffer("foo"), 0, 3);
assertEquals("foo", sb.toString());
try {
@@ -290,13 +290,13 @@
//-----------------------------------------------------------------------
public void testAppend_StrBuilder() {
StrBuilder sb = new StrBuilder();
+ sb.setNullText("NULL").append((StrBuilder) null);
+ assertEquals("NULL", sb.toString());
+ sb = new StrBuilder();
sb.append(new StrBuilder("foo"));
assertEquals("foo", sb.toString());
- sb.append((StrBuilder) null);
- assertEquals("foo", sb.toString());
-
sb.append(new StrBuilder(""));
assertEquals("foo", sb.toString());
@@ -307,11 +307,11 @@
//-----------------------------------------------------------------------
public void testAppend_StrBuilder_int_int() {
StrBuilder sb = new StrBuilder();
-
- sb.append(new StrBuilder("foo"), 0, 3);
- assertEquals("foo", sb.toString());
+ sb.setNullText("NULL").append((StrBuilder) null, 0, 1);
+ assertEquals("NULL", sb.toString());
- sb.append((StrBuilder) null, 0, 1);
+ sb = new StrBuilder();
+ sb.append(new StrBuilder("foo"), 0, 3);
assertEquals("foo", sb.toString());
try {
@@ -366,10 +366,10 @@
//-----------------------------------------------------------------------
public void testAppend_CharArray() {
StrBuilder sb = new StrBuilder();
-
- sb.append((char[]) null);
- assertEquals("", sb.toString());
+ sb.setNullText("NULL").append((char[]) null);
+ assertEquals("NULL", sb.toString());
+ sb = new StrBuilder();
sb.append(new char[0]);
assertEquals("", sb.toString());
@@ -380,11 +380,11 @@
//-----------------------------------------------------------------------
public void testAppend_CharArray_int_int() {
StrBuilder sb = new StrBuilder();
-
- sb.append(new char[]{'f', 'o', 'o'}, 0, 3);
- assertEquals("foo", sb.toString());
+ sb.setNullText("NULL").append((char[]) null, 0, 1);
+ assertEquals("NULL", sb.toString());
- sb.append((char[]) null, 0, 1);
+ sb = new StrBuilder();
+ sb.append(new char[]{'f', 'o', 'o'}, 0, 3);
assertEquals("foo", sb.toString());
try {
@@ -1025,6 +1025,12 @@
sb.insert(0, "foo");
assertEquals("foonullbarbaz", sb.toString());
+
+ sb.insert(0, (char[]) null);
+ assertEquals("nullfoonullbarbaz", sb.toString());
+
+ sb.insert(0, (char[]) null, 0, 0);
+ assertEquals("nullnullfoonullbarbaz", sb.toString());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org