Class AbstractActorWithStash

  extended by akka.actor.AbstractActor
      extended by akka.actor.AbstractActorWithStash
All Implemented Interfaces:
Actor, Stash, StashSupport, UnrestrictedStash, RequiresMessageQueue<DequeBasedMessageQueueSemantics>

public abstract class AbstractActorWithStash
extends AbstractActor
implements Stash

Java API: compatible with lambda expressions

Actor base class that should be extended to create an actor with a stash.

The stash enables an actor to temporarily stash away messages that can not or should not be handled using the actor's current behavior.

 public class MyActorWithStash extends AbstractActorWithStash {
   int count = 0;

   public MyActorWithStash() {
     receive(ReceiveBuilder. match(String.class, s -> {
       if (count < 0) {
         sender().tell(new Integer(s.length()), self());
       } else if (count == 2) {
         count = -1;
       } else {
         count += 1;
Note that the subclasses of AbstractActorWithStash by default request a Deque based mailbox since this class implements the RequiresMessageQueue marker interface. You can override the default mailbox provided when DequeBasedMessageQueueSemantics are requested via config:
   akka.actor.mailbox.requirements {
     "akka.dispatch.BoundedDequeBasedMessageQueueSemantics" = your-custom-mailbox
Alternatively, you can add your own requirement marker to the actor and configure a mailbox type to be used for your marker.

For a Stash based actor that enforces unbounded deques see AbstractActorWithUnboundedStash. There is also an unrestricted version AbstractActorWithUnrestrictedStash that does not enforce the mailbox type.

This is an EXPERIMENTAL feature and is subject to change until it has received more real world testing.

Nested Class Summary
Nested classes/interfaces inherited from interface akka.actor.Actor
Constructor Summary
Method Summary
Methods inherited from class akka.actor.AbstractActor
emptyBehavior, getContext, receive, receive
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface akka.actor.UnrestrictedStash
postStop, preRestart
Methods inherited from interface akka.actor.Actor
aroundPostRestart, aroundPostStop, aroundPreRestart, aroundPreStart, aroundReceive, context, postRestart, preStart, receive, self, sender, supervisorStrategy, unhandled
Methods inherited from interface akka.actor.StashSupport
actorCell, capacity, clearStash, context, enqueueFirst, mailbox, prepend, self, stash, theStash, unstash, unstashAll, unstashAll

Constructor Detail


public AbstractActorWithStash()