scolebourne    2003/07/31 16:55:57

  Modified:    lang/src/test/org/apache/commons/lang BooleanUtilsTest.java
               lang/src/java/org/apache/commons/lang BooleanUtils.java
  Log:
  Hide NPE from ArrayUtils as IAE
  
  Revision  Changes    Path
  1.6       +9 -1      
jakarta-commons/lang/src/test/org/apache/commons/lang/BooleanUtilsTest.java
  
  Index: BooleanUtilsTest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/lang/src/test/org/apache/commons/lang/BooleanUtilsTest.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- BooleanUtilsTest.java     30 Jul 2003 22:21:39 -0000      1.5
  +++ BooleanUtilsTest.java     31 Jul 2003 23:55:57 -0000      1.6
  @@ -466,6 +466,13 @@
               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 @@
                           Boolean.TRUE,
                           Boolean.TRUE })
                   .booleanValue());
  +                
       }
   
   }
  
  
  
  1.11      +14 -3     
jakarta-commons/lang/src/java/org/apache/commons/lang/BooleanUtils.java
  
  Index: BooleanUtils.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/BooleanUtils.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- BooleanUtils.java 31 Jul 2003 22:30:07 -0000      1.10
  +++ BooleanUtils.java 31 Jul 2003 23:55:57 -0000      1.11
  @@ -654,12 +654,23 @@
        * 
        * @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);
       }
   
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to