Не вижу ошибку. Валидатор во втором пункте выдает. Убедись, что метод toDecimal(String) возвращает 0, если на вход получает пустую строку или null.