Buggy code:
public class GrabKeyDialog extends JDialog { public static String toString ( KeyEvent evt ) { } public GrabKeyDialog ( Dialog parent , GrabKeyDialog . KeyBinding binding , Vector allBindings , Buffer debugBuffer ) { } public GrabKeyDialog ( Frame parent , GrabKeyDialog . KeyBinding binding , Vector allBindings , Buffer debugBuffer ) { } public String getShortcut ( ) { } public boolean isOK ( ) { } public boolean isManagingFocus ( ) { } public boolean getFocusTraversalKeysEnabled ( ) { } protected void processKeyEvent ( KeyEvent evt ) { shortcut . processKeyEvent ( evt ) ; } private GrabKeyDialog . InputPane shortcut ; private JLabel assignedTo ; private JButton ok ; private JButton remove ; private JButton cancel ; private JButton clear ; private boolean isOK ; private GrabKeyDialog . KeyBinding binding ; private Vector allBindings ; private Buffer debugBuffer ; private void init ( GrabKeyDialog . KeyBinding binding , Vector allBindings , Buffer debugBuffer ) { } private String getSymbolicName ( int keyCode ) { } private void updateAssignedTo ( String shortcut ) { } private GrabKeyDialog . KeyBinding getKeyBinding ( String shortcut ) { } public static class KeyBinding { public KeyBinding ( String name , String label , String shortcut , boolean isPrefix ) { } public String name ; public String label ; public String shortcut ; public boolean isPrefix ; public boolean isAssigned ( ) { } } class InputPane extends JTextField { public boolean getFocusTraversalKeysEnabled ( ) { } protected void processKeyEvent ( KeyEvent _evt ) { KeyEvent evt = KeyEventWorkaround . processKeyEvent ( _evt ) ; <START_BUG> if ( KeyEventWorkaround . isModifier ( _evt . getKeyCode ( ) ) ) <END_BUG> evt = null ; if ( ( debugBuffer ) != null ) { debugBuffer . insert ( debugBuffer . getLength ( ) , ( ( "Event<seq2seq4repair_space>" + ( GrabKeyDialog . toString ( _evt ) ) ) + ( evt == null ? "<seq2seq4repair_space>filtered\n" : "<seq2seq4repair_space>passed\n" ) ) ) ; } if ( evt == null ) return ; evt . consume ( ) ; KeyEventTranslator . Key key = KeyEventTranslator . translateKeyEvent ( evt ) ; if ( key == null ) return ; if ( ( debugBuffer ) != null ) { debugBuffer . insert ( debugBuffer . getLength ( ) , ( ( "==><seq2seq4repair_space>Translated<seq2seq4repair_space>to<seq2seq4repair_space>" + key ) + "\n" ) ) ; } StringBuffer keyString = new StringBuffer ( getText ( ) ) ; if ( ( getDocument ( ) . getLength ( ) ) != 0 ) keyString . append ( '<seq2seq4repair_space>' ) ; if ( ( key . modifiers ) != null ) keyString . append ( key . modifiers ) . append ( '+' ) ; if ( ( key . input ) == '<seq2seq4repair_space>' ) keyString . append ( "SPACE" ) ; else if ( ( key . input ) != '' ) keyString . append ( key . input ) ; else { String symbolicName = getSymbolicName ( key . key ) ; if ( symbolicName == null ) return ; keyString . append ( symbolicName ) ; } setText ( keyString . toString ( ) ) ; if ( ( debugBuffer ) == null ) updateAssignedTo ( keyString . toString ( ) ) ; } } class ActionHandler implements ActionListener { public void actionPerformed ( ActionEvent evt ) { } private boolean canClose ( ) { } } }

Fix:
if ( ! ( KeyEventWorkaround . isBindable ( _evt . getKeyCode ( ) ) ) )