Back ported to JDK 7 so I can more easily profile and distribute and use on projects.