Return-Path: Delivered-To: apmail-harmony-commits-archive@www.apache.org Received: (qmail 57307 invoked from network); 14 Jun 2010 16:40:19 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 14 Jun 2010 16:40:19 -0000 Received: (qmail 8976 invoked by uid 500); 14 Jun 2010 16:40:19 -0000 Delivered-To: apmail-harmony-commits-archive@harmony.apache.org Received: (qmail 8957 invoked by uid 500); 14 Jun 2010 16:40:18 -0000 Mailing-List: contact commits-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list commits@harmony.apache.org Received: (qmail 8950 invoked by uid 99); 14 Jun 2010 16:40:18 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 Jun 2010 16:40:18 +0000 X-ASF-Spam-Status: No, hits=-1175.2 required=10.0 tests=ALL_TRUSTED,AWL 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; Mon, 14 Jun 2010 16:40:18 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 2C88723889B3; Mon, 14 Jun 2010 16:39:32 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r954547 - in /harmony/enhanced/java/trunk/classlib/modules/beans/src: main/java/java/beans/DefaultPersistenceDelegate.java test/java/org/apache/harmony/beans/tests/java/beans/DefaultPersistenceDelegateTest.java Date: Mon, 14 Jun 2010 16:39:32 -0000 To: commits@harmony.apache.org From: tellison@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100614163932.2C88723889B3@eris.apache.org> Author: tellison Date: Mon Jun 14 16:39:31 2010 New Revision: 954547 URL: http://svn.apache.org/viewvc?rev=954547&view=rev Log: Apply patch HARMONY-2449 ([classlib][beans] java.beans.DefaultPersistenceDelegate.mutatesTo() should throw NPE for null parameter) Modified: harmony/enhanced/java/trunk/classlib/modules/beans/src/main/java/java/beans/DefaultPersistenceDelegate.java harmony/enhanced/java/trunk/classlib/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/DefaultPersistenceDelegateTest.java Modified: harmony/enhanced/java/trunk/classlib/modules/beans/src/main/java/java/beans/DefaultPersistenceDelegate.java URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/classlib/modules/beans/src/main/java/java/beans/DefaultPersistenceDelegate.java?rev=954547&r1=954546&r2=954547&view=diff ============================================================================== --- harmony/enhanced/java/trunk/classlib/modules/beans/src/main/java/java/beans/DefaultPersistenceDelegate.java (original) +++ harmony/enhanced/java/trunk/classlib/modules/beans/src/main/java/java/beans/DefaultPersistenceDelegate.java Mon Jun 14 16:39:31 2010 @@ -294,25 +294,21 @@ public class DefaultPersistenceDelegate */ @Override protected boolean mutatesTo(Object o1, Object o2) { - if (null == o1 || null == o2) { - return false; - } - Class c = o1.getClass(); if (this.propertyNames.length > 0) { + Class clazz = o1.getClass(); // Check the "equals" method has been declared Method equalMethod = null; try { - equalMethod = c.getDeclaredMethod("equals", //$NON-NLS-1$ + equalMethod = clazz.getDeclaredMethod("equals", //$NON-NLS-1$ new Class[] { Object.class }); - } catch (NoSuchMethodException ex) { - // ignore + } catch (NoSuchMethodException e) { + // Ignored } if (null != equalMethod) { return o1.equals(o2); } } - return super.mutatesTo(o1, o2); } } \ No newline at end of file Modified: harmony/enhanced/java/trunk/classlib/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/DefaultPersistenceDelegateTest.java URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/classlib/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/DefaultPersistenceDelegateTest.java?rev=954547&r1=954546&r2=954547&view=diff ============================================================================== --- harmony/enhanced/java/trunk/classlib/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/DefaultPersistenceDelegateTest.java (original) +++ harmony/enhanced/java/trunk/classlib/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/DefaultPersistenceDelegateTest.java Mon Jun 14 16:39:31 2010 @@ -828,6 +828,45 @@ public class DefaultPersistenceDelegateT pd.writeObject(ia, enc); } + class MockDefaultPersistenceDelegate extends DefaultPersistenceDelegate { + public MockDefaultPersistenceDelegate(String[] args) { + super(args); + } + + public boolean mockMutatesTo(Object obj1, Object obj2) { + return mutatesTo(obj1, obj2); + } + } + + public void test_MutatesTo_scenario1() throws Exception { + MockDefaultPersistenceDelegate mockDPD = new MockDefaultPersistenceDelegate( + new String[1]); + try { + mockDPD.mockMutatesTo((Object) null, (Object) null); + fail("should throw NPE"); + } catch (NullPointerException e) { + // Expected + } + + try { + mockDPD.mockMutatesTo((Object) null, (Object) ""); + fail("should throw NPE"); + } catch (NullPointerException e) { + // Expected + } + + assertFalse(mockDPD.mockMutatesTo((Object) "", (Object) null)); + } + + public void test_MutatesTo_scenario2() throws Exception { + MockDefaultPersistenceDelegate mockDPD = new MockDefaultPersistenceDelegate( + new String[0]); + assertFalse(mockDPD.mockMutatesTo((Object) null, (Object) null)); + assertFalse(mockDPD.mockMutatesTo((Object) null, (Object) "")); + assertFalse(mockDPD.mockMutatesTo((Object) "", (Object) null)); + assertTrue(mockDPD.mockMutatesTo((Object) "", (Object) "")); + } + /* * BeanInfo for the MockBean below. */