Program: 193615
Project: 193615
Buggy source:
@Override public void onItemHovered(MenuBuilder menu,int position){
  int menuIndex=-1;
  for (int i=0; i < mListViews.size(); i++) {
    final MenuDropDownListView view=(MenuDropDownListView)mListViews.get(i);
    final MenuAdapter adapter=(MenuAdapter)view.getAdapter();
    if (adapter.getAdapterMenu() == menu) {
      menuIndex=i;
      break;
    }
  }
  if (menuIndex == -1) {
    return;
  }
  final MenuDropDownListView view=(MenuDropDownListView)mListViews.get(menuIndex);
  final ListMenuItemView selectedItemView=(ListMenuItemView)view.getSelectedView();
  if (selectedItemView != null && selectedItemView.isEnabled() && selectedItemView.getItemData().hasSubMenu()) {
    mSubMenuHoverHandler.removeCallbacksAndMessages(null);
    mSubMenuHoverHandler.postDelayed(new Runnable(){
      @Override public void run(){
        if (view.getSelectedView() == selectedItemView && selectedItemView.isEnabled() && selectedItemView.getItemData().hasSubMenu()) {
          int nextIndex=mListViews.indexOf(view) + 1;
          if (nextIndex < mListViews.size()) {
            MenuAdapter nextSubMenuAdapter=(MenuAdapter)mListViews.get(nextIndex).getAdapter();
            mPopupWindows.get(nextIndex).setExitTransition(null);
            nextSubMenuAdapter.getAdapterMenu().close();
          }
          view.performItemClick(selectedItemView,view.getSelectedItemPosition(),view.getSelectedItemId());
        }
      }
    }
,SUBMENU_TIMEOUT_MS);
  }
 else   if (menuIndex + 1 < mListViews.size()) {
    final MenuDropDownListView nextView=(MenuDropDownListView)mListViews.get(menuIndex + 1);
    final MenuAdapter nextAdapter=(MenuAdapter)nextView.getAdapter();
    view.clearSelection();
    mSubMenuHoverHandler.removeCallbacksAndMessages(null);
    mSubMenuHoverHandler.postDelayed(new Runnable(){
      @Override public void run(){
        int nextMenuIndex=mListViews.indexOf(nextView);
        if (nextMenuIndex != -1 && nextView.getSelectedView() == null) {
          mPopupWindows.get(nextMenuIndex).setExitTransition(null);
          nextAdapter.getAdapterMenu().close();
        }
      }
    }
,SUBMENU_TIMEOUT_MS);
  }
}

Fixed version (ground truth):
@Override public void onItemHovered(MenuBuilder menu,int position){
  int menuIndex=-1;
  for (int i=0; i < mListViews.size(); i++) {
    final MenuDropDownListView view=(MenuDropDownListView)mListViews.get(i);
    final MenuAdapter adapter=(MenuAdapter)view.getAdapter();
    if (adapter.getAdapterMenu() == menu) {
      menuIndex=i;
      break;
    }
  }
  if (menuIndex == -1) {
    return;
  }
  final MenuDropDownListView view=(MenuDropDownListView)mListViews.get(menuIndex);
  final ListMenuItemView selectedItemView=(ListMenuItemView)view.getSelectedView();
  if (selectedItemView != null && selectedItemView.isEnabled() && selectedItemView.getItemData().hasSubMenu()) {
    mSubMenuHoverHandler.removeCallbacksAndMessages(null);
    mSubMenuHoverHandler.postDelayed(new Runnable(){
      @Override public void run(){
        if (view.getSelectedView() == selectedItemView && selectedItemView.isEnabled() && selectedItemView.getItemData().hasSubMenu()) {
          int nextIndex=mListViews.indexOf(view) + 1;
          if (nextIndex < mListViews.size()) {
            MenuAdapter nextSubMenuAdapter=(MenuAdapter)mListViews.get(nextIndex).getAdapter();
            mPopupWindows.get(nextIndex).setExitTransition(null);
            nextSubMenuAdapter.getAdapterMenu().close();
          }
          view.performItemClick(selectedItemView,view.getSelectedItemPosition(),view.getSelectedItemId());
        }
      }
    }
,SUBMENU_TIMEOUT_MS);
  }
 else   if (menuIndex + 1 < mListViews.size()) {
    final MenuDropDownListView nextView=(MenuDropDownListView)mListViews.get(menuIndex + 1);
    final MenuAdapter nextAdapter=(MenuAdapter)nextView.getAdapter();
    mSubMenuHoverHandler.removeCallbacksAndMessages(null);
    mSubMenuHoverHandler.postDelayed(new Runnable(){
      @Override public void run(){
        int nextMenuIndex=mListViews.indexOf(nextView);
        if (nextMenuIndex != -1 && nextView.getSelectedView() == null) {
          for (int i=nextMenuIndex; i < mPopupWindows.size(); i++) {
            final MenuPopupWindow popupWindow=mPopupWindows.get(i);
            popupWindow.setExitTransition(null);
            popupWindow.setAnimationStyle(0);
          }
          nextAdapter.getAdapterMenu().close();
        }
      }
    }
,SUBMENU_TIMEOUT_MS);
  }
}