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.

* - * @see ReflectionToStringBuilder#toString(Object,ToStringStyle,boolean,Class) + * @see ReflectionToStringBuilder#toString(Object,ToStringStyle,boolean,boolean,Class) * @since 2.0 */ public static String reflectionToString( @@ -228,14 +228,8 @@ public ToStringBuilder(Object object, ToStringStyle style) { * may be 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("", ReflectionToStringBuilder.toString(null)); + } }