I hacked on Kaffe for a while as part of my undergraduate thesis, which explored how modifications to the JVM's classloader and bytecode verifier could allow for a more expressive source language (specifically LOOJ, an extension of Java that adds parametric polymorphism as well as the notions of ThisType, ThisClass, and exact types to Java). The modifications would also allow the JVM to be more easily targeted by a wider range or source language (e.g. ML cannot really target the current JVM spec very well because of the constraints of the JVM's static type system).
I wrote most of a bytecode verifier for Kaffe--enough to test the modifications proposed in my thesis--but never completed it (e.g. it was a little buggy and didn't adequately deal with the asinine bytecode subroutine instruction, JSR). TomTromey wrote a complete verifier for GCJ that we were planning a merging into Kaffe as a replacement.
I currently work for IBM's Internet Technology Group in Cambridge and hope to hack on Harmony as much as I'm able to on the side.