andygrove opened a new issue, #55: URL: https://github.com/apache/datafusion-java/issues/55
Follow-up from PR #46 review ([thread](https://github.com/apache/datafusion-java/pull/46#discussion_r3255172936)). ## Problem When a Java-implemented upcall throws (currently: scalar UDFs via `JniBridge`, but the same will apply to any future upcall — table providers, aggregate UDFs, etc.), the native side surfaces only the exception class name and `getMessage()` via `DataFusionError::Execution`. The Java stack trace is discarded, which makes debugging much harder than necessary. ## Proposal Capture the throwable's stack trace on the JVM side and include it in the error string returned to native code. Make verbosity configurable per `SessionContext` so production callers can opt out — e.g. an enum like `message | full | none`, default `full`. ## Scope Should cover all JVM→native upcall paths, not just scalar UDFs. A shared helper in `org.apache.datafusion.internal.JniBridge` (or a new `JniErrors` utility) that converts a `Throwable` to the configured representation, used wherever upcalls catch exceptions. ## References - pgwhalen's session-configurable approach in his community binding: https://github.com/pgwhalen/datafusion-java/blob/1c20733aa8b008315af6092a912b58ef3df6a482/datafusion-ffi-java/src/main/java/org/apache/arrow/datafusion/config/ConfigOptions.java#L50-L54 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
