From 5ebcb4ae8d5ee67f8133b458c8af1318e1d5909e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brage=20Skj=C3=B8nborg?= Date: Sun, 12 Oct 2025 15:23:41 +0200 Subject: [PATCH] Setting completed on error --- src/main/kotlin/no/iktdev/eventi/models/Event.kt | 4 ++++ src/main/kotlin/no/iktdev/eventi/models/Task.kt | 4 ++++ src/main/kotlin/no/iktdev/eventi/tasks/TaskListener.kt | 1 + 3 files changed, 9 insertions(+) diff --git a/src/main/kotlin/no/iktdev/eventi/models/Event.kt b/src/main/kotlin/no/iktdev/eventi/models/Event.kt index ebff9fe..a863636 100644 --- a/src/main/kotlin/no/iktdev/eventi/models/Event.kt +++ b/src/main/kotlin/no/iktdev/eventi/models/Event.kt @@ -27,7 +27,10 @@ abstract class Event { fun usingReferenceId(refId: UUID) = apply { this.referenceId = refId } +} +inline fun Event.requireAs(): T { + return this as? T ?: throw IllegalArgumentException("Expected ${T::class.java.name}, got ${this::class.java.name}") } abstract class DeleteEvent: Event() { @@ -35,3 +38,4 @@ abstract class DeleteEvent: Event() { } + diff --git a/src/main/kotlin/no/iktdev/eventi/models/Task.kt b/src/main/kotlin/no/iktdev/eventi/models/Task.kt index fb8ded5..2412a9a 100644 --- a/src/main/kotlin/no/iktdev/eventi/models/Task.kt +++ b/src/main/kotlin/no/iktdev/eventi/models/Task.kt @@ -20,3 +20,7 @@ abstract class Task { this.metadata = Metadata(derivedFromId = event.eventId) } } + +inline fun Task.requireAs(): T { + return this as? T ?: throw IllegalArgumentException("Expected ${T::class.java.name}, got ${this::class.java.name}") +} \ No newline at end of file diff --git a/src/main/kotlin/no/iktdev/eventi/tasks/TaskListener.kt b/src/main/kotlin/no/iktdev/eventi/tasks/TaskListener.kt index 7d51534..74eca17 100644 --- a/src/main/kotlin/no/iktdev/eventi/tasks/TaskListener.kt +++ b/src/main/kotlin/no/iktdev/eventi/tasks/TaskListener.kt @@ -66,6 +66,7 @@ abstract class TaskListener(val taskType: TaskType = TaskType.CPU_INTENSIVE): override fun onError(task: Task, exception: Exception) { reporter?.log(task.taskId, "Error processing task: ${exception.message}") exception.printStackTrace() + reporter?.markConsumed(task.taskId) } override fun onComplete(task: Task, result: T?) {