Hide NPE from ArrayUtils as IAE
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/lang/trunk@137546 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
bcfc9c2602
commit
87b920c44b
|
@ -66,7 +66,7 @@ import org.apache.commons.lang.math.NumberUtils;
|
|||
* @author Stephen Colebourne
|
||||
* @author Matthew Hawthorne
|
||||
* @since 2.0
|
||||
* @version $Id: BooleanUtils.java,v 1.10 2003/07/31 22:30:07 scolebourne Exp $
|
||||
* @version $Id: BooleanUtils.java,v 1.11 2003/07/31 23:55:57 scolebourne Exp $
|
||||
*/
|
||||
public class BooleanUtils {
|
||||
|
||||
|
@ -654,12 +654,23 @@ public class BooleanUtils {
|
|||
*
|
||||
* @param array an array of <code>Boolean<code>s
|
||||
* @return <code>true</code> if the xor is successful.
|
||||
* @throws NullPointerException if <code>array</code> contains a <code>null</code>
|
||||
* @throws IllegalArgumentException if <code>array</code> is <code>null</code>
|
||||
* @throws IllegalArgumentException if <code>array</code> is empty.
|
||||
* @throws IllegalArgumentException if <code>array</code> contains a <code>null</code>
|
||||
*/
|
||||
public static Boolean xor(Boolean[] array) {
|
||||
return (xor(ArrayUtils.toPrimitive(array)) ? Boolean.TRUE : Boolean.FALSE);
|
||||
if (array == null) {
|
||||
throw new IllegalArgumentException("The Array must not be null");
|
||||
} else if (array.length == 0) {
|
||||
throw new IllegalArgumentException("Array is empty");
|
||||
}
|
||||
boolean[] primitive = null;
|
||||
try {
|
||||
primitive = ArrayUtils.toPrimitive(array);
|
||||
} catch (NullPointerException ex) {
|
||||
throw new IllegalArgumentException("The array must not conatin any null elements");
|
||||
}
|
||||
return (xor(primitive) ? Boolean.TRUE : Boolean.FALSE);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -66,7 +66,7 @@ import junit.textui.TestRunner;
|
|||
*
|
||||
* @author Stephen Colebourne
|
||||
* @author Matthew Hawthorne
|
||||
* @version $Id: BooleanUtilsTest.java,v 1.5 2003/07/30 22:21:39 scolebourne Exp $
|
||||
* @version $Id: BooleanUtilsTest.java,v 1.6 2003/07/31 23:55:57 scolebourne Exp $
|
||||
*/
|
||||
public class BooleanUtilsTest extends TestCase {
|
||||
|
||||
|
@ -466,6 +466,13 @@ public class BooleanUtilsTest extends TestCase {
|
|||
fail("Exception was not thrown for empty input.");
|
||||
} catch (IllegalArgumentException ex) {}
|
||||
}
|
||||
|
||||
public void testXor_object_nullElementInput() {
|
||||
try {
|
||||
BooleanUtils.xor(new Boolean[] {null});
|
||||
fail("Exception was not thrown for null element input.");
|
||||
} catch (IllegalArgumentException ex) {}
|
||||
}
|
||||
|
||||
public void testXor_object_validInput_2items() {
|
||||
assertTrue(
|
||||
|
@ -565,6 +572,7 @@ public class BooleanUtilsTest extends TestCase {
|
|||
Boolean.TRUE,
|
||||
Boolean.TRUE })
|
||||
.booleanValue());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue