Program: 44858
Project: 44858
Buggy source:
public synchronized void keyPressed(KeyEvent e){
  if (mainFrame.getNoEventsMode())   return;
  char keyChar=e.getKeyChar();
  if (!isActive()) {
    if (!isValidQuickSearchInput(e))     return;
    if (ActionKeymap.isKeyStrokeRegistered(KeyStroke.getKeyStrokeForEvent(e)))     return;
    start();
  }
  int keyCode=e.getKeyCode();
  if (keyCode == KeyEvent.VK_BACK_SPACE) {
    int searchStringLen=searchString.length();
    if (searchStringLen == 0)     return;
    searchString=searchString.substring(0,searchStringLen - 1);
    if (searchString.length() != 0)     FileTable.this.repaint();
    findMatch(0,true,true);
  }
 else   if (keyCode == KeyEvent.VK_ESCAPE) {
    stop();
  }
 else   if (keyCode == KeyEvent.VK_UP || keyCode == KeyEvent.VK_DOWN) {
    if (e.isShiftDown()) {
      if (!isParentFolderSelected())       setRowMarked(currentRow,!tableModel.isRowMarked(currentRow));
    }
    if (keyCode == KeyEvent.VK_UP)     findMatch(currentRow - 1,false,false);
 else     findMatch(currentRow + 1,true,false);
  }
 else   if (isValidQuickSearchInput(e)) {
    searchString+=keyChar;
    FileTable.this.repaint();
    findMatch(0,true,true);
  }
 else {
    String muActionId=ActionKeymap.getRegisteredActionIdForKeystroke(KeyStroke.getKeyStrokeForEvent(e));
    if (muActionId != null) {
      e.consume();
      stop();
      ActionManager.getActionInstance(muActionId,mainFrame).performAction();
    }
    return;
  }
  lastSearchStringChange=System.currentTimeMillis();
}

Fixed version (ground truth):
public synchronized void keyPressed(KeyEvent e){
  if (mainFrame.getNoEventsMode())   return;
  char keyChar=e.getKeyChar();
  if (!isActive()) {
    if (!isValidQuickSearchInput(e))     return;
    if (ActionKeymap.isKeyStrokeRegistered(KeyStroke.getKeyStrokeForEvent(e)))     return;
    start();
  }
  int keyCode=e.getKeyCode();
  boolean keyHasModifiers=(e.getModifiersEx() & (KeyEvent.SHIFT_DOWN_MASK | KeyEvent.ALT_DOWN_MASK | KeyEvent.CTRL_DOWN_MASK| KeyEvent.META_DOWN_MASK)) != 0;
  if (keyCode == KeyEvent.VK_BACK_SPACE && !keyHasModifiers) {
    int searchStringLen=searchString.length();
    if (searchStringLen == 0)     return;
    searchString=searchString.substring(0,searchStringLen - 1);
    if (searchString.length() != 0)     FileTable.this.repaint();
    findMatch(0,true,true);
  }
 else   if (keyCode == KeyEvent.VK_ESCAPE && !keyHasModifiers) {
    stop();
  }
 else   if ((keyCode == KeyEvent.VK_UP || keyCode == KeyEvent.VK_DOWN) && !keyHasModifiers) {
    if (keyCode == KeyEvent.VK_UP)     findMatch(currentRow - 1,false,false);
 else     findMatch(currentRow + 1,true,false);
  }
 else   if (ActionManager.getActionInstance(MarkSelectedFileAction.Descriptor.ACTION_ID,mainFrame).isAccelerator(KeyStroke.getKeyStrokeForEvent(e)) || ActionManager.getActionInstance(MarkNextRowAction.Descriptor.ACTION_ID,mainFrame).isAccelerator(KeyStroke.getKeyStrokeForEvent(e))) {
    if (!isParentFolderSelected())     setRowMarked(currentRow,!tableModel.isRowMarked(currentRow));
    findMatch(currentRow + 1,true,false);
  }
 else   if (ActionManager.getActionInstance(MarkPreviousRowAction.Descriptor.ACTION_ID,mainFrame).isAccelerator(KeyStroke.getKeyStrokeForEvent(e))) {
    if (!isParentFolderSelected())     setRowMarked(currentRow,!tableModel.isRowMarked(currentRow));
    findMatch(currentRow - 1,false,false);
  }
 else   if (isValidQuickSearchInput(e)) {
    searchString+=keyChar;
    FileTable.this.repaint();
    findMatch(0,true,true);
  }
 else {
    String muActionId=ActionKeymap.getRegisteredActionIdForKeystroke(KeyStroke.getKeyStrokeForEvent(e));
    if (muActionId != null) {
      e.consume();
      stop();
      ActionManager.getActionInstance(muActionId,mainFrame).performAction();
    }
    return;
  }
  lastSearchStringChange=System.currentTimeMillis();
}