diff --git a/src/java/org/apache/commons/lang/builder/ToStringBuilder.java b/src/java/org/apache/commons/lang/builder/ToStringBuilder.java index dbbdbedf4..0dc3c6c77 100644 --- a/src/java/org/apache/commons/lang/builder/ToStringBuilder.java +++ b/src/java/org/apache/commons/lang/builder/ToStringBuilder.java @@ -87,7 +87,7 @@ * @author Gary Gregory * @author Pete Gieser * @since 1.0 - * @version $Id: ToStringBuilder.java,v 1.32 2004/02/18 22:53:24 ggregory Exp $ + * @version $Id: ToStringBuilder.java,v 1.33 2004/06/30 18:21:49 ggregory Exp $ */ public class ToStringBuilder { @@ -144,7 +144,7 @@ public static String reflectionToString(Object object, ToStringStyle style, bool /** *
Forwards to ReflectionToStringBuilder
.
null
* @param buffer the StringBuffer
to populate, may be
* null
- * @throws IllegalArgumentException if the Object passed in is
- * null
*/
public ToStringBuilder(Object object, ToStringStyle style, StringBuffer buffer) {
- super();
- if (object == null) {
- throw new IllegalArgumentException("The object to create a toString for must not be null");
- }
if (style == null) {
style = getDefaultStyle();
}
@@ -1038,8 +1032,8 @@ public ToStringStyle getStyle() {
* @return the String toString
*/
public String toString() {
- style.appendEnd(buffer, object);
- return buffer.toString();
+ style.appendEnd(this.getStringBuffer(), this.getObject());
+ return this.getStringBuffer().toString();
}
}
diff --git a/src/java/org/apache/commons/lang/builder/ToStringStyle.java b/src/java/org/apache/commons/lang/builder/ToStringStyle.java
index b5b4a3dab..aff657d9c 100644
--- a/src/java/org/apache/commons/lang/builder/ToStringStyle.java
+++ b/src/java/org/apache/commons/lang/builder/ToStringStyle.java
@@ -48,7 +48,7 @@
* @author Gary Gregory
* @author Pete Gieser
* @since 1.0
- * @version $Id: ToStringStyle.java,v 1.29 2004/02/18 22:53:24 ggregory Exp $
+ * @version $Id: ToStringStyle.java,v 1.30 2004/06/30 18:21:49 ggregory Exp $
*/
public abstract class ToStringStyle implements Serializable {
@@ -234,11 +234,13 @@ public void appendToString(StringBuffer buffer, String toString) {
* toString
for, must not be null
*/
public void appendStart(StringBuffer buffer, Object object) {
- appendClassName(buffer, object);
- appendIdentityHashCode(buffer, object);
- appendContentStart(buffer);
- if (fieldSeparatorAtStart) {
- appendFieldSeparator(buffer);
+ if (object != null) {
+ appendClassName(buffer, object);
+ appendIdentityHashCode(buffer, object);
+ appendContentStart(buffer);
+ if (fieldSeparatorAtStart) {
+ appendFieldSeparator(buffer);
+ }
}
}
@@ -247,9 +249,12 @@ public void appendStart(StringBuffer buffer, Object object) {
*
* @param buffer the StringBuffer
to populate
* @param object the Object
to build a
- * toString
for, must not be null
+ * toString
for.
*/
public void appendEnd(StringBuffer buffer, Object object) {
+ if (object == null){
+ return;
+ }
if (fieldSeparatorAtEnd == false) {
removeLastFieldSeparator(buffer);
}
@@ -1282,7 +1287,7 @@ protected void appendSummary(StringBuffer buffer, String fieldName, boolean[] ar
* @param object the Object
whose name to output
*/
protected void appendClassName(StringBuffer buffer, Object object) {
- if (useClassName) {
+ if (useClassName && object != null) {
if (useShortClassName) {
buffer.append(getShortClassName(object.getClass()));
} else {
@@ -1298,7 +1303,7 @@ protected void appendClassName(StringBuffer buffer, Object object) {
* @param object the Object
whose id to output
*/
protected void appendIdentityHashCode(StringBuffer buffer, Object object) {
- if (useIdentityHashCode) {
+ if (this.isUseIdentityHashCode() && object!=null) {
buffer.append('@');
buffer.append(Integer.toHexString(System.identityHashCode(object)));
}
diff --git a/src/test/org/apache/commons/lang/builder/ToStringBuilderTest.java b/src/test/org/apache/commons/lang/builder/ToStringBuilderTest.java
index 04d1416f1..92c2a8c41 100644
--- a/src/test/org/apache/commons/lang/builder/ToStringBuilderTest.java
+++ b/src/test/org/apache/commons/lang/builder/ToStringBuilderTest.java
@@ -30,7 +30,7 @@
* @author Stephen Colebourne
* @author Gary Gregory
* @author Alex Chaffee
- * @version $Id: ToStringBuilderTest.java,v 1.13 2004/02/18 23:00:51 ggregory Exp $
+ * @version $Id: ToStringBuilderTest.java,v 1.14 2004/06/30 18:22:22 ggregory Exp $
*/
public class ToStringBuilderTest extends TestCase {
@@ -62,46 +62,18 @@ protected void tearDown() throws Exception {
//-----------------------------------------------------------------------
public void testConstructorEx1() {
- try {
- new ToStringBuilder(null);
-
- } catch (IllegalArgumentException ex) {
- return;
- }
- fail();
+ assertEquals("", new ToStringBuilder(null).toString());
}
public void testConstructorEx2() {
- try {
- new ToStringBuilder(null, null);
-
- } catch (IllegalArgumentException ex) {
- try {
- new ToStringBuilder(base, null);
-
- } catch (Exception ex2) {
- fail();
- }
- return;
- }
- fail();
+ assertEquals("", new ToStringBuilder(null, null).toString());
+ new ToStringBuilder(this.base, null).toString();
}
public void testConstructorEx3() {
- try {
- new ToStringBuilder(null, null, null);
-
- } catch (IllegalArgumentException ex) {
- try {
- new ToStringBuilder(base, null, null);
- new ToStringBuilder(base, ToStringStyle.DEFAULT_STYLE, null);
-
- } catch (Exception ex2) {
- fail();
- }
- return;
- }
- fail();
+ assertEquals("", new ToStringBuilder(null, null, null).toString());
+ new ToStringBuilder(this.base, null, null);
+ new ToStringBuilder(this.base, ToStringStyle.DEFAULT_STYLE, null);
}
public void testGetSetDefault() {
@@ -915,4 +887,7 @@ class InheritedReflectionStaticFieldsFixture extends SimpleReflectionStaticField
static final int staticInt2 = 67890;
}
+ public void testReflectionNull() {
+ assertEquals("