[ 
https://issues.apache.org/jira/browse/MINIFICPP-751?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16783511#comment-16783511
 ] 

Arpad Boda commented on MINIFICPP-751:
--------------------------------------

The immediate release is a good idea, better than the original one I had.

In this case we don't even need a class, just a util function to get the 
std::string using the _env_ and the _jnistring._

Thanks!

> 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
>            Priority: Minor
>
> 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