diff --git a/akka-actor/src/main/scala/akka/actor/Actor.scala b/akka-actor/src/main/scala/akka/actor/Actor.scala index a771195edf..493baf9b1e 100644 --- a/akka-actor/src/main/scala/akka/actor/Actor.scala +++ b/akka-actor/src/main/scala/akka/actor/Actor.scala @@ -476,6 +476,7 @@ trait Actor { * Actors are automatically started asynchronously when created. * Empty default implementation. */ + @throws(classOf[Exception]) def preStart() {} /** @@ -484,6 +485,7 @@ trait Actor { * Is called asynchronously after 'actor.stop()' is invoked. * Empty default implementation. */ + @throws(classOf[Exception]) def postStop() {} /** @@ -494,6 +496,7 @@ trait Actor { * Is called on a crashed Actor right BEFORE it is restarted to allow clean * up of resources before Actor is terminated. */ + @throws(classOf[Exception]) def preRestart(reason: Throwable, message: Option[Any]) { context.children foreach context.stop postStop() @@ -505,6 +508,7 @@ trait Actor { *

* Is called right AFTER restart on the newly created Actor to allow reinitialization after an Actor crash. */ + @throws(classOf[Exception]) def postRestart(reason: Throwable) { preStart() } /** diff --git a/akka-actor/src/main/scala/akka/actor/UntypedActor.scala b/akka-actor/src/main/scala/akka/actor/UntypedActor.scala index 163d9468bc..741d74feda 100644 --- a/akka-actor/src/main/scala/akka/actor/UntypedActor.scala +++ b/akka-actor/src/main/scala/akka/actor/UntypedActor.scala @@ -131,6 +131,7 @@ abstract class UntypedActor extends Actor { * Actor are automatically started asynchronously when created. * Empty default implementation. */ + @throws(classOf[Exception]) override def preStart(): Unit = super.preStart() /** @@ -139,6 +140,7 @@ abstract class UntypedActor extends Actor { * Is called asynchronously after 'actor.stop()' is invoked. * Empty default implementation. */ + @throws(classOf[Exception]) override def postStop(): Unit = super.postStop() /** @@ -147,6 +149,7 @@ abstract class UntypedActor extends Actor { * Is called on a crashed Actor right BEFORE it is restarted to allow clean * up of resources before Actor is terminated. */ + @throws(classOf[Exception]) override def preRestart(reason: Throwable, message: Option[Any]): Unit = super.preRestart(reason, message) /** @@ -154,6 +157,7 @@ abstract class UntypedActor extends Actor { *

* Is called right AFTER restart on the newly created Actor to allow reinitialization after an Actor crash. */ + @throws(classOf[Exception]) override def postRestart(reason: Throwable): Unit = super.postRestart(reason) final def receive = { case msg ⇒ onReceive(msg) } diff --git a/akka-docs/rst/java/code/docs/actor/InitializationDocSpecJava.java b/akka-docs/rst/java/code/docs/actor/InitializationDocSpecJava.java index 2e3f52108b..fd9f7d3575 100644 --- a/akka-docs/rst/java/code/docs/actor/InitializationDocSpecJava.java +++ b/akka-docs/rst/java/code/docs/actor/InitializationDocSpecJava.java @@ -33,7 +33,8 @@ public class InitializationDocSpecJava { // of the actor. To opt-out from stopping the children, we // have to override preRestart() @Override - public void preRestart(Throwable reason, Option message) { + public void preRestart(Throwable reason, Option message) + throws Exception { // Keep the call to postStop(), but no stopping of children postStop(); }