Return-Path: Delivered-To: apmail-commons-commits-archive@minotaur.apache.org Received: (qmail 21552 invoked from network); 31 Jan 2010 18:38:41 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 31 Jan 2010 18:38:41 -0000 Received: (qmail 90450 invoked by uid 500); 31 Jan 2010 18:38:41 -0000 Delivered-To: apmail-commons-commits-archive@commons.apache.org Received: (qmail 90361 invoked by uid 500); 31 Jan 2010 18:38:40 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 90352 invoked by uid 99); 31 Jan 2010 18:38:40 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 31 Jan 2010 18:38:40 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 31 Jan 2010 18:38:38 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 6960F23889ED; Sun, 31 Jan 2010 18:38:17 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r905093 - in /commons/proper/lang/branches/LANG_2_X/src: main/java/org/apache/commons/lang/builder/ReflectionToStringBuilder.java test/java/org/apache/commons/lang/builder/ToStringBuilderTest.java Date: Sun, 31 Jan 2010 18:38:17 -0000 To: commits@commons.apache.org From: niallp@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100131183817.6960F23889ED@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: niallp Date: Sun Jan 31 18:38:16 2010 New Revision: 905093 URL: http://svn.apache.org/viewvc?rev=905093&view=rev Log: Partial port of r775045 & r829635 to 2.x branch - add "upToClass" check to ReflectionToStringBuilder Modified: commons/proper/lang/branches/LANG_2_X/src/main/java/org/apache/commons/lang/builder/ReflectionToStringBuilder.java commons/proper/lang/branches/LANG_2_X/src/test/java/org/apache/commons/lang/builder/ToStringBuilderTest.java Modified: commons/proper/lang/branches/LANG_2_X/src/main/java/org/apache/commons/lang/builder/ReflectionToStringBuilder.java URL: http://svn.apache.org/viewvc/commons/proper/lang/branches/LANG_2_X/src/main/java/org/apache/commons/lang/builder/ReflectionToStringBuilder.java?rev=905093&r1=905092&r2=905093&view=diff ============================================================================== --- commons/proper/lang/branches/LANG_2_X/src/main/java/org/apache/commons/lang/builder/ReflectionToStringBuilder.java (original) +++ commons/proper/lang/branches/LANG_2_X/src/main/java/org/apache/commons/lang/builder/ReflectionToStringBuilder.java Sun Jan 31 18:38:16 2010 @@ -741,6 +741,12 @@ * The last super class to stop appending fields for. */ public void setUpToClass(Class clazz) { + if (clazz != null) { + Object object = getObject(); + if (object != null && clazz.isInstance(object) == false) { + throw new IllegalArgumentException("Specified class is not a superclass of the object"); + } + } this.upToClass = clazz; } Modified: commons/proper/lang/branches/LANG_2_X/src/test/java/org/apache/commons/lang/builder/ToStringBuilderTest.java URL: http://svn.apache.org/viewvc/commons/proper/lang/branches/LANG_2_X/src/test/java/org/apache/commons/lang/builder/ToStringBuilderTest.java?rev=905093&r1=905092&r2=905093&view=diff ============================================================================== --- commons/proper/lang/branches/LANG_2_X/src/test/java/org/apache/commons/lang/builder/ToStringBuilderTest.java (original) +++ commons/proper/lang/branches/LANG_2_X/src/test/java/org/apache/commons/lang/builder/ToStringBuilderTest.java Sun Jan 31 18:38:16 2010 @@ -338,7 +338,6 @@ assertEquals(baseStr + "[a=a,transientA=t]", ToStringBuilder.reflectionToString(baseA, null, true)); assertEquals(baseStr + "[a=a]", ToStringBuilder.reflectionToString(baseA, null, false, null)); assertEquals(baseStr + "[a=a]", ToStringBuilder.reflectionToString(baseA, null, false, Object.class)); - assertEquals(baseStr + "[a=a]", ToStringBuilder.reflectionToString(baseA, null, false, List.class)); assertEquals(baseStr + "[a=a]", ToStringBuilder.reflectionToString(baseA, null, false, ReflectionTestFixtureA.class)); ReflectionTestFixtureB baseB = new ReflectionTestFixtureB(); @@ -350,7 +349,6 @@ assertEquals(baseStr + "[b=b,transientB=t,a=a,transientA=t]", ToStringBuilder.reflectionToString(baseB, null, true)); assertEquals(baseStr + "[b=b,a=a]", ToStringBuilder.reflectionToString(baseB, null, false, null)); assertEquals(baseStr + "[b=b,a=a]", ToStringBuilder.reflectionToString(baseB, null, false, Object.class)); - assertEquals(baseStr + "[b=b,a=a]", ToStringBuilder.reflectionToString(baseB, null, false, List.class)); assertEquals(baseStr + "[b=b,a=a]", ToStringBuilder.reflectionToString(baseB, null, false, ReflectionTestFixtureA.class)); assertEquals(baseStr + "[b=b]", ToStringBuilder.reflectionToString(baseB, null, false, ReflectionTestFixtureB.class)); this.validateEmptyToStringStyleRegistry(); @@ -938,6 +936,29 @@ } /** + * Tests ReflectionToStringBuilder setUpToClass(). + */ + public void test_setUpToClass_valid() { + Integer val = new Integer(5); + ReflectionToStringBuilder test = new ReflectionToStringBuilder(val); + test.setUpToClass(Number.class); + } + + /** + * Tests ReflectionToStringBuilder setUpToClass(). + */ + public void test_setUpToClass_invalid() { + Integer val = new Integer(5); + ReflectionToStringBuilder test = new ReflectionToStringBuilder(val); + try { + test.setUpToClass(String.class); + fail(); + } catch (IllegalArgumentException ex) { + // expected + } + } + + /** * Tests ReflectionToStringBuilder.toString() for statics. */ class ReflectionStaticFieldsFixture {