fix CTD vs. RepointableRef by swallowing exceptions during send

- it was always intended that tell() (and sendSystemMessage()) shall not
  throw any exceptions
- this is implemented by swallowing in ActorCell
  (suspend/resume/restart/stop/!/sendSystemMessage) and in
  RemoteActorRef (!/sendSystemMessage)
- current implementation uses a normal method, which adds overhead but
  keeps the code in one place (ActorCell.catchingSend); this is a great
  opportunity for making use of macros
This commit is contained in:
Roland 2012-08-15 21:46:05 +02:00
parent f7ea9bf3dd
commit c1c05ef95e
8 changed files with 43 additions and 28 deletions

View file

@ -269,8 +269,8 @@ class VerifySerializabilitySpec extends AkkaSpec(VerifySerializabilitySpec.conf)
val a = system.actorOf(Props[FooActor])
Await.result(a ? "pigdog", timeout.duration) must be("pigdog")
intercept[NotSerializableException] {
Await.result(a ? new AnyRef, timeout.duration)
EventFilter[NotSerializableException](occurrences = 1) intercept {
a ! (new AnyRef)
}
system stop a
}