I've integrated OpenJDK 7u6. The 7u7 security update is not included (as IKVM.NET is not suitable for running untrusted Java code anyway).
One divergence from 7u6 of note is that the new string hashing (used to protect against DoS attacks by intentionally causing hash collisions) has not been implemented. Instead the .NET String.GetHashCode() method is used for the alternative hash code. If DoS protection is required, .NET 4.5 should be used and randomized string hashing should be enabled.
Next stop the release candidate.
- Merged OpenJDK 7u6 b24.
- Add support for running with headless awt toolkit. Fix for #3552089.
- Fix a ClassCastException in printerJob.defaultPage() if the default paper format is not a standard paper format. This can occur with label printer.
- Stop using ConstructorBuilder (always use MethodBuilder).
- Remove usage of AssemblyName.ReferenceMatchesDefinition() because it is broken on .NET and not implemented on Mono.
- Apply custom attribute annotations on annotation types to the corresponding custom attribute that is generated (and allow AttributeUsageAttribute to override the default AttributeUsageAttribute generated from the @Target annotation).
- Fixed InternalsVisibleToAttribute handling to take the public key into account as well.
- Win32 print service fixes.
- Optimized String.valueOf(char).
- Add app.config files for executables to allow them to run on .NET 4.5 on Windows 8 without triggering the .NET 3.5 auto download.
- Fix Window.setIconImages(). Now all images are used. Before only the first image was used.
- Disallow Unsafe.getUnsafe() from being called via reflection (for JDK compatibility).
- Merged in security manager check to Font.createFont(int, File) from OpenJDK.
- IKVM.Reflection: Bug fix. When enumerating virtual methods, we should only skip match actual base methods, not any method with the same signature.
- IKVM.Reflection: Automatically add default constructor when necessary (using the same criteria as Ref.Emit).
- IKVM.Reflection: Added API extension to wrap MethodInfo in a ConstructorInfo.
Binaries available here: ikvmbin-7.2.4626.zip
The stripped OpenJDK 7u6 b24 sources are available here: openjdk-7u6-b24-stripped.zip