From ac5b770ad6844debb9491663b34e920f3cb11619 Mon Sep 17 00:00:00 2001 From: momania Date: Wed, 14 Jul 2010 09:39:17 +0200 Subject: [PATCH] small refactor - use patternmatching better --- akka-core/src/main/scala/actor/ActorRef.scala | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/akka-core/src/main/scala/actor/ActorRef.scala b/akka-core/src/main/scala/actor/ActorRef.scala index 7543817343..9035f6ad24 100644 --- a/akka-core/src/main/scala/actor/ActorRef.scala +++ b/akka-core/src/main/scala/actor/ActorRef.scala @@ -1057,18 +1057,19 @@ sealed class LocalActorRef private[akka]( protected[akka] def handleTrapExit(dead: ActorRef, reason: Throwable): Unit = { if (trapExit.exists(_.isAssignableFrom(reason.getClass))) { - if (faultHandler.isDefined) { - faultHandler.get match { - // FIXME: implement support for maxNrOfRetries and withinTimeRange in RestartStrategy - case AllForOneStrategy(maxNrOfRetries, withinTimeRange) => - restartLinkedActors(reason) + faultHandler match { + // FIXME: implement support for maxNrOfRetries and withinTimeRange in RestartStrategy + case Some(AllForOneStrategy(maxNrOfRetries, withinTimeRange)) => + restartLinkedActors(reason) - case OneForOneStrategy(maxNrOfRetries, withinTimeRange) => - dead.restart(reason) - } - } else throw new IllegalActorStateException( - "No 'faultHandler' defined for an actor with the 'trapExit' member field defined " + - "\n\tto non-empty list of exception classes - can't proceed " + toString) + case Some(OneForOneStrategy(maxNrOfRetries, withinTimeRange)) => + dead.restart(reason) + + case None => + throw new IllegalActorStateException( + "No 'faultHandler' defined for an actor with the 'trapExit' member field defined " + + "\n\tto non-empty list of exception classes - can't proceed " + toString) + } } else { _supervisor.foreach(_ ! Exit(dead, reason)) // if 'trapExit' is not defined then pass the Exit on }