Author: scolebourne Date: Tue Nov 17 09:30:41 2009 New Revision: 881209 URL: http://svn.apache.org/viewvc?rev=881209&view=rev Log: Fix to handle null input array, and remove check for NULL
Modified: commons/proper/lang/trunk/src/java/org/apache/commons/lang/ObjectUtils.java commons/proper/lang/trunk/src/test/org/apache/commons/lang/ObjectUtilsTest.java Modified: commons/proper/lang/trunk/src/java/org/apache/commons/lang/ObjectUtils.java URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/java/org/apache/commons/lang/ObjectUtils.java?rev=881209&r1=881208&r2=881209&view=diff ============================================================================== --- commons/proper/lang/trunk/src/java/org/apache/commons/lang/ObjectUtils.java (original) +++ commons/proper/lang/trunk/src/java/org/apache/commons/lang/ObjectUtils.java Tue Nov 17 09:30:41 2009 @@ -111,9 +111,11 @@ * or <code>null</code> if there are no non-null values */ public static <T> T firstNonNull(T... values) { - for (T val : values) { - if (val != null && val != ObjectUtils.NULL) { - return val; + if (values != null) { + for (T val : values) { + if (val != null) { + return val; + } } } return null; Modified: commons/proper/lang/trunk/src/test/org/apache/commons/lang/ObjectUtilsTest.java URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/org/apache/commons/lang/ObjectUtilsTest.java?rev=881209&r1=881208&r2=881209&view=diff ============================================================================== --- commons/proper/lang/trunk/src/test/org/apache/commons/lang/ObjectUtilsTest.java (original) +++ commons/proper/lang/trunk/src/test/org/apache/commons/lang/ObjectUtilsTest.java Tue Nov 17 09:30:41 2009 @@ -72,7 +72,7 @@ assertEquals(true, Modifier.isPublic(ObjectUtils.class.getModifiers())); assertEquals(false, Modifier.isFinal(ObjectUtils.class.getModifiers())); } - + //----------------------------------------------------------------------- public void testIsNull() { Object o = FOO; @@ -81,6 +81,24 @@ assertSame("dflt was returned when o was not null", o, ObjectUtils.defaultIfNull(o, dflt)); } + public void testFirstNonNull() { + assertEquals(null, ObjectUtils.firstNonNull(null, null)); + assertEquals("", ObjectUtils.firstNonNull(null, "")); + String firstNonNullGenerics = ObjectUtils.firstNonNull(null, null, "123", "456"); + assertEquals("123", firstNonNullGenerics); + assertEquals("123", ObjectUtils.firstNonNull("123", null, "456", null)); + assertEquals(null, ObjectUtils.firstNonNull()); + assertSame(Boolean.TRUE, ObjectUtils.firstNonNull(Boolean.TRUE)); + assertNull(ObjectUtils.firstNonNull()); + assertNull(ObjectUtils.firstNonNull(null, null)); +// assertSame("123", ObjectUtils.firstNonNull(null, ObjectUtils.NULL, "123", "456")); +// assertSame("456", ObjectUtils.firstNonNull(ObjectUtils.NULL, "456", "123", null)); +// assertNull(ObjectUtils.firstNonNull(null, null, ObjectUtils.NULL)); + assertNull(ObjectUtils.firstNonNull((Object) null)); + assertNull(ObjectUtils.firstNonNull((Object[]) null)); + } + + //----------------------------------------------------------------------- public void testEquals() { assertTrue("ObjectUtils.equals(null, null) returned false", ObjectUtils.equals(null, null)); assertTrue("ObjectUtils.equals(\"foo\", null) returned true", !ObjectUtils.equals(FOO, null)); @@ -217,18 +235,4 @@ assertNull( ObjectUtils.min((String)null, (String)null) ); } - public void testFirstNonNull() { - assertEquals(null, ObjectUtils.firstNonNull(null, null)); - assertEquals("", ObjectUtils.firstNonNull(null, "")); - assertEquals("123", ObjectUtils.firstNonNull(null, null, "123", "456")); - assertEquals("123", ObjectUtils.firstNonNull("123", null, "456", null)); - assertEquals(null, ObjectUtils.firstNonNull()); - assertSame(Boolean.TRUE, ObjectUtils.firstNonNull(Boolean.TRUE)); - assertNull(ObjectUtils.firstNonNull()); - assertNull(ObjectUtils.firstNonNull(null, null)); - assertSame("123", ObjectUtils.firstNonNull(null, ObjectUtils.NULL, "123", "456")); - assertSame("456", ObjectUtils.firstNonNull(ObjectUtils.NULL, "456", "123", null)); - assertNull(ObjectUtils.firstNonNull(null, null, ObjectUtils.NULL)); - } - }