@@ -524,19 +524,21 @@ private void saveDatabase(BibDatabase newBase, String subName) {
524524 System .out .println (Localization .lang ("Saving" ) + ": " + subName );
525525 GeneralPreferences generalPreferences = preferencesService .getGeneralPreferences ();
526526 SavePreferences savePreferences = preferencesService .getSavePreferences ();
527- AtomicFileWriter fileWriter = new AtomicFileWriter (Path .of (subName ), StandardCharsets .UTF_8 );
528- BibWriter bibWriter = new BibWriter (fileWriter , OS .NEWLINE );
529- BibDatabaseWriter databaseWriter = new BibtexDatabaseWriter (
530- bibWriter ,
531- generalPreferences ,
532- savePreferences ,
533- Globals .entryTypesManager );
534- databaseWriter .saveDatabase (new BibDatabaseContext (newBase ));
535-
536- // Show just a warning message if encoding did not work for all characters:
537- if (fileWriter .hasEncodingProblems ()) {
538- System .err .println (Localization .lang ("Warning" ) + ": "
539- + Localization .lang ("UTF-8 could not be used to encode the following characters: %0" , fileWriter .getEncodingProblems ()));
527+ try (AtomicFileWriter fileWriter = new AtomicFileWriter (Path .of (subName ), StandardCharsets .UTF_8 )) {
528+ BibWriter bibWriter = new BibWriter (fileWriter , OS .NEWLINE );
529+
530+ BibDatabaseWriter databaseWriter = new BibtexDatabaseWriter (
531+ bibWriter ,
532+ generalPreferences ,
533+ savePreferences ,
534+ Globals .entryTypesManager );
535+ databaseWriter .saveDatabase (new BibDatabaseContext (newBase ));
536+
537+ // Show just a warning message if encoding did not work for all characters:
538+ if (fileWriter .hasEncodingProblems ()) {
539+ System .err .println (Localization .lang ("Warning" ) + ": "
540+ + Localization .lang ("UTF-8 could not be used to encode the following characters: %0" , fileWriter .getEncodingProblems ()));
541+ }
540542 }
541543 } catch (IOException ex ) {
542544 System .err .println (Localization .lang ("Could not save file." ) + "\n " + ex .getLocalizedMessage ());
0 commit comments