[monodroid] Prevent a segfault when Java class name is unavailable #5623
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Context: #5619
It appears that Xamarin.Android application uploaded to Google Console
internal Test Track can fail the pre-launch test because the
MonodroidRuntime::get_java_class_name_for_TypeManagermethod, cansometimes get a
nullptrJava class name from JNI:This can happen if either one of the below points is true:
Class.getNamemethod is absent
Class.getNamereturnsnullptr(a nameless class?)env->GetStringUTFCharsreturnsnullptr(a memory allocationfailure?)
Out of these, 3. appears to be most probable and this commit adds a
check for a
nullptrpointer there, failing gracefully instead ofsegfaulting. This is NOT a fix for the original problem as we don't
know by what it is caused but, nevertheless, the
nullptrcheck shouldbe there.