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


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1880886 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/subversion/bindings/javahl/native/jniwrapper/jni_string_map.hpp b/subversion/bindings/javahl/native/jniwrapper/jni_string_map.hpp
index db05e28..3d6b588 100644
--- a/subversion/bindings/javahl/native/jniwrapper/jni_string_map.hpp
+++ b/subversion/bindings/javahl/native/jniwrapper/jni_string_map.hpp
@@ -144,7 +144,8 @@
       {
         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());
       }