What happens when you try to instantiate an abstract class or interface? The spec only says it isn't allowed, but it doesn't define what happens. IMHO, the spec should be clarified here (and the implementation can use some fixing too, currently it throws a NullPointerException, hardly intuitive).
Regards, Jeroen