Buggy code:
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 ) { } 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 ) { } public static int max ( int a , final int b , final int c ) { } public static short max ( short a , final short b , final short c ) { } public static byte max ( byte a , final byte b , final byte c ) { } public static double max ( final double a , final double b , final double c ) { } public static float max ( final float a , final float b , final float c ) { } public static boolean isDigits ( final String str ) { } public static boolean isNumber ( final String str ) { } public static boolean isParsable ( final String str ) { if ( StringUtils . endsWith ( str , "." ) ) { return false ; } if ( StringUtils . startsWith ( str , "-" ) ) { <START_BUG> return NumberUtils . isDigits ( StringUtils . replaceOnce ( StringUtils . substring ( str , 1 ) , "." , StringUtils . EMPTY ) ) ; <END_BUG> } else { return NumberUtils . isDigits ( StringUtils . replaceOnce ( str , "." , StringUtils . EMPTY ) ) ; } } }

Fix:
return NumberUtils . isDigits ( StringUtils . replaceOnce ( str . substring ( 1 ) , "." , StringUtils . EMPTY ) ) ;