Yes, this is new behaviour.

The current implementation is not idempotent. If you call it once passing in an empty string it will convert that to None, but calling a second time will raise an Invalid exception. The same is true if you pass a long value as a string: it fails on the second call. This PR fixes those cases and some others.

I believe that all validators should be idempotent: it shouldn't matter if you call them once or twenty times in a row, you should always get the same result.