You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Antoine Pitrou (Jira)" <ji...@apache.org> on 2022/04/26 07:46:00 UTC

[jira] [Comment Edited] (ARROW-16329) [Java][C++] Keep more context when marshalling errors through JNI

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

Antoine Pitrou edited comment on ARROW-16329 at 4/26/22 7:45 AM:
-----------------------------------------------------------------

cc [~lidavidm] [~ljw1001]


was (Author: pitrou):
cc [~lidavidm] @larry whi

> [Java][C++] Keep more context when marshalling errors through JNI
> -----------------------------------------------------------------
>
>                 Key: ARROW-16329
>                 URL: https://issues.apache.org/jira/browse/ARROW-16329
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: C++, Java
>            Reporter: Antoine Pitrou
>            Priority: Major
>             Fix For: 9.0.0
>
>
> When errors are propagated through the JNI barrier, two mechanisms are involved:
> * the {{Status CheckException(JNIEnv* env)}} function for Java-to-C++ error translation
> * the {{JniAssertOkOrThrow(arrow::Status status)}} and {{T JniGetOrThrow(arrow::Result<T> result)}} functions for C++-to-Java error translation
> Currently, both mechanisms lose most context about the original error, such as its type and any additional state, such as the optional {{StatusDetail}} in C++ or any properties in Java (which I'm sure exist on some exception classes).
> We should improve these mechanisms to retain as much context as possible. For example, in a hypothetical Java-to-C++-to-Java error propagation scenario, the original Java exception from inner code should ideally be re-thrown in the outer Java context (we already support this in Python btw).



--
This message was sent by Atlassian Jira
(v8.20.7#820007)