actor.preStart();
scope.onActorCreated(actor);
} catch (Exception e) {
e.printStackTrace();
if (envelope.getSender() != null) {
envelope.getSender().send(new DeadLetter("Unable to create actor"));
}
return;
}
}
try {
if (envelope.getMessage() == StartActor.INSTANCE) {
// Already created actor
return;
} else if (envelope.getMessage() == Ping.INSTANCE) {
// No op
return;
} else if (envelope.getMessage() == PoisonPill.INSTANCE) {
for (ActorExtension e : scope.getActor().getExtensions()) {
e.postStop();
}
scope.getActor().postStop();
scope.onActorDie();
for (Envelope e : scope.getMailbox().allEnvelopes()) {
if (e.getSender() != null) {
e.getSender().send(new DeadLetter(e.getMessage()));
}
}
scope.getMailbox().clear();
} else {
CurrentActor.setCurrentActor(scope.getActor());