Skip to content

Commit 8cbaa87

Browse files
committed
PR feedback: Guard against empty query results
Add a check to ensure the transaction list is not empty before calling getFirst() in getTransaction to prevent a potential NoSuchElementException.
1 parent 8433163 commit 8cbaa87

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/main/java/de/rwth/idsg/steve/service/NotificationServiceForUser.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,9 @@ public void ocppTransactionEnded(OcppTransactionEnded event) {
148148
log.debug("Processing: {}", event);
149149

150150
var transaction = transactionService.getTransaction(event.getParams().getTransactionId());
151+
if (transaction == null) {
152+
return;
153+
}
151154

152155
var user = userService.getUserForMail(transaction.getOcppIdTag(), NotificationFeature.OcppTransactionEnded);
153156
if (user == null) {

src/main/java/de/rwth/idsg/steve/service/TransactionService.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import org.jetbrains.annotations.Nullable;
3636
import org.joda.time.DateTime;
3737
import org.springframework.stereotype.Service;
38+
import org.springframework.util.CollectionUtils;
3839

3940
import java.io.Writer;
4041
import java.util.Comparator;
@@ -77,7 +78,11 @@ public Transaction getTransaction(int transactionPk) {
7778
form.setReturnCSV(false);
7879
form.setType(TransactionQueryForm.QueryType.ALL);
7980

80-
return transactionRepository.getTransactions(form).getFirst();
81+
List<Transaction> transactions = transactionRepository.getTransactions(form);
82+
if (CollectionUtils.isEmpty(transactions)) {
83+
return null;
84+
}
85+
return transactions.getFirst();
8186
}
8287

8388
public Transaction getLatestActiveTransaction(String chargeBoxId, Integer connectorId) {

0 commit comments

Comments
 (0)