- Added accessor methods for "slot" to Method & Constructor.
- Implemented System.setIn0, setOut0, setErr0 in map.xml.
- Hacked sun.misc.SharedSecrets to replace Unsafe.ensureClassInitialize() with direct calls.
- Replaced java.nio.Bits.byteOrder() with simple System.BitConver.IsLittleEndian based implementation.
- Disabled DynamicMethodSupport when running in partial trust.
- Ignore SecurityException in CanonicalizePath.
- Don't trigger load of JNI assembly when "loading" a fake system library.
It turns out that Constructor.newInstance() calls Class.getModifiers() which indirectly uses getWrapperFromClass() and using reflection significantly affected deserialization performance.
- Changed unsafe to use more efficient internal helper class to copy Field and make it accessible (this also reduces initialization order dependencies).
- Fixed race condition in Thread.interrupt() that could cause cli.System.Threading.ThreadInterruptedException to be thrown from interruptable waits/sleep.
- Integrated OpenJDK's java.util.regex package.
- Integrated OpenJDK's java.text.Normalizer and support classes.
- New StringHelper.java based on OpenJDK's String.java.
- More fixes to Reflection.getCallerClass()