I have something like this:
class ProbeActor extends Actor {
case class Probe(messageKey: String)
def receiveProbe: Receive = {
case Probe(probeKey) => println("Good probe: "+probeKey)
case x => println("Bad probe: "+ x)
}
final override def receive = receiveProbe orElse receiveOther
def receiveOther: Receive = {
case _ => println("Other")
}
}
and I call it like this:
class Prober extends ProbeActor {
val definite = ActorSystem("ProbeTest").actorOf(Props[ProbeActor], name = "probed")
implicit val timeout = Timeout(5 second)
val future = definite ? Probe("key")
}
I expect the text "Good probe: key"to be printed, but I get it "Bad probe: Probe(key)".
Note . If I put the case class Probeoutside, then it works fine.
source
share