actorSystem.eventStream().subscribe(mockReceiver.getRef(), DeadLetter.class);
- final FiniteDuration TEN_SEC = new FiniteDuration(10, TimeUnit.SECONDS);
+ final FiniteDuration TWENTY_SEC = new FiniteDuration(20, TimeUnit.SECONDS);
+
String boundedMailBox = actorSystem.name() + ".bounded-mailbox";
ActorRef pingPongActor = actorSystem.actorOf(PingPongActor.props(lock).withMailbox(boundedMailBox),
"pingpongactor");
pingPongActor.tell("ping", mockReceiver.getRef());
}
- mockReceiver.expectMsgClass(TEN_SEC, DeadLetter.class);
+ mockReceiver.expectMsgClass(TWENTY_SEC, DeadLetter.class);
lock.unlock();
- Object[] eleven = mockReceiver.receiveN(11, TEN_SEC);
+ Object[] eleven = mockReceiver.receiveN(11, TWENTY_SEC);
}
/**
@Override
public void onReceive(Object message) throws Exception {
lock.lock();
- if ("ping".equals(message))
- getSender().tell("pong", getSelf());
+ try {
+ if ("ping".equals(message))
+ getSender().tell("pong", getSelf());
+ } finally {
+ lock.unlock();
+ }
}
}
}
\ No newline at end of file