See bug 4462056 regarding JNI Specification problems with weak refs.
It is currently possible to pass a deleted weak reference as an
argument, resulting in the access of a private object internal to
hotspot (call a sentinel). A more appropriate action is desirable,
including a fatal error.
Passing weak refs to most JNI functions should be illegal, and in any
case, is a bad idea. See comments.