Skip to content

Commit fbe9d09

Browse files
committed
fix writer not closed!
1 parent f5f4039 commit fbe9d09

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

src/main/java/org/jabref/cli/ArgumentProcessor.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)