Buggy code:
public class GrabKeyDialog extends JDialog { 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 ) ; if ( evt == null ) { if ( ( debugBuffer ) != null ) { debugBuffer . insert ( debugBuffer . getLength ( ) , ( ( "Event<seq2seq4repair_space>" + ( toString ( _evt ) ) ) + "<seq2seq4repair_space>filtered\n" ) ) ; } return ; } else { if ( ( debugBuffer ) != null ) { debugBuffer . insert ( debugBuffer . getLength ( ) , ( ( "Event<seq2seq4repair_space>" + ( toString ( _evt ) ) ) + "<seq2seq4repair_space>passed\n" ) ) ; } } evt . consume ( ) ; StringBuffer keyString = new StringBuffer ( getText ( ) ) ; if ( ( getDocument ( ) . getLength ( ) ) != 0 ) keyString . append ( '<seq2seq4repair_space>' ) ; if ( ( evt . getID ( ) ) == ( KeyEvent . KEY_TYPED ) ) { if ( ( ! ( Character . isLetterOrDigit ( evt . getKeyChar ( ) ) ) ) && ( ! ( Character . isUpperCase ( evt . getKeyChar ( ) ) ) ) ) return ; keyString . append ( evt . getKeyChar ( ) ) ; } else if ( ( evt . getID ( ) ) == ( KeyEvent . KEY_PRESSED ) ) { String modifiers = DefaultInputHandler . getModifierString ( evt ) ; <START_BUG> if ( ( modifiers . length ( ) ) != 0 ) { <END_BUG> keyString . append ( modifiers ) ; keyString . append ( '+' ) ; } int keyCode = evt . getKeyCode ( ) ; if ( ( ( ( keyCode >= ( KeyEvent . VK_A ) ) && ( keyCode <= ( KeyEvent . VK_Z ) ) ) || ( ( keyCode >= ( KeyEvent . VK_0 ) ) && ( keyCode <= ( KeyEvent . VK_9 ) ) ) ) && ( ( modifiers . length ( ) ) == 0 ) ) { return ; } String symbolicName = getSymbolicName ( keyCode ) ; if ( symbolicName == null ) return ; keyString . append ( symbolicName ) ; } else if ( ( evt . getID ( ) ) == ( KeyEvent . KEY_RELEASED ) ) return ; setText ( keyString . toString ( ) ) ; if ( ( debugBuffer ) == null ) updateAssignedTo ( keyString . toString ( ) ) ; } private String toString ( KeyEvent evt ) { } } class ActionHandler implements ActionListener { public void actionPerformed ( ActionEvent evt ) { } private boolean canClose ( ) { } } }

Fix:
if ( ( modifiers != null ) && ( ( modifiers . length ( ) ) != 0 ) ) {