commons-langのStringUtils.isNumericを使う際の注意点としては空文字がtrueになる、という点です。

StringUtils.isNumeric(null)   = false
StringUtils.isNumeric("")     = true #これがくせものです。
StringUtils.isNumeric("  ")   = false
StringUtils.isNumeric("123")  = true
StringUtils.isNumeric("12 3") = false
StringUtils.isNumeric("ab2c") = false
StringUtils.isNumeric("12-3") = false
StringUtils.isNumeric("12.3") = false
StringUtils.isNotEmpty(hoge) && StringUtils.isNumeric(hoge)

のようにして、空文字でなくかつ数字として判定するとよさそうです。

関連記事