From 2210dbcae24922e3d3845c81d2378045327e9f82 Mon Sep 17 00:00:00 2001 From: "Michael N. Lipp" Date: Sat, 16 Sep 2023 11:43:51 +0200 Subject: [PATCH] Log handling errors. --- .../jdrupes/vmoperator/runner/qemu/Runner.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/org.jdrupes.vmoperator.runner.qemu/src/org/jdrupes/vmoperator/runner/qemu/Runner.java b/org.jdrupes.vmoperator.runner.qemu/src/org/jdrupes/vmoperator/runner/qemu/Runner.java index 2e8216b..6ca3b2c 100644 --- a/org.jdrupes.vmoperator.runner.qemu/src/org/jdrupes/vmoperator/runner/qemu/Runner.java +++ b/org.jdrupes.vmoperator.runner.qemu/src/org/jdrupes/vmoperator/runner/qemu/Runner.java @@ -58,11 +58,13 @@ import org.jdrupes.vmoperator.runner.qemu.events.RunnerStateChange; import org.jdrupes.vmoperator.runner.qemu.events.RunnerStateChange.State; import org.jdrupes.vmoperator.util.ExtendedObjectWrapper; import org.jdrupes.vmoperator.util.FsdUtils; +import org.jgrapes.core.Channel; import org.jgrapes.core.Component; import org.jgrapes.core.Components; import org.jgrapes.core.EventPipeline; import org.jgrapes.core.TypedIdKey; import org.jgrapes.core.annotation.Handler; +import org.jgrapes.core.events.HandlingError; import org.jgrapes.core.events.Start; import org.jgrapes.core.events.Started; import org.jgrapes.core.events.Stop; @@ -238,6 +240,20 @@ public class Runner extends Component { fire(new WatchFile(config.toPath())); } + /** + * Log the exception when a handling error is reported. + * + * @param event the event + */ + @Handler(channels = Channel.class, priority = -10_000) + @SuppressWarnings("PMD.GuardLogStatement") + public void onHandlingError(HandlingError event) { + logger.log(Level.WARNING, event.throwable(), + () -> "Problem invoking handler with " + event.event() + ": " + + event.message()); + event.stop(); + } + /** * On configuration update. *