diff --git a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java index 2b8671db7e5ab0d92d6fd16276e0a8a6c7e1f39c..77dc5981a543faf595c31e7ad43f1a9f2b361357 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java @@ -50,15 +50,15 @@ public class AccountService implements Resetable transactionService.deleteTransactionsWithAccount(accountToDelete); accountToDelete.setReferringTransactions(new ArrayList<>()); - List<Account> accounts = accountRepository.findAll(); - accounts.remove(accountToDelete); - - Account newSelectedAccount = accounts.get(0); - selectAccount(newSelectedAccount.getID()); + // select "all accounts" as selected account + selectAccount(accountRepository.findAllByType(AccountType.ALL).get(0).getID()); + // set new default if necessary if(accountToDelete.isDefault()) { - setAsDefaultAccount(accountRepository.findAllByType(AccountType.CUSTOM).get(0).getID()); + List<Account> accounts = accountRepository.findAllByType(AccountType.CUSTOM); + accounts.remove(accountToDelete); + setAsDefaultAccount(accounts.get(0).getID()); } accountRepository.delete(ID); diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java index f50a0005c6e2e94d5d1727f3dd15d1a4f739d1b8..f88181ce190d7401dc0b6ca40481c70a235ac1ef 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java @@ -23,6 +23,7 @@ import java.util.List; @Service public class TransactionService implements Resetable { + private final Logger LOGGER = LoggerFactory.getLogger(this.getClass()); private TransactionRepository transactionRepository; private RepeatingOptionRepository repeatingOptionRepository; private CategoryRepository categoryRepository; @@ -141,6 +142,12 @@ public class TransactionService implements Resetable private void deleteTransactionInRepo(Integer ID) { Transaction transactionToDelete = transactionRepository.findOne(ID); + if(transactionToDelete == null) + { + LOGGER.debug("Skipping already deleted transaction with ID: " + ID); + return; + } + // handle repeating transactions if(transactionToDelete.getRepeatingOption() == null) {