Inside CustomClassMapper in method deserializeToClass(Object obj, Class<T> clazz), the conditional statement wrongly assumes the value is of primitive type if Number.class.isAssignableFrom(clazz).
BigDecimal returns true but is not primitive, and throws an IllegalArgumentException in deserializeToPrimitive(Object obj, Class<T> clazz)