>>>>> "Stuart" == Stuart Ballard <stuart.a.ballard@xxxxxxxxx> writes: Stuart> Suppose somebody compiles code like this against the JDK: Stuart> DataTypeFactory dft = (DataTypeFactory) Stuart> Class.forName(DatatypeFactory.DATATYPEFACTORY_IMPLEMENTATION_CLASS); Stuart> I don't know *how* this problem should be solved. Clearly my opinion Stuart> is that Sun screwed up bigtime by putting this into a constant field. Yeah, this is a mistake. We can "fix" this by changing our constant's value and then simply ignoring it later on in newInstance. I don't think there's any valid way to replace com.sun.* classes, and this code (in theory -- our implementation is incomplete, I filed a PR) uses the service factory stuff to find replacement implementations anyway. Tom