summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorVojin Jovanovic <vojin.jovanovic@epfl.ch>2012-10-30 08:51:33 +0100
committerVojin Jovanovic <vojin.jovanovic@epfl.ch>2012-10-30 09:59:45 +0100
commitf627d8a51e6b4f9afc017ee4bf02604cd094c9ae (patch)
treeb56a7e22a42832445143e358c3b57f2a1c5cff72 /test
parent2c554249fd8e99286134b217027b6e3cb2c92d77 (diff)
downloadscala-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')
-rw-r--r--test/files/jvm/actmig-remote-actor-self.check1
-rw-r--r--test/files/jvm/actmig-remote-actor-self.scala34
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
+ }
+
+}