The X500Principal and X500Name classes exist in separate packages. The JVM expects to be able to convert an instance of one into an instance of the other by using reflection and package-private methods, and this approach is incompatible with the DJVM's sandbox.* package space.
We need both of these classes in order to support CordaX500Name inside the sandbox.
Remove the classes' internal reflective Field and Constructor fields and "stitch" in some DJVM-specific methods to replace them.