From 5ad6f2c56807985cbe5d6135ae20cd640ac3d48a Mon Sep 17 00:00:00 2001 From: Christopher Batey Date: Thu, 20 Sep 2018 16:37:26 +0100 Subject: [PATCH] Review: Don't double log exception --- .../src/test/scala/akka/actor/typed/SupervisionSpec.scala | 2 +- .../main/scala/akka/actor/typed/internal/Supervision.scala | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/akka-actor-typed-tests/src/test/scala/akka/actor/typed/SupervisionSpec.scala b/akka-actor-typed-tests/src/test/scala/akka/actor/typed/SupervisionSpec.scala index 07bbabad99..99cc90e7bb 100644 --- a/akka-actor-typed-tests/src/test/scala/akka/actor/typed/SupervisionSpec.scala +++ b/akka-actor-typed-tests/src/test/scala/akka/actor/typed/SupervisionSpec.scala @@ -685,7 +685,7 @@ class SupervisionSpec extends ScalaTestWithActorTestKit( ) { EventFilter[ActorInitializationException](occurrences = 1).intercept { - EventFilter[TE](occurrences = 2).intercept { + EventFilter[TE](occurrences = 1).intercept { spawn(behv) // restarted 2 times before it gave up diff --git a/akka-actor-typed/src/main/scala/akka/actor/typed/internal/Supervision.scala b/akka-actor-typed/src/main/scala/akka/actor/typed/internal/Supervision.scala index ed28b72571..f8dc06968b 100644 --- a/akka-actor-typed/src/main/scala/akka/actor/typed/internal/Supervision.scala +++ b/akka-actor-typed/src/main/scala/akka/actor/typed/internal/Supervision.scala @@ -38,8 +38,8 @@ import scala.util.control.NonFatal } /** - * INTERNAL API - */ + * INTERNAL API + */ @InternalApi private abstract class AbstractSupervisor[O, I, Thr <: Throwable](strategy: SupervisorStrategy)(implicit ev: ClassTag[Thr]) extends BehaviorInterceptor[O, I] { @@ -132,10 +132,11 @@ private class RestartSupervisor[T, Thr <: Throwable](initial: Behavior[T], strat } catch { case NonFatal(t: Thr) ⇒ // if unlimited restarts then don't restart if starting fails as it would likely be an infinite restart loop - log(ctx, t) if (strategy.unlimitedRestarts() || ((restarts + 1) >= strategy.maxNrOfRetries && deadlineHasTimeLeft)) { + // don't log here as it'll be logged as ActorInitializationException throw t } else { + log(ctx, t) restart(ctx, t) aroundStart(ctx, target) }