thisとthisによると、JNI内のオブジェクトへのGlobalReferenceは、オブジェクトとすべてのサブフィールドへの参照を保持します。そして、それは手動で速やかに解放しないことがメモリリークです。JNIのGlobalReferencesは、GCによるオブジェクトのクリーンアップを防止しますか?
明確に記載されていないのは、グローバル参照によってオブジェクトがGC化されないか、リークが参照自体に含まれている場合です。言い換えれば、私は、GlobalReferenceがJavaの空間で余分なリファレンスを持っているか、オブジェクトがGCされている可能性があるが、リークが参照オブジェクト自体
弱いグローバルな参照が存在するので、ドキュメントによってGC元のオブジェクトが死んでしまうので、私は前者だと思う傾向がありますが、私は安全な側にいるように頼むことにしました。
あなたはJNI仕様のコンサルティングを検討しましたか? – EJP
http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/functions.html#global_localでは、実際に何が行われたか明確には説明していません。 – Panayotis
グローバル参照は、紛失した場合にのみリークします。 –