Buggy code:
public static Short [ ] toObject ( final short [ ] array ) { } public static byte [ ] toPrimitive ( final Byte [ ] array ) { } public static byte [ ] toPrimitive ( final Byte [ ] array , final byte valueForNull ) { } public static Byte [ ] toObject ( final byte [ ] array ) { } public static double [ ] toPrimitive ( final Double [ ] array ) { } public static double [ ] toPrimitive ( final Double [ ] array , final double valueForNull ) { } public static Double [ ] toObject ( final double [ ] array ) { } public static float [ ] toPrimitive ( final Float [ ] array ) { } public static float [ ] toPrimitive ( final Float [ ] array , final float valueForNull ) { } public static Float [ ] toObject ( final float [ ] array ) { } public static boolean [ ] toPrimitive ( final Boolean [ ] array ) { } public static boolean [ ] toPrimitive ( final Boolean [ ] array , final boolean valueForNull ) { } public static Boolean [ ] toObject ( final boolean [ ] array ) { } public static boolean isEmpty ( final Object [ ] array ) { } public static boolean isEmpty ( final long [ ] array ) { } public static boolean isEmpty ( final int [ ] array ) { } public static boolean isEmpty ( final short [ ] array ) { } public static boolean isEmpty ( final char [ ] array ) { } public static boolean isEmpty ( final byte [ ] array ) { } public static boolean isEmpty ( final double [ ] array ) { } public static boolean isEmpty ( final float [ ] array ) { } public static boolean isEmpty ( final boolean [ ] array ) { } public static < T > boolean isNotEmpty ( final T [ ] array ) { } public static boolean isNotEmpty ( final long [ ] array ) { } public static boolean isNotEmpty ( final int [ ] array ) { } public static boolean isNotEmpty ( final short [ ] array ) { } public static boolean isNotEmpty ( final char [ ] array ) { } public static boolean isNotEmpty ( final byte [ ] array ) { } public static boolean isNotEmpty ( final double [ ] array ) { } public static boolean isNotEmpty ( final float [ ] array ) { } public static boolean isNotEmpty ( final boolean [ ] array ) { } public static < T > T [ ] addAll ( final T [ ] array1 , final T ... array2 ) { } public static boolean [ ] addAll ( final boolean [ ] array1 , final boolean ... array2 ) { } public static char [ ] addAll ( final char [ ] array1 , final char ... array2 ) { } public static byte [ ] addAll ( final byte [ ] array1 , final byte ... array2 ) { } public static short [ ] addAll ( final short [ ] array1 , final short ... array2 ) { } public static int [ ] addAll ( final int [ ] array1 , final int ... array2 ) { } public static long [ ] addAll ( final long [ ] array1 , final long ... array2 ) { } public static float [ ] addAll ( final float [ ] array1 , final float ... array2 ) { } public static double [ ] addAll ( final double [ ] array1 , final double ... array2 ) { } public static < T > T [ ] add ( final T [ ] array , final T element ) { Class < ? > type ; if ( array != null ) { <START_BUG> type = array . getClass ( ) ; <END_BUG> } else if ( element != null ) { type = element . getClass ( ) ; } else { throw new IllegalArgumentException ( "Arguments<seq2seq4repair_space>cannot<seq2seq4repair_space>both<seq2seq4repair_space>be<seq2seq4repair_space>null" ) ; } @ SuppressWarnings ( "unchecked" ) final T [ ] newArray = ( ( T [ ] ) ( ArrayUtils . copyArrayGrow1 ( array , type ) ) ) ; newArray [ ( ( newArray . length ) - 1 ) ] = element ; return newArray ; } public static boolean [ ] add ( final boolean [ ] array , final boolean element ) { } public static byte [ ] add ( final byte [ ] array , final byte element ) { } public static char [ ] add ( final char [ ] array , final char element ) { } public static double [ ] add ( final double [ ] array , final double element ) { } public static float [ ] add ( final float [ ] array , final float element ) { } public static int [ ] add ( final int [ ] array , final int element ) { } public static long [ ] add ( final long [ ] array , final long element ) { } public static short [ ] add ( final short [ ] array , final short element ) { } private static Object copyArrayGrow1 ( final Object array , final Class < ? > newArrayComponentType ) { } public static < T > T [ ] add ( final T [ ] array , final int index , final T element ) { } public static boolean [ ] add ( final boolean [ ] array , final int index , final boolean element ) { } public static char [ ] add ( final char [ ] array , final int index , final char element ) { }

Fix:
type = array . getClass ( ) . getComponentType ( ) ;