The specification for JNI_GetCreatedJavaVMs does not make it clear whether the nVMs parameter can be passed as NULL. HotSpot allows it to be NULL, apparently J9 does not. As HotSpot (and possibly other VMs) allow the parameter be NULL then it would be compatibility issue to disallow it now (could break eixsting code). Although the spec should make it clear that NULL is allowed, it should also include a warning that passing NULL should be discouraged as otherwise the user of the function has no way to know if JavaVM* is valid or not.
In addition JNI_GetCreatedJavaVMs is not completely clear how it should behave when there isn't a VM running. Developers may wonder if it will return JNI_ERR or some other error, or whether it will return JNI_OK with *nVMs set to 0.
More information can be found in this thread on OpenJDK:
http://mail.openjdk.java.net/pipermail/core-libs-dev/2012-May/010133.html