Buggy code:
final class Persistence { static final String PACKAGE_BASE = "commands" ; static final String PACKAGE_FULL = "org.eclipse.ui." + ( Persistence . PACKAGE_BASE ) ; static final String TAG_ACTIVE_GESTURE_CONFIGURATION = "activeGestureConfiguration" ; static final String TAG_ACTIVE_KEY_CONFIGURATION = "activeKeyConfiguration" ; static final String TAG_CATEGORY = "category" ; static final String TAG_COMMAND = "command" ; static final String TAG_DESCRIPTION = "description" ; static final String TAG_GESTURE_BINDING = "gestureBinding" ; static final String TAG_GESTURE_CONFIGURATION = "gestureConfiguration" ; static final String TAG_GESTURE_STRING = "gestureString" ; static final String TAG_GESTURE_SEQUENCE = "gestureSequence" ; static final String TAG_GESTURE_STROKE = "gestureStroke" ; static final String TAG_ID = "id" ; static final String TAG_KEY_BINDING = "keyBinding" ; static final String TAG_KEY_CONFIGURATION = "keyConfiguration" ; static final String TAG_KEY_SEQUENCE = "keySequence" ; static final String TAG_KEY_STRING = "keyString" ; static final String TAG_KEY_STROKE = "keyStroke" ; static final String TAG_LOCALE = "locale" ; static final String TAG_NAME = "name" ; static final String TAG_PARENT = "parent" ; static final String TAG_PLATFORM = "platform" ; static final String TAG_PLUGIN = "plugin" ; static final String TAG_SCOPE = "scope" ; static final String TAG_VALUE = "value" ; static final Integer ZERO = new Integer ( 0 ) ; static final GestureSequence ZERO_LENGTH_GESTURE_SEQUENCE = GestureSequence . create ( ) ; static final KeySequence ZERO_LENGTH_KEY_SEQUENCE = KeySequence . create ( ) ; static final String ZERO_LENGTH_STRING = "" ; static ActiveGestureConfiguration readActiveGestureConfiguration ( IMemento memento , String pluginOverride ) throws IllegalArgumentException { } static List readActiveGestureConfigurations ( IMemento memento , String name , String pluginOverride ) throws IllegalArgumentException { } static ActiveKeyConfiguration readActiveKeyConfiguration ( IMemento memento , String pluginOverride ) throws IllegalArgumentException { } static List readActiveKeyConfigurations ( IMemento memento , String name , String pluginOverride ) throws IllegalArgumentException { } static Category readCategory ( IMemento memento , String pluginOverride ) throws IllegalArgumentException { } static List readCategories ( IMemento memento , String name , String pluginOverride ) throws IllegalArgumentException { } static Command readCommand ( IMemento memento , String pluginOverride ) throws IllegalArgumentException { } static List readCommands ( IMemento memento , String name , String pluginOverride ) throws IllegalArgumentException { } static GestureBinding readGestureBinding ( IMemento memento , String pluginOverride , int rank ) throws IllegalArgumentException { } static List readGestureBindings ( IMemento memento , String name , String pluginOverride , int rank ) throws IllegalArgumentException { } static GestureConfiguration readGestureConfiguration ( IMemento memento , String pluginOverride ) throws IllegalArgumentException { } static List readGestureConfigurations ( IMemento memento , String name , String pluginOverride ) throws IllegalArgumentException { } static GestureSequence readGestureSequence ( IMemento memento ) throws IllegalArgumentException { } static GestureStroke readGestureStroke ( IMemento memento ) throws IllegalArgumentException { } static KeyBinding readKeyBinding ( IMemento memento , String pluginOverride , int rank ) throws IllegalArgumentException { if ( memento == null ) throw new IllegalArgumentException ( ) ; String command = memento . getString ( Persistence . TAG_COMMAND ) ; String keyConfiguration = memento . getString ( Persistence . TAG_KEY_CONFIGURATION ) ; if ( keyConfiguration == null ) keyConfiguration = Persistence . ZERO_LENGTH_STRING ; KeySequence keySequence = null ; IMemento mementoKeySequence = memento . getChild ( Persistence . TAG_KEY_SEQUENCE ) ; if ( mementoKeySequence != null ) keySequence = Persistence . readKeySequence ( mementoKeySequence ) ; else { String keyString = memento . getString ( Persistence . TAG_KEY_STRING ) ; if ( keyString != null ) try { <START_BUG> keySequence = KeySequence . parse ( keyString ) ; <END_BUG> } catch ( IllegalArgumentException eIllegalArgument ) { } } if ( keySequence == null ) keySequence = Persistence . ZERO_LENGTH_KEY_SEQUENCE ; String locale = memento . getString ( Persistence . TAG_LOCALE ) ; if ( locale == null ) locale = Persistence . ZERO_LENGTH_STRING ; String platform = memento . getString ( Persistence . TAG_PLATFORM ) ; if ( platform == null ) platform = Persistence . ZERO_LENGTH_STRING ; String plugin = ( pluginOverride != null ) ? pluginOverride : memento . getString ( Persistence . TAG_PLUGIN ) ; String scope = memento . getString ( Persistence . TAG_SCOPE ) ; if ( scope == null ) scope = Persistence . ZERO_LENGTH_STRING ; return KeyBinding . create ( command , keyConfiguration , keySequence , locale , platform , plugin , rank , scope ) ; } static List readKeyBindings ( IMemento memento , String name , String pluginOverride , int rank ) throws IllegalArgumentException { } static KeyConfiguration readKeyConfiguration ( IMemento memento , String pluginOverride ) throws IllegalArgumentException { } static List readKeyConfigurations ( IMemento memento , String name , String pluginOverride ) throws IllegalArgumentException { } static KeySequence readKeySequence ( IMemento memento ) throws IllegalArgumentException { } static KeyStroke readKeyStroke ( IMemento memento ) throws IllegalArgumentException { } static Scope readScope ( IMemento memento , String pluginOverride ) throws IllegalArgumentException { } static List readScopes ( IMemento memento , String name , String pluginOverride ) throws IllegalArgumentException { } static void writeActiveGestureConfiguration ( IMemento memento , ActiveGestureConfiguration activeGestureConfiguration ) throws IllegalArgumentException { } static void writeActiveGestureConfigurations ( IMemento memento , String name , List activeGestureConfigurations ) throws IllegalArgumentException { } static void writeActiveKeyConfiguration ( IMemento memento , ActiveKeyConfiguration activeKeyConfiguration ) throws IllegalArgumentException { } static void writeActiveKeyConfigurations ( IMemento memento , String name , List activeKeyConfigurations ) throws IllegalArgumentException { } static void writeCategory ( IMemento memento , Category category ) throws IllegalArgumentException { } static void writeCategories ( IMemento memento , String name , List categories ) throws IllegalArgumentException { } static void writeCommand ( IMemento memento , Command command ) throws IllegalArgumentException { } static void writeCommands ( IMemento memento , String name , List commands ) throws IllegalArgumentException { } static void writeGestureBinding ( IMemento memento , GestureBinding gestureBinding ) throws IllegalArgumentException { } static void writeGestureBindings ( IMemento memento , String name , List gestureBindings ) throws IllegalArgumentException { } static void writeGestureConfiguration ( IMemento memento , GestureConfiguration gestureConfiguration ) throws IllegalArgumentException { } static void writeGestureConfigurations ( IMemento memento , String name , List gestureConfigurations ) throws IllegalArgumentException { }

Fix:
keySequence = KeySequence . parseKeySequence ( keyString ) ;