Description
I can understand the reason not to put anything extensible but then there is a consistency problem as in the converters:
all converters are final except: DateConverter, SqlDateConverter, SqlTimeConverter, SqlTimestampConverter
which then makes you wonder why the rest is actually final, DateConverter is obviously not final to support inherirtance by the sql* converter, so if we wanted to restrict it, the base class should have been abstract and the other final, but it really does not protect any significant api changes from the client as the code is not so complex that it deserves to do so
For instance I wanted to subclass ZeroPaddingConverter to work around the null support and I realize it's final, so I basically end up copying the whole code.