Program: 44974
Project: 44974
Buggy source:
public void keyPressed(KeyEvent e){
  if (mainFrame.getNoEventsMode())   return;
  char keyChar=e.getKeyChar();
  if (!isActive()) {
    if ((e.getModifiers() & (KeyEvent.ALT_DOWN_MASK | KeyEvent.CTRL_DOWN_MASK | KeyEvent.META_DOWN_MASK)) != 0 || keyChar < 32 || keyChar == 127 || !Character.isDefined(keyChar))     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) {
    cancel();
  }
 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 ((e.getModifiers() & (KeyEvent.ALT_DOWN_MASK | KeyEvent.CTRL_DOWN_MASK | KeyEvent.META_DOWN_MASK)) == 0 && keyChar >= 32 && keyChar != 127 && Character.isDefined(keyChar)) {
    searchString+=keyChar;
    FileTable.this.repaint();
    findMatch(0,true,true);
  }
 else {
    Class muActionClass=ActionKeymap.getRegisteredActionClassForKeystroke(KeyStroke.getKeyStrokeForEvent(e));
    if (muActionClass != null) {
      e.consume();
      cancel();
      ActionManager.getActionInstance(muActionClass,mainFrame).performAction();
    }
    return;
  }
  lastSearchStringChange=System.currentTimeMillis();
}

Fixed version (ground truth):
public 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) {
    cancel();
  }
 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 {
    Class muActionClass=ActionKeymap.getRegisteredActionClassForKeystroke(KeyStroke.getKeyStrokeForEvent(e));
    if (muActionClass != null) {
      e.consume();
      cancel();
      ActionManager.getActionInstance(muActionClass,mainFrame).performAction();
    }
    return;
  }
  lastSearchStringChange=System.currentTimeMillis();
}