Buggy code:
public final class ActionDispatcher implements IEditStateObserver , IFileStateObserver , ActionListener { private MainFrame mainFrame ; private MMLSeqView mmlSeqView ; private IFileState fileState ; private IEditState editState ; public static final String VIEW_SCALE_UP = "view_scale_up" ; public static final String VIEW_SCALE_DOWN = "view_scale_down" ; public static final String PLAY = "play" ; public static final String STOP = "stop" ; public static final String PAUSE = "pause" ; public static final String FILE_OPEN = "fileOpen" ; public static final String NEW_FILE = "newFile" ; public static final String RELOAD_FILE = "reloadFile" ; public static final String QUIT = "quit" ; public static final String ADD_TRACK = "addTrack" ; public static final String REMOVE_TRACK = "removeTrack" ; public static final String TRACK_PROPERTY = "trackProperty" ; public static final String SET_START_POSITION = "setStartPosition" ; public static final String INPUT_FROM_CLIPBOARD = "inputFromClipboard" ; public static final String OUTPUT_TO_CLIPBOARD = "outputToClipboard" ; public static final String UNDO = "undo" ; public static final String REDO = "redo" ; public static final String SAVE_FILE = "save_file" ; public static final String SAVEAS_FILE = "saveas_file" ; public static final String CUT = "cut" ; public static final String COPY = "copy" ; public static final String PASTE = "paste" ; public static final String DELETE = "delete" ; public static final String SCORE_PROPERTY = "score_property" ; public static final String NEXT_TIME = "next_time" ; public static final String PREV_TIME = "prev_time" ; public static final String PART_CHANGE = "part_change" ; public static final String CHANGE_NOTE_HEIGHT_INT = "change_note_height_" ; public static final String ADD_MEASURE = "add_measure" ; public static final String REMOVE_MEASURE = "remove_measure" ; public static final String ADD_BEAT = "add_beat" ; public static final String REMOVE_BEAT = "remove_beat" ; public static final String NOTE_PROPERTY = "note_property" ; public static final String TRANSPOSE = "transpose" ; public static final String ABOUT = "about" ; public static final String MIDI_EXPORT = "midi_export" ; public static final String FILE_IMPORT = "file_import" ; public static final String CLEAR_DLS = "clear_dls" ; public static final String SELECT_ALL = "select_all" ; public static final String SELECT_PREVIOUS_ALL = "select_previous_all" ; public static final String SELECT_AFTER_ALL = "select_after_all" ; public static final String MML_IMPORT = "mml_import" ; public static final String MML_EXPORT = "mml_export" ; private final HashMap < String , Runnable > actionMap = new HashMap < > ( ) ; private File openedFile = null ; private final FileFilter mmsFilter = new FileNameExtensionFilter ( AppResource . appText ( "file.mms" ) , "mms" ) ; private final FileFilter mmiFilter = new FileNameExtensionFilter ( AppResource . appText ( "file.mmi" ) , "mmi" ) ; private final FileFilter mmlFilter = new FileNameExtensionFilter ( AppResource . appText ( "file.mml" ) , "mml" ) ; private final FileFilter allFilter = new FileNameExtensionFilter ( AppResource . appText ( "file.all" ) , "mmi" , "mms" , "mml" ) ; private final FileFilter midFilter = new FileNameExtensionFilter ( AppResource . appText ( "file.mid" ) , "mid" ) ; private final JFileChooser openFileChooser ; private final JFileChooser saveFileChooser ; private final JFileChooser exportFileChooser ; private static ActionDispatcher instance = null ; public static ActionDispatcher getInstance ( ) { } private ActionDispatcher ( ) { } public ActionDispatcher setMainFrame ( MainFrame mainFrame ) { } public void initialize ( ) { } private void initializeFileChooser ( ) { } private void initializeActionMap ( ) { } @ Override public void actionPerformed ( ActionEvent e ) { } private MMLScore fileParse ( File file ) { } public void checkAndOpenMMLFile ( File file ) { } private void openMMLFile ( File file ) { } public void reloadMMLFileAction ( ) { } private boolean saveMMLFile ( File file ) { } private void newMMLFileAction ( ) { } private void openMMLFileAction ( ) { } private File fileOpenDialog ( ) { } private void saveAsMMLFileAction ( ) { } private File showSaveDialog ( JFileChooser fileChooser , String suffix ) { String recentPath = MabiIccoProperties . getInstance ( ) . getRecentFile ( ) ; if ( ( openedFile ) != null ) { fileChooser . setSelectedFile ( openedFile ) ; } else { fileChooser . setSelectedFile ( null ) ; <START_BUG> fileChooser . setCurrentDirectory ( new File ( new File ( recentPath ) . getParent ( ) ) ) ; <END_BUG> } fileChooser . setAcceptAllFileFilterUsed ( false ) ; int status = fileChooser . showSaveDialog ( mainFrame ) ; if ( status == ( JFileChooser . APPROVE_OPTION ) ) { File file = fileChooser . getSelectedFile ( ) ; if ( ! ( file . toString ( ) . endsWith ( ( "." + suffix ) ) ) ) { file = new File ( ( ( file + "." ) + suffix ) ) ; } status = JOptionPane . YES_OPTION ; if ( file . exists ( ) ) { status = JOptionPane . showConfirmDialog ( mainFrame , AppResource . appText ( "message.override" ) , "" , JOptionPane . YES_NO_OPTION , JOptionPane . QUESTION_MESSAGE ) ; } if ( status == ( JOptionPane . YES_OPTION ) ) { return file ; } } return null ; } private boolean showDialogSaveFile ( ) { } private void midiExportAction ( ) { } private void fileImportAction ( ) { } public void fileImport ( File file ) { } private boolean checkCloseModifiedFileState ( ) { } private boolean isSupportedSaveFile ( ) { } private void scorePropertyAction ( ) { } private void editPasteAction ( ) { } private void pauseAction ( ) { } private void playAction ( ) { } private void clearDLSInformation ( ) { } private void selectAll ( ) { } private void selectPreviousAll ( ) { } private void selectAfterAll ( ) { } private void addMeasure ( ) { } private void addBeat ( ) { } private void removeMeasure ( ) { } private void removeBeat ( ) { } @ Override public void notifyUpdateFileState ( ) { } @ Override public void notifyUpdateEditState ( ) { } }

Fix:
fileChooser . setCurrentDirectory ( new File ( recentPath ) . getParentFile ( ) ) ;