diff options
author | Vojin Jovanovic <vojin.jovanovic@epfl.ch> | 2012-10-30 08:51:33 +0100 |
---|---|---|
committer | Vojin Jovanovic <vojin.jovanovic@epfl.ch> | 2012-10-30 09:59:45 +0100 |
commit | f627d8a51e6b4f9afc017ee4bf02604cd094c9ae (patch) | |
tree | b56a7e22a42832445143e358c3b57f2a1c5cff72 /test/files/jvm | |
parent | 2c554249fd8e99286134b217027b6e3cb2c92d77 (diff) | |
download | scala-f627d8a51e6b4f9afc017ee4bf02604cd094c9ae.tar.gz scala-f627d8a51e6b4f9afc017ee4bf02604cd094c9ae.tar.bz2 scala-f627d8a51e6b4f9afc017ee4bf02604cd094c9ae.zip |
SI-6581 fixed by inlining `Actor.self`.
This avoids the necessary type cast that was preventing leakage of internal migration classes.
Review by @phaller
Diffstat (limited to 'test/files/jvm')
-rw-r--r-- | test/files/jvm/actmig-remote-actor-self.check | 1 | ||||
-rw-r--r-- | test/files/jvm/actmig-remote-actor-self.scala | 34 |
2 files changed, 35 insertions, 0 deletions
diff --git a/test/files/jvm/actmig-remote-actor-self.check b/test/files/jvm/actmig-remote-actor-self.check new file mode 100644 index 0000000000..79d23cb337 --- /dev/null +++ b/test/files/jvm/actmig-remote-actor-self.check @@ -0,0 +1 @@ +registered diff --git a/test/files/jvm/actmig-remote-actor-self.scala b/test/files/jvm/actmig-remote-actor-self.scala new file mode 100644 index 0000000000..2b994f6081 --- /dev/null +++ b/test/files/jvm/actmig-remote-actor-self.scala @@ -0,0 +1,34 @@ +/** + * NOTE: Code snippets from this test are included in the Actor Migration Guide. In case you change + * code in these tests prior to the 2.10.0 release please send the notification to @vjovanov. + */ +import scala.actors._ +import scala.actors.migration._ +import scala.actors.remote._ +import scala.actors.remote.RemoteActor._ +import scala.concurrent._ +import scala.concurrent.duration._ + +object Test { + val finished = Promise[Boolean] + + def main(args: Array[String]): Unit = { + + // can fail with class cast exception in alive + val myAkkaActor = ActorDSL.actor(new StashingActor { + override def preStart() = { + alive(42013) + println("registered") + finished success true + context.stop(self) + } + + def receive = { + case x: Int => + } + }) + + Await.result(finished.future, Duration.Inf).toString + } + +} |