diff --git a/src/main/java/net/sf/jabref/shared/DBMSSynchronizer.java b/src/main/java/net/sf/jabref/shared/DBMSSynchronizer.java index 6ed23a8ce17e..fd699e95e75f 100644 --- a/src/main/java/net/sf/jabref/shared/DBMSSynchronizer.java +++ b/src/main/java/net/sf/jabref/shared/DBMSSynchronizer.java @@ -94,7 +94,7 @@ public void listen(EntryAddedEvent event) { public void listen(FieldChangedEvent event) { // While synchronizing the local database (see synchronizeLocalDatabase() below), some EntryEvents may be posted. // In this case DBSynchronizer should not try to update the bibEntry entry again (but it would not harm). - if (isEventSourceAccepted(event) && checkCurrentConnection()) { + if (isEventSourceAccepted(event) && checkCurrentConnection() && isPresentLocalBibEntry(event.getBibEntry())) { synchronizeLocalMetaData(); BibEntry bibEntry = event.getBibEntry(); synchronizeSharedEntry(bibEntry); @@ -348,6 +348,10 @@ public void openSharedDatabase(DBMSConnectionProperties properties) throws Class openSharedDatabase(DBMSConnector.getNewConnection(properties), properties.getType(), properties.getDatabase()); } + private boolean isPresentLocalBibEntry(BibEntry bibEntry) { + return bibDatabase.getEntries().contains(bibEntry); + } + public String getDBName() { return dbName; }