Using "internalSet" instead of normal setter can avoid checking int param, because if constants.asNumber() works as expected and does't throw exception, the param checking in normal setter will never fail. Issue: SPR-16809