From f7a95b5228c2750d4c6ad051519cdd729b998544 Mon Sep 17 00:00:00 2001 From: kerr Date: Fri, 30 Nov 2018 15:52:04 +0800 Subject: [PATCH] !typ Rename ActorContext#upcast to ActorContext#unsafeUpcast. (#25973) --- .../src/test/scala/akka/actor/typed/InterceptSpec.scala | 2 +- .../src/test/scala/akka/actor/typed/SupervisionSpec.scala | 2 +- .../src/main/scala/akka/actor/typed/ActorRef.scala | 5 +++-- .../scala/akka/actor/typed/internal/ActorContextImpl.scala | 4 ++-- .../main/scala/akka/actor/typed/internal/ActorRefImpl.scala | 2 +- .../scala/akka/actor/typed/internal/TimerSchedulerImpl.scala | 4 ++-- .../typed/scaladsl/ClusterShardingPersistenceSpec.scala | 2 +- 7 files changed, 11 insertions(+), 10 deletions(-) diff --git a/akka-actor-typed-tests/src/test/scala/akka/actor/typed/InterceptSpec.scala b/akka-actor-typed-tests/src/test/scala/akka/actor/typed/InterceptSpec.scala index baa457ee7e..bb499c3d09 100644 --- a/akka-actor-typed-tests/src/test/scala/akka/actor/typed/InterceptSpec.scala +++ b/akka-actor-typed-tests/src/test/scala/akka/actor/typed/InterceptSpec.scala @@ -304,7 +304,7 @@ class InterceptSpec extends ScalaTestWithActorTestKit( ref ! Msg("hello", probe.ref) probe.expectMessage("hello-1") - ref.upcast[Any] ! MyPoisonPill + ref.unsafeUpcast[Any] ! MyPoisonPill probe.expectTerminated(ref, probe.remainingOrDefault) } diff --git a/akka-actor-typed-tests/src/test/scala/akka/actor/typed/SupervisionSpec.scala b/akka-actor-typed-tests/src/test/scala/akka/actor/typed/SupervisionSpec.scala index 19cb9a8bb7..e9442ed2e6 100644 --- a/akka-actor-typed-tests/src/test/scala/akka/actor/typed/SupervisionSpec.scala +++ b/akka-actor-typed-tests/src/test/scala/akka/actor/typed/SupervisionSpec.scala @@ -49,7 +49,7 @@ object SupervisionSpec { case IncrementState ⇒ targetBehavior(monitor, state.copy(n = state.n + 1)) case GetState ⇒ - val reply = state.copy(children = context.children.map(c ⇒ c.path.name → c.upcast[Command]).toMap) + val reply = state.copy(children = context.children.map(c ⇒ c.path.name → c.unsafeUpcast[Command]).toMap) monitor ! reply Behaviors.same case CreateChild(childBehv, childName) ⇒ diff --git a/akka-actor-typed/src/main/scala/akka/actor/typed/ActorRef.scala b/akka-actor-typed/src/main/scala/akka/actor/typed/ActorRef.scala index 426e85314c..210a8a06bc 100644 --- a/akka-actor-typed/src/main/scala/akka/actor/typed/ActorRef.scala +++ b/akka-actor-typed/src/main/scala/akka/actor/typed/ActorRef.scala @@ -37,9 +37,10 @@ trait ActorRef[-T] extends RecipientRef[T] with java.lang.Comparable[ActorRef[_] /** * Unsafe utility method for widening the type accepted by this ActorRef; * provided to avoid having to use `asInstanceOf` on the full reference type, - * which would unfortunately also work on non-ActorRefs. + * which would unfortunately also work on non-ActorRefs. Use it with caution,it may cause a [[ClassCastException]] when you send a message + * to the widened [[ActorRef[U]]]. */ - def upcast[U >: T @uncheckedVariance]: ActorRef[U] + def unsafeUpcast[U >: T @uncheckedVariance]: ActorRef[U] /** * The hierarchical path name of the referenced Actor. The lifecycle of the diff --git a/akka-actor-typed/src/main/scala/akka/actor/typed/internal/ActorContextImpl.scala b/akka-actor-typed/src/main/scala/akka/actor/typed/internal/ActorContextImpl.scala index 4e6c1f343a..c433b9f463 100644 --- a/akka-actor-typed/src/main/scala/akka/actor/typed/internal/ActorContextImpl.scala +++ b/akka-actor-typed/src/main/scala/akka/actor/typed/internal/ActorContextImpl.scala @@ -46,7 +46,7 @@ import akka.util.JavaDurationConverters._ override def getChild(name: String): Optional[ActorRef[Void]] = child(name) match { - case Some(c) ⇒ Optional.of(c.upcast[Void]) + case Some(c) ⇒ Optional.of(c.unsafeUpcast[Void]) case None ⇒ Optional.empty() } @@ -54,7 +54,7 @@ import akka.util.JavaDurationConverters._ val c = children val a = new ArrayList[ActorRef[Void]](c.size) val i = c.iterator - while (i.hasNext) a.add(i.next().upcast[Void]) + while (i.hasNext) a.add(i.next().unsafeUpcast[Void]) a } diff --git a/akka-actor-typed/src/main/scala/akka/actor/typed/internal/ActorRefImpl.scala b/akka-actor-typed/src/main/scala/akka/actor/typed/internal/ActorRefImpl.scala index 371fd84d4c..0087009ba2 100644 --- a/akka-actor-typed/src/main/scala/akka/actor/typed/internal/ActorRefImpl.scala +++ b/akka-actor-typed/src/main/scala/akka/actor/typed/internal/ActorRefImpl.scala @@ -19,7 +19,7 @@ private[akka] trait ActorRefImpl[-T] extends ActorRef[T] { this: InternalRecipie final override def narrow[U <: T]: ActorRef[U] = this.asInstanceOf[ActorRef[U]] - final override def upcast[U >: T @uncheckedVariance]: ActorRef[U] = this.asInstanceOf[ActorRef[U]] + final override def unsafeUpcast[U >: T @uncheckedVariance]: ActorRef[U] = this.asInstanceOf[ActorRef[U]] /** * Comparison takes path and the unique id of the actor cell into account. diff --git a/akka-actor-typed/src/main/scala/akka/actor/typed/internal/TimerSchedulerImpl.scala b/akka-actor-typed/src/main/scala/akka/actor/typed/internal/TimerSchedulerImpl.scala index 78c959bbee..fbc59ae6b3 100644 --- a/akka-actor-typed/src/main/scala/akka/actor/typed/internal/TimerSchedulerImpl.scala +++ b/akka-actor-typed/src/main/scala/akka/actor/typed/internal/TimerSchedulerImpl.scala @@ -76,11 +76,11 @@ import scala.concurrent.duration.FiniteDuration val task = if (repeat) ctx.system.scheduler.schedule(timeout, timeout) { - ctx.self.upcast ! timerMsg + ctx.self.unsafeUpcast ! timerMsg }(ExecutionContexts.sameThreadExecutionContext) else ctx.system.scheduler.scheduleOnce(timeout) { - ctx.self.upcast ! timerMsg + ctx.self.unsafeUpcast ! timerMsg }(ExecutionContexts.sameThreadExecutionContext) val nextTimer = Timer(key, msg, repeat, nextGen, task) diff --git a/akka-cluster-sharding-typed/src/test/scala/akka/cluster/sharding/typed/scaladsl/ClusterShardingPersistenceSpec.scala b/akka-cluster-sharding-typed/src/test/scala/akka/cluster/sharding/typed/scaladsl/ClusterShardingPersistenceSpec.scala index e1932f03e1..b90e3ba767 100644 --- a/akka-cluster-sharding-typed/src/test/scala/akka/cluster/sharding/typed/scaladsl/ClusterShardingPersistenceSpec.scala +++ b/akka-cluster-sharding-typed/src/test/scala/akka/cluster/sharding/typed/scaladsl/ClusterShardingPersistenceSpec.scala @@ -68,7 +68,7 @@ object ClusterShardingPersistenceSpec { entityActorRefs.get(entityId) match { case null ⇒ - case promise ⇒ promise.trySuccess(ctx.self.upcast) + case promise ⇒ promise.trySuccess(ctx.self.unsafeUpcast) } PersistentEntity[Command, String, String](