dependabot[bot] opened a new pull request, #3569: URL: https://github.com/apache/datafusion-comet/pull/3569
Bumps [jni](https://github.com/jni-rs/jni-rs) from 0.21.1 to 0.22.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/jni-rs/jni-rs/releases">jni's releases</a>.</em></p> <blockquote> <h2>Release JNI 0.22.1</h2> <p>This release fixes several issues found shortly after releasing 0.22.0 which unfortunately required a few breaking changes.</p> <p>Instead of bumping to 0.23 though, the assumption :crossed_fingers: is that no one will yet be depending on the recently-released 0.22.0 and so we can yank that and have this represent the first 0.22.x release.</p> <p>In particular this addresses the following issues:</p> <ul> <li>[Don't allow JNI calls with pending exceptions (undefined behaviour) <a href="https://redirect.github.com/jni-rs/jni-rs/issues/731">#731</a>](<a href="https://redirect.github.com/jni-rs/jni-rs/issues/731">jni-rs/jni-rs#731</a>)</li> <li>[JavaVM::attach_current_thread* should catch + clear exceptions <a href="https://redirect.github.com/jni-rs/jni-rs/issues/732">#732</a>](<a href="https://redirect.github.com/jni-rs/jni-rs/issues/732">jni-rs/jni-rs#732</a>)</li> <li>[Env::throw* APIs should return Err(Error::JavaException) <a href="https://redirect.github.com/jni-rs/jni-rs/issues/737">#737</a>](<a href="https://redirect.github.com/jni-rs/jni-rs/issues/737">jni-rs/jni-rs#737</a>)</li> </ul> <h3>Added</h3> <ul> <li><code>Env::exception_catch</code> provides a convenient way of catching pending Java exceptions and mapping them to <code>Error::CaughtJavaException</code> (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/736">#736</a>)</li> <li><code>AttachGuard::detach_with_catch</code> lets you explicitly detach/drop a guard (like <code>::detach()</code>) and catch any pending Java exception as a <code>Error::CaughtJavaException</code> (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/736">#736</a>).</li> <li><code>JClass::get_name</code> lets you query the binary name for a class, such as <code>java.lang.String</code> (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/736">#736</a>)</li> </ul> <h4>Changed</h4> <p>The following APIs have had to be made fallible again, in order to safely check for pending exceptions before calling JNI functions that are not documented as being safe to call with a pending exception:</p> <ul> <li><code>Env::get_java_vm</code> (<code>GetJavaVM</code> is not exception safe)</li> <li><code>Env::version</code> (<code>GetVersion</code> is not exception safe)</li> <li><code>Env::is_same_object</code> (<code>IsSameObject</code> is not exception safe)</li> <li><code>Weak::is_garbage_collected</code> (based on <code>Env::is_same_object</code>)</li> <li><code>Weak::is_same_object</code> (deprecated) and (based on <code>Env::is_same_object</code>)</li> <li><code>Weak::is_weak_ref_to_same_object (deprecated)</code> (based on <code>Env::is_same_object</code>)</li> </ul> <p><em><em>Note:</em> These are a breaking change.</em></p> <p>Fixed in <a href="https://redirect.github.com/jni-rs/jni-rs/issues/733">#733</a></p> <ul> <li><code>JavaVM::attach_current_thread*</code> APIs all finish by calling <code>AttachGuard::detach_with_catch</code> to clear pending Java exceptions - mapping to <code>Error::CaughtJavaException</code> (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/736">#736</a>)</li> <li><code>Env::throw*</code> APIs now return <code>Error::JavaException</code> after throwing and creating a pending exception that must be handled before using JNI further (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/738">#738</a>)</li> </ul> <h2>Release JNI 0.22.0</h2> <p>The 0.22 release significantly improves safety and ergonomics through changes to thread attachment, environment handling, and the addition of compile-time macros for JNI strings, signatures as well as full Java type bindings.</p> <p>Please see the <a href="https://github.com/jni-rs/jni-rs/blob/master/crates/jni/docs/0.22-MIGRATION.md">jni 0.22 Migration Guide</a> for guidance on how to update from jni 0.21</p> <h3>Added</h3> <h4>JavaVM / Thread Attachment APIs</h4> <ul> <li><code>JavaVM::singleton()</code> lets you acquire the <code>JavaVM</code> for the process when you know that the <code>JavaVM</code> singleton has been initialized (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/595">#595</a>)</li> <li><code>JavaVM::is_thread_attached</code> can query whether the current thread is attached to the Java VM (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/570">#570</a>)</li> <li><code>AttachGuard::from_unowned</code> added as a low-level (unsafe) way to represent a thread attachment with a raw <code>jni_sys::Env</code> pointer (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/570">#570</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/jni-rs/jni-rs/blob/master/CHANGELOG.md">jni's changelog</a>.</em></p> <blockquote> <h2>[0.22.1] — 2026-02-20</h2> <p><em>Note:</em> This release fixes several issues found in 0.22.0 which unfortunately required a few breaking changes. Instead of bumping to 0.23 though, the assumption is that no one will yet be depending on the recently-released 0.22.0 and so we can yank that and have this represent the first 0.22.x release.</p> <h3>Added</h3> <ul> <li><code>Env::exception_catch</code> provides a convenient way of catching pending Java exceptions and mapping them to <code>Error::CaughtJavaException</code> (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/736">#736</a>)</li> <li><code>AttachGuard::detach_with_catch</code> lets you explicitly detach/drop a guard (like <code>::detach()</code>) and catch any pending Java exception as a <code>Error::CaughtJavaException</code> (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/736">#736</a>).</li> <li><code>JClass::get_name</code> lets you query the binary name for a class, such as <code>java.lang.String</code> (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/736">#736</a>)</li> </ul> <h4>Changed</h4> <p>The following APIs have had to be made fallible again, in order to safely check for pending exceptions before calling JNI functions that are not documented as being safe to call with a pending exception:</p> <ul> <li><code>Env::get_java_vm</code> (<code>GetJavaVM</code> is not exception safe)</li> <li><code>Env::version</code> (<code>GetVersion</code> is not exception safe)</li> <li><code>Env::is_same_object</code> (<code>IsSameObject</code> is not exception safe)</li> <li><code>Weak::is_garbage_collected</code> (based on <code>Env::is_same_object</code>)</li> <li><code>Weak::is_same_object</code> (deprecated) and (based on <code>Env::is_same_object</code>)</li> <li><code>Weak::is_weak_ref_to_same_object (deprecated)</code> (based on <code>Env::is_same_object</code>)</li> </ul> <p><em><em>Note:</em> These are a breaking change.</em></p> <p>Fixed in <a href="https://redirect.github.com/jni-rs/jni-rs/issues/733">#733</a></p> <ul> <li><code>JavaVM::attach_current_thread*</code> APIs all finish by calling <code>AttachGuard::detach_with_catch</code> to clear pending Java exceptions - mapping to <code>Error::CaughtJavaException</code> (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/736">#736</a>)</li> <li><code>Env::throw*</code> APIs now return <code>Error::JavaException</code> after throwing and creating a pending exception that must be handled before using JNI further (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/738">#738</a>)</li> </ul> <h2>[0.22.0] — 2026-02-17 (YANKED)</h2> <h3>Added</h3> <h4>JavaVM / Thread Attachment APIs</h4> <ul> <li><code>JavaVM::singleton()</code> lets you acquire the <code>JavaVM</code> for the process when you know that the <code>JavaVM</code> singleton has been initialized (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/595">#595</a>)</li> <li><code>JavaVM::is_thread_attached</code> can query whether the current thread is attached to the Java VM (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/570">#570</a>)</li> <li><code>AttachGuard::from_unowned</code> added as a low-level (unsafe) way to represent a thread attachment with a raw <code>jni_sys::Env</code> pointer (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/570">#570</a>)</li> <li><code>AttachConfig</code> exposes fine-grained control over thread attachment including <code>Thread</code> name, <code>ThreadGroup</code> and whether scoped or permanent. (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/606">#606</a>)</li> <li><code>JavaVM::attach_current_thread_guard</code> is a low-level (unsafe) building block for attaching threads that exposes the <code>AttachGuard</code> and <code>AttachConfig</code> control. (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/606">#606</a>)</li> <li><code>JavaVM::attach_current_thread_with_config</code> is a safe building block for attaching threads that hides the <code>AttachGuard</code> but exposes <code>AttachConfig</code> control. (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/606">#606</a>)</li> <li><code>JavaVM::with_local_frame</code> added as method to borrow a <code>Env</code> that is already attached to the current thread, after pushing a new JNI stack frame (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/570">#570</a>, <a href="https://redirect.github.com/jni-rs/jni-rs/pull/673">#673</a>)</li> <li><code>JavaVM::with_top_local_frame_frame</code> added to borrow a <code>Env</code> for the top JNI stack frame (i.e. without pushing a new JNI stack frame) (<a href="https://redirect.github.com/jni-rs/jni-rs/pull/570">#570</a>, <a href="https://redirect.github.com/jni-rs/jni-rs/pull/673">#673</a>)</li> </ul> <h4>Reference Type APIs</h4> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/jni-rs/jni-rs/commit/568568e5c9dc01c490745b49184e30173e85897d"><code>568568e</code></a> Release 0.22.1 (take 2)</li> <li><a href="https://github.com/jni-rs/jni-rs/commit/c73ab9762c350151d77e430dc007429f67c9ac85"><code>c73ab97</code></a> Release jni 0.22.1</li> <li><a href="https://github.com/jni-rs/jni-rs/commit/078a9d4fe05ca8568e5be7661edfbc19cbca12a1"><code>078a9d4</code></a> Have <code>Env::throw*</code> APIs return Error::JavaException</li> <li><a href="https://github.com/jni-rs/jni-rs/commit/655e2f46e85ae06ac9bf451b2d0dd9c3bd242d2c"><code>655e2f4</code></a> Catch exceptions after running attachment closures</li> <li><a href="https://github.com/jni-rs/jni-rs/commit/c4c025d6528eb1452b8dab1083484808089d8fad"><code>c4c025d</code></a> Call ExceptionCheck before any non-exception-safe JNI calls</li> <li><a href="https://github.com/jni-rs/jni-rs/commit/9290db28d9f34ece1bbc49000ba564284aaabfc0"><code>9290db2</code></a> Fix crates/jni/mylib-example</li> <li><a href="https://github.com/jni-rs/jni-rs/commit/779a9b419ac4b7f1be90d67d1ccb6cce0f84a8af"><code>779a9b4</code></a> Release jni 0.22</li> <li><a href="https://github.com/jni-rs/jni-rs/commit/7801d19eae90a2833f471e3130ed6c2a0a9c2769"><code>7801d19</code></a> Inline assert_top checks</li> <li><a href="https://github.com/jni-rs/jni-rs/commit/023aa582188eecac351600e889a19025b1e2f491"><code>023aa58</code></a> cargo publish --dry-run fixes</li> <li><a href="https://github.com/jni-rs/jni-rs/commit/71875bab3da0cbfd515a77b1a0e47ffc3423fffe"><code>71875ba</code></a> env: fix load_class example</li> <li>Additional commits viewable in <a href="https://github.com/jni-rs/jni-rs/compare/v0.21.1...v0.22.1">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> -- 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]
