Buggy code:
public class NumberUtils { public static final Long LONG_ZERO = Long . valueOf ( 0L ) ; public static final Long LONG_ONE = Long . valueOf ( 1L ) ; public static final Long LONG_MINUS_ONE = Long . valueOf ( ( - 1L ) ) ; public static final Integer INTEGER_ZERO = Integer . valueOf ( 0 ) ; public static final Integer INTEGER_ONE = Integer . valueOf ( 1 ) ; public static final Integer INTEGER_MINUS_ONE = Integer . valueOf ( ( - 1 ) ) ; public static final Short SHORT_ZERO = Short . valueOf ( ( ( short ) ( 0 ) ) ) ; public static final Short SHORT_ONE = Short . valueOf ( ( ( short ) ( 1 ) ) ) ; public static final Short SHORT_MINUS_ONE = Short . valueOf ( ( ( short ) ( - 1 ) ) ) ; public static final Byte BYTE_ZERO = Byte . valueOf ( ( ( byte ) ( 0 ) ) ) ; public static final Byte BYTE_ONE = Byte . valueOf ( ( ( byte ) ( 1 ) ) ) ; public static final Byte BYTE_MINUS_ONE = Byte . valueOf ( ( ( byte ) ( - 1 ) ) ) ; public static final Double DOUBLE_ZERO = Double . valueOf ( 0.0 ) ; public static final Double DOUBLE_ONE = Double . valueOf ( 1.0 ) ; public static final Double DOUBLE_MINUS_ONE = Double . valueOf ( ( - 1.0 ) ) ; public static final Float FLOAT_ZERO = Float . valueOf ( 0.0F ) ; public static final Float FLOAT_ONE = Float . valueOf ( 1.0F ) ; public static final Float FLOAT_MINUS_ONE = Float . valueOf ( ( - 1.0F ) ) ; public NumberUtils ( ) { } public static int toInt ( final String str ) { } public static int toInt ( final String str , final int defaultValue ) { } public static long toLong ( final String str ) { } public static long toLong ( final String str , final long defaultValue ) { } public static float toFloat ( final String str ) { } public static float toFloat ( final String str , final float defaultValue ) { } public static double toDouble ( final String str ) { } public static double toDouble ( final String str , final double defaultValue ) { } public static byte toByte ( final String str ) { } public static byte toByte ( final String str , final byte defaultValue ) { } public static short toShort ( final String str ) { } public static short toShort ( final String str , final short defaultValue ) { } public static Number createNumber ( final String str ) throws NumberFormatException { } private static boolean isAllZeros ( final String str ) { } public static Float createFloat ( final String str ) { } public static Double createDouble ( final String str ) { } public static Integer createInteger ( final String str ) { } public static Long createLong ( final String str ) { } public static BigInteger createBigInteger ( final String str ) { if ( str == null ) { return null ; } int pos = 0 ; int radix = 10 ; boolean negate = false ; if ( str . startsWith ( "-" ) ) { negate = true ; pos = 1 ; } <START_BUG> if ( ( str . startsWith ( "0x" , pos ) ) || ( str . startsWith ( "0x" , pos ) ) ) { <END_BUG> radix = 16 ; pos += 2 ; } else if ( str . startsWith ( "#" , pos ) ) { radix = 16 ; pos ++ ; } else if ( ( str . startsWith ( "0" , pos ) ) && ( ( str . length ( ) ) > ( pos + 1 ) ) ) { radix = 8 ; pos ++ ; } final BigInteger value = new BigInteger ( str . substring ( pos ) , radix ) ; return negate ? value . negate ( ) : value ; } public static BigDecimal createBigDecimal ( final String str ) { } public static long min ( final long ... array ) { } public static int min ( final int ... array ) { } public static short min ( final short ... array ) { } public static byte min ( final byte ... array ) { } public static double min ( final double ... array ) { } public static float min ( final float ... array ) { } public static long max ( final long ... array ) { } public static int max ( final int ... array ) { } public static short max ( final short ... array ) { } public static byte max ( final byte ... array ) { } public static double max ( final double ... array ) { } public static float max ( final float ... array ) { } private static void validateArray ( final Object array ) { } public static long min ( long a , final long b , final long c ) { } public static int min ( int a , final int b , final int c ) { } public static short min ( short a , final short b , final short c ) { } public static byte min ( byte a , final byte b , final byte c ) { } public static double min ( final double a , final double b , final double c ) { } public static float min ( final float a , final float b , final float c ) { } public static long max ( long a , final long b , final long c ) { }

Fix:
if ( ( str . startsWith ( "0x" , pos ) ) || ( str . startsWith ( "0X" , pos ) ) ) {