Skip to content

Bump external/Java.Interop from 7b018fe to ce075ce#11157

Closed
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/submodules/external/Java.Interop-ce075ce
Closed

Bump external/Java.Interop from 7b018fe to ce075ce#11157
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/submodules/external/Java.Interop-ce075ce

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot bot commented on behalf of github Apr 20, 2026

Bumps external/Java.Interop from 7b018fe to ce075ce.

Commits

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 commands and options

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)

Bumps [external/Java.Interop](https://github.com/dotnet/java-interop) from `7b018fe` to `ce075ce`.
- [Commits](dotnet/java-interop@7b018fe...ce075ce)

---
updated-dependencies:
- dependency-name: external/Java.Interop
  dependency-version: ce075cefc2d0427fb2162753c84c384268ae58de
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file. submodules Pull requests that update Submodules code labels Apr 20, 2026
@dependabot dependabot bot added dependencies Pull requests that update a dependency file. submodules Pull requests that update Submodules code labels Apr 20, 2026
@jonathanpeppers
Copy link
Copy Markdown
Member

jonathanpeppers commented Apr 20, 2026

CI Crash Analysis

The AZDO build has a crash in the Mono.Android.NET_Tests-CoreCLR test run (test result).

The Crash

JNI DETECTED ERROR IN APPLICATION: illegal class name 'java.lang.Object'
    (should be of the form 'package/Class', [Lpackage/Class;' or '[[B')
    in call to FindClass
    from void crc643df67da7b13bb6b1.TestInstrumentation_1.n_onStart()

This is a SIGABRT (signal 6) on the Instrumentation thread. The ART CheckJNI validator caught a FindClass("java.lang.Object") call using dot-separated notation instead of the required slash-separated JNI form (java/lang/Object).

The managed stack at crash:

Java.Interop.JniType..ctor(String)
Java.InteropTests.JniTypeUtf8Test.Ctor_Utf8_UsesSameFallbackAsStringOverload()

Root Cause

This is the new test added by dotnet/java-interop#1407 itselfCtor_Utf8_UsesSameFallbackAsStringOverload(). It intentionally passes "java.lang.Object" (dot form) to test the fallback path. The fix adds the Class.forName() fallback to the UTF-8 overload so it can resolve dot-separated names just like the string overload does.

However, the raw FindClass call fires first with the dot-form name, and ART's CheckJNI (enabled on userdebug emulators) aborts the process before the fallback can run. The fix in J.I handles the thrown exception from FindClass, but CheckJNI kills the process at the native level before the exception path executes.

/cc @simonrozsival

simonrozsival added a commit to dotnet/java-interop that referenced this pull request Apr 20, 2026
…lass

On Android userdebug emulators with CheckJNI enabled, ART validates
class name format in FindClass at the native level. Passing a
dot-separated name (e.g. "java.lang.Object") causes SIGABRT before
the managed Class.forName() fallback can execute.

Fix by converting '.' to '/' in the class name before calling raw
FindClass, so CheckJNI always sees valid JNI-format names. The
Class.forName() fallback still handles classes not findable by
FindClass (e.g. custom class loaders).

Fixes: dotnet/android#11157 (comment)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
simonrozsival added a commit to dotnet/java-interop that referenced this pull request Apr 20, 2026
…lass

On Android userdebug emulators with CheckJNI enabled, ART validates
class name format in FindClass at the native level. Passing a
dot-separated name (e.g. "java.lang.Object") causes SIGABRT before
the managed Class.forName() fallback can execute.

Fix by converting '.' to '/' in the class name before calling raw
FindClass, so CheckJNI always sees valid JNI-format names. The
Class.forName() fallback still handles classes not findable by
FindClass (e.g. custom class loaders).

Fixes: dotnet/android#11157 (comment)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
simonrozsival added a commit to dotnet/java-interop that referenced this pull request Apr 20, 2026
…lass

On Android userdebug emulators with CheckJNI enabled, ART validates
class name format in FindClass at the native level. Passing a
dot-separated name (e.g. "java.lang.Object") causes SIGABRT before
the managed Class.forName() fallback can execute.

Fix by converting '.' to '/' in the class name before calling raw
FindClass, so CheckJNI always sees valid JNI-format names. The
Class.forName() fallback still handles classes not findable by
FindClass (e.g. custom class loaders).

Fixes: dotnet/android#11157 (comment)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
simonrozsival added a commit to dotnet/java-interop that referenced this pull request Apr 20, 2026
…lass

On Android userdebug emulators with CheckJNI enabled, ART validates
class name format in FindClass at the native level. Passing a
dot-separated name (e.g. "java.lang.Object") causes SIGABRT before
the managed Class.forName() fallback can execute.

Fix by converting '.' to '/' in the class name before calling raw
FindClass, so CheckJNI always sees valid JNI-format names. The
Class.forName() fallback still handles classes not findable by
FindClass (e.g. custom class loaders).

Fixes: dotnet/android#11157 (comment)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
jonathanpeppers pushed a commit to dotnet/java-interop that referenced this pull request Apr 20, 2026
…lass (#1409)

On Android userdebug emulators with CheckJNI enabled, ART validates
class name format in FindClass at the native level. Passing a
dot-separated name (e.g. "java.lang.Object") causes SIGABRT before
the managed Class.forName() fallback can execute.

Fix by converting '.' to '/' in the class name before calling raw
FindClass, so CheckJNI always sees valid JNI-format names. The
Class.forName() fallback still handles classes not findable by
FindClass (e.g. custom class loaders).

Fixes: dotnet/android#11157 (comment)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot bot commented on behalf of github Apr 20, 2026

OK, I won't notify you again about this release, but will get in touch when a new version is available. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot dependabot bot deleted the dependabot/submodules/external/Java.Interop-ce075ce branch April 20, 2026 15:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file. submodules Pull requests that update Submodules code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant