Program: 143584
Project: 143584
Buggy source:
public DataComboBox(IApplication application,RuntimeDataCombobox scriptable,IValueList vl){
  super();
  setHorizontalAlignment(SwingConstants.LEFT);
  hackDefaultPopupWidthBehavior();
  this.application=application;
  this.vl=vl;
  eventExecutor=new EventExecutor(this);
  list=new ComboModelListModelWrapper(vl,false,true);
  setModel(list);
  accesibleStateHolder=new AccessibleStateHolder(new AccessibleStateApplier(){
    public void setEditable(    boolean editable){
      DataComboBox.this.setComboEditable(editable);
    }
    public void setEnabled(    boolean enabled){
      if (isEnabled() != enabled) {
        DataComboBox.this.setEnabled(enabled);
      }
    }
    public void setLabelsEnabled(    boolean labelsEnabled){
      if (labels != null) {
        for (int i=0; i < labels.size(); i++) {
          ILabel label=labels.get(i);
          label.setComponentEnabled(labelsEnabled);
        }
      }
    }
  }
);
  setMaximumRowCount(MAXIMUM_ROWS);
  closePopupDocumentListener=new DocumentListener(){
    public void changedUpdate(    DocumentEvent e){
      if (isPopupVisible()) {
        hidePopup();
      }
    }
    public void insertUpdate(    DocumentEvent e){
      if (isPopupVisible()) {
        hidePopup();
      }
    }
    public void removeUpdate(    DocumentEvent e){
      if (isPopupVisible()) {
        hidePopup();
      }
    }
  }
;
  putClientProperty("String_Node_Str","String_Node_Str");
  if (UIManager.getLookAndFeel().getClass().getName().toUpperCase().indexOf("String_Node_Str") < 0) {
    putClientProperty("String_Node_Str",Boolean.TRUE);
  }
  UIManager.put("String_Node_Str",Boolean.TRUE);
  setRenderer(new DividerListCellRenderer(getRenderer()));
  this.scriptable=scriptable;
  Object o=getUI().getAccessibleChild(this,0);
  if (o instanceof ComboPopup) {
    ((ComboPopup)o).getList().setSelectionModel(new DefaultListSelectionModel(){
      @Override public void setSelectionInterval(      int index0,      int index1){
        int leftInd=index0;
        int rightInd=index1;
        if (isNavigationKeyOn) {
          Object x=getListModelWrapper().get(index0);
          if (x == IValueList.SEPARATOR) {
            int index=getMinSelectionIndex();
            if (index < index0) {
              leftInd++;
              rightInd++;
            }
 else {
              leftInd--;
              rightInd--;
            }
          }
        }
        super.setSelectionInterval(leftInd,rightInd);
      }
    }
);
  }
  navigationKeyListener=new KeyAdapter(){
    @Override public void keyPressed(    KeyEvent e){
      isNavigationKeyOn=e.getKeyCode() == KeyEvent.VK_UP || e.getKeyCode() == KeyEvent.VK_DOWN;
    }
    @Override public void keyReleased(    KeyEvent e){
      isNavigationKeyOn=false;
    }
  }
;
  addKeyListener(navigationKeyListener);
}

Fixed version (ground truth):
public DataComboBox(IApplication application,RuntimeDataCombobox scriptable,IValueList vl){
  super();
  setHorizontalAlignment(SwingConstants.LEFT);
  hackDefaultPopupWidthBehavior();
  this.application=application;
  this.vl=vl;
  eventExecutor=new EventExecutor(this);
  list=new ComboModelListModelWrapper(vl,false,true);
  setModel(list);
  accesibleStateHolder=new AccessibleStateHolder(new AccessibleStateApplier(){
    public void setEditable(    boolean editable){
      DataComboBox.this.setComboEditable(editable);
    }
    public void setEnabled(    boolean enabled){
      if (isEnabled() != enabled) {
        DataComboBox.this.setEnabled(enabled);
      }
    }
    public void setLabelsEnabled(    boolean labelsEnabled){
      if (labels != null) {
        for (int i=0; i < labels.size(); i++) {
          ILabel label=labels.get(i);
          label.setComponentEnabled(labelsEnabled);
        }
      }
    }
  }
);
  setMaximumRowCount(MAXIMUM_ROWS);
  closePopupDocumentListener=new DocumentListener(){
    public void changedUpdate(    DocumentEvent e){
      if (isPopupVisible()) {
        hidePopup();
      }
    }
    public void insertUpdate(    DocumentEvent e){
      if (isPopupVisible()) {
        hidePopup();
      }
    }
    public void removeUpdate(    DocumentEvent e){
      if (isPopupVisible()) {
        hidePopup();
      }
    }
  }
;
  putClientProperty("String_Node_Str","String_Node_Str");
  if (UIManager.getLookAndFeel().getClass().getName().toUpperCase().indexOf("String_Node_Str") < 0) {
    putClientProperty("String_Node_Str",Boolean.TRUE);
  }
  UIManager.put("String_Node_Str",Boolean.TRUE);
  setRenderer(new DividerListCellRenderer(getRenderer()));
  this.scriptable=scriptable;
  Object o=getUI().getAccessibleChild(this,0);
  if (o instanceof ComboPopup) {
    ((ComboPopup)o).getList().setSelectionModel(new DefaultListSelectionModel(){
      @Override public void setSelectionInterval(      int index0,      int index1){
        int leftInd=index0;
        int rightInd=index1;
        Object x=getListModelWrapper().get(index0);
        if (x == IValueList.SEPARATOR) {
          if (lastPopupHighlightRequested != index0) {
            int index=getMinSelectionIndex();
            if (index < index0) {
              leftInd++;
              rightInd++;
            }
 else {
              leftInd--;
              rightInd--;
            }
            super.setSelectionInterval(leftInd,rightInd);
          }
        }
 else         super.setSelectionInterval(leftInd,rightInd);
        lastPopupHighlightRequested=index0;
      }
    }
);
  }
  AbstractAction navigatingViaKeyboardAction=new AbstractAction(){
    public void actionPerformed(    ActionEvent e){
      lastPopupHighlightRequested=-1;
    }
  }
;
  prependKeyPressAction(WHEN_ANCESTOR_OF_FOCUSED_COMPONENT,KeyStroke.getKeyStroke(KeyEvent.VK_UP,0),"String_Node_Str",navigatingViaKeyboardAction);
  prependKeyPressAction(WHEN_ANCESTOR_OF_FOCUSED_COMPONENT,KeyStroke.getKeyStroke(KeyEvent.VK_DOWN,0),"String_Node_Str",navigatingViaKeyboardAction);
}