From 96fcd9e591132d19c5428cde3b161fa066c19d83 Mon Sep 17 00:00:00 2001 From: Dmitry Drobotov Date: Fri, 7 Nov 2025 12:39:13 +0100 Subject: [PATCH] JBR-9580 Fix crash in [MenuAccessibility accessibilityChildren] * Add null checks for variables that can have null values to prevent hard crash * Add missing CHECK_EXCEPTION after JNI call * Add missing DeleteLocalRef for axComponent --- .../native/libawt_lwawt/awt/a11y/MenuAccessibility.m | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/java.desktop/macosx/native/libawt_lwawt/awt/a11y/MenuAccessibility.m b/src/java.desktop/macosx/native/libawt_lwawt/awt/a11y/MenuAccessibility.m index c29ab8df49b4..5feb77c0c6ce 100644 --- a/src/java.desktop/macosx/native/libawt_lwawt/awt/a11y/MenuAccessibility.m +++ b/src/java.desktop/macosx/native/libawt_lwawt/awt/a11y/MenuAccessibility.m @@ -67,9 +67,17 @@ static jclass sjc_CAccessibility = NULL; jobject axComponent = (*env)->CallStaticObjectMethod(env, sjc_CAccessibility, sjm_getCurrentAccessiblePopupMenu, fAccessible, fComponent); + CHECK_EXCEPTION(); + if (axComponent == NULL) { + return nil; + } CommonComponentAccessibility *currentElement = [CommonComponentAccessibility createWithAccessible:axComponent withEnv:env withView:self->fView isCurrent:YES]; + (*env)->DeleteLocalRef(env, axComponent); + if (currentElement == nil) { + return nil; + } NSArray *children = [CommonComponentAccessibility childrenOfParent:currentElement withEnv:env