From 3bad5384fce9b5477f3e63e194080d125a052588 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Sch=C3=A4fer?= Date: Tue, 15 Oct 2019 17:35:37 +0200 Subject: [PATCH] Fix nullpointer on import (#5448) * Enable action "Import into current library" only if an open library exists #5447 * Add CHANGELOG entry #5447 * Fix checkstyle issue --- CHANGELOG.md | 2 +- src/main/java/org/jabref/gui/JabRefFrame.java | 4 ++-- .../java/org/jabref/gui/importer/ImportCommand.java | 10 +++++++++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e177677997..8800794bdf4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,7 +39,7 @@ We refer to [GitHub issues](https://github.com/JabRef/jabref/issues) by using `# - We fixed a problem where the "editor" information has been duplicated during saving a .bib-Database. [#5359](https://github.com/JabRef/jabref/issues/5359) - We re-introduced the feature to switch between different preview styles. [#5221](https://github.com/JabRef/jabref/issues/5221) - We fixed various issues (including [#5263](https://github.com/JabRef/jabref/issues/5263)) related to copying entries to the clipboard - +- We fixed an exception which occurred when trying to import entries without an open library. [#5447](https://github.com/JabRef/jabref/issues/5447) diff --git a/src/main/java/org/jabref/gui/JabRefFrame.java b/src/main/java/org/jabref/gui/JabRefFrame.java index 8db012a441b..364a834056e 100644 --- a/src/main/java/org/jabref/gui/JabRefFrame.java +++ b/src/main/java/org/jabref/gui/JabRefFrame.java @@ -672,8 +672,8 @@ private MenuBar createMenu() { factory.createSubMenu(StandardActions.IMPORT, factory.createMenuItem(StandardActions.MERGE_DATABASE, new OldDatabaseCommandWrapper(Actions.MERGE_DATABASE, this, stateManager)), // TODO: merge with import - factory.createMenuItem(StandardActions.IMPORT_INTO_CURRENT_LIBRARY, new ImportCommand(this, false)), - factory.createMenuItem(StandardActions.IMPORT_INTO_NEW_LIBRARY, new ImportCommand(this, true))), + factory.createMenuItem(StandardActions.IMPORT_INTO_CURRENT_LIBRARY, new ImportCommand(this, false, stateManager)), + factory.createMenuItem(StandardActions.IMPORT_INTO_NEW_LIBRARY, new ImportCommand(this, true, stateManager))), factory.createSubMenu(StandardActions.EXPORT, factory.createMenuItem(StandardActions.EXPORT_ALL, new ExportCommand(this, false, Globals.prefs)), diff --git a/src/main/java/org/jabref/gui/importer/ImportCommand.java b/src/main/java/org/jabref/gui/importer/ImportCommand.java index 9299dac7868..8eb8284ca35 100644 --- a/src/main/java/org/jabref/gui/importer/ImportCommand.java +++ b/src/main/java/org/jabref/gui/importer/ImportCommand.java @@ -11,6 +11,7 @@ import org.jabref.Globals; import org.jabref.gui.DialogService; import org.jabref.gui.JabRefFrame; +import org.jabref.gui.StateManager; import org.jabref.gui.actions.SimpleCommand; import org.jabref.gui.util.FileDialogConfiguration; import org.jabref.gui.util.FileFilterConverter; @@ -18,6 +19,8 @@ import org.jabref.logic.l10n.Localization; import org.jabref.preferences.JabRefPreferences; +import static org.jabref.gui.actions.ActionHelper.needsDatabase; + /** * Perform import operation */ @@ -30,9 +33,14 @@ public class ImportCommand extends SimpleCommand { /** * @param openInNew Indicate whether the entries should import into a new database or into the currently open one. */ - public ImportCommand(JabRefFrame frame, boolean openInNew) { + public ImportCommand(JabRefFrame frame, boolean openInNew, StateManager stateManager) { this.frame = frame; this.openInNew = openInNew; + + if (!openInNew) { + this.executable.bind(needsDatabase(stateManager)); + } + this.dialogService = frame.getDialogService(); }