Skip to content

Commit 9270aec

Browse files
authored
Merge pull request #183 from doubleSlashde/feature/#178_heimatIntegrationImprovements
#178: Fix NPE when Heimat Task is no longer available for a day
2 parents 8d0cd21 + 393dd55 commit 9270aec

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

src/main/java/de/doubleslash/keeptime/controller/HeimatController.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -193,12 +193,15 @@ public List<Mapping> getTableRows(final LocalDate currentReportDate, final List<
193193
long heimatTimeSeconds = times.stream()
194194
.reduce(0L, (subtotal, element) -> subtotal + element.durationInMinutes() * 60L,
195195
Long::sum);
196-
final HeimatTask heimatTask = heimatTasks.stream()
197-
.filter(t -> t.id() == times.get(0).taskId())
198-
.findAny()
199-
.orElseThrow();
200-
final Mapping mapping = new Mapping(id, true, false,
201-
"Not mapped in KeepTime\n\n" + heimatTask.name() + "\n" + heimatTask.taskHolderName(), times,
196+
final Optional<HeimatTask> optionalHeimatTask = heimatTasks.stream()
197+
.filter(t -> t.id() == id)
198+
.findAny();
199+
String taskName = "Cannot resolve Heimat Task Id: " + id + " to name\nPlease check in Heimat";
200+
if (optionalHeimatTask.isPresent()) {
201+
final HeimatTask heimatTask = optionalHeimatTask.get();
202+
taskName = heimatTask.name() + "\n" + heimatTask.taskHolderName();
203+
}
204+
final Mapping mapping = new Mapping(id, true, false, "Not mapped in KeepTime\n\n" + taskName, times,
202205
new ArrayList<>(0), heimatNotes, "", heimatTimeSeconds, 0);
203206
list.add(mapping);
204207
});

0 commit comments

Comments
 (0)