--- old/src/java.desktop/windows/native/libawt/windows/awt_MenuBar.cpp 2015-04-15 16:58:47.415222000 +0300 +++ new/src/java.desktop/windows/native/libawt/windows/awt_MenuBar.cpp 2015-04-15 16:58:46.940222000 +0300 @@ -156,13 +156,16 @@ } jobject menu = env->CallObjectMethod(target, AwtMenuBar::getMenuMID,index); + if (!menu) return NULL; // menu item was removed concurrently DASSERT(!safe_ExceptionOccurred(env)); jobject menuItemPeer = GetPeerForTarget(env, menu); PDATA pData; - JNI_CHECK_PEER_RETURN_NULL(menuItemPeer); + JNI_CHECK_PEER_GOTO(menuItemPeer, done); + AwtMenuItem* awtMenuItem = (AwtMenuItem*)pData; +done: env->DeleteLocalRef(menu); env->DeleteLocalRef(menuItemPeer);