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)

Reply via email to