Author: hartmannathan Date: Sun Aug 16 04:39:55 2020 New Revision: 1880886 URL: http://svn.apache.org/viewvc?rev=1880886&view=rev Log: Fix crash in JavaHL JNI wrapper caused by object lifetimes
See dev@ email thread "JNI segfault while running Java tests" started 2020/08/08, archived at: https://lists.apache.org/thread.html/rff3fa5ea97267adf36cc9daa3be01392e53fbc8050a91df4bbac01d8%40%3Cdev.subversion.apache.org%3E https://svn.haxx.se/dev/archive-2020-08/0010.shtml * subversion/bindings/javahl/native/jniwrapper/jni_string_map.hpp (Java::BaseImmutableMap::Entry::key): As the locally-scoped String::Contents object keeps a reference to a String, ensure the String will remain in scope for the lifetime of the String::Contents object by instantiating it as a local variable. Reported by: jamessan Patch by: Daniel Sahlberg <daniel.l.sahlberg {_AT_} gmail.com> Reviewed by: Alexandr Miloslavskiy <alexandr.miloslavskiy {_AT_} syntevo.com> hartmannathan Tested by: jamessan Modified: subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_string_map.hpp Modified: subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_string_map.hpp URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_string_map.hpp?rev=1880886&r1=1880885&r2=1880886&view=diff ============================================================================== --- subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_string_map.hpp (original) +++ subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_string_map.hpp Sun Aug 16 04:39:55 2020 @@ -144,7 +144,8 @@ protected: { const jstring jkey = jstring(m_env.CallObjectMethod(m_jthis, impl().m_mid_get_key)); - const String::Contents key(String(m_env, jkey)); + const String str(m_env, jkey); + const String::Contents key(str); return std::string(key.c_str()); }
