You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Arpad Boda (JIRA)" <ji...@apache.org> on 2019/03/01 17:44:00 UTC

[jira] [Created] (MINIFICPP-751) Discussion: RAII over JNI UTF strings

Arpad Boda created MINIFICPP-751:
------------------------------------

             Summary: Discussion: RAII over JNI UTF strings
                 Key: MINIFICPP-751
                 URL: https://issues.apache.org/jira/browse/MINIFICPP-751
             Project: NiFi MiNiFi C++
          Issue Type: Improvement
            Reporter: Arpad Boda
            Assignee: Arpad Boda


In this PR #489 I've noticed that JNI UTF string usage is error-prone as releasing can be easily missed by the developer or simply get skipped because of an exception. 

To avoid this my idea was to create a wrapper object that can be used as an std::string and handles get/release calls.

As [~phrocker] pointed out, this object has to be kept in a small block to avoid storing ref on both the string itself and the JNI env. 

This can partly be achieved by blocking copy/move construction/assigment and new, but still leaves some possibility to allocate this object on heap. 

In my opinion the restrictions above with some comments in the class would help and make it safer, although I'm not sure it worth the effort.

 

[~phrocker], [~aldrin], what's your opinion?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)