We have JNI global and weak, and VM weak OopStorage objects. The VM weak storage is separate from JNI to reduce the likelihood of simple JNI handle management bugs leading to corruption of VM data structures. There is currently not a similar strong storage object for miscellaneous usage by the VM. That's only because at the time the others were added we didn't have an obvious immediate need for such, and the intent was to add it when such a need was identified. We now have a conditionally defined JVMCI storage object. That really should have been the use-case that triggered the addition of a VM global storage object. There are also some uses of JNI globals in the VM that might instead belong in a VM global storage.