From c034d20993d07060fed93c4039b1c1fdf1bbf7e2 Mon Sep 17 00:00:00 2001 From: Justin Pihony Date: Thu, 7 Oct 2021 11:46:31 -0400 Subject: [PATCH] Handle null for StatusReply (#30728) Fix specifically for Scala 2.12 --- .../src/test/scala/akka/pattern/StatusReplySpec.scala | 7 +++++++ akka-actor/src/main/scala/akka/pattern/StatusReply.scala | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/akka-actor-tests/src/test/scala/akka/pattern/StatusReplySpec.scala b/akka-actor-tests/src/test/scala/akka/pattern/StatusReplySpec.scala index d40c2648e6..5bd7c28589 100644 --- a/akka-actor-tests/src/test/scala/akka/pattern/StatusReplySpec.scala +++ b/akka-actor-tests/src/test/scala/akka/pattern/StatusReplySpec.scala @@ -33,6 +33,13 @@ class StatusReplySpec extends AkkaSpec with ScalaFutures { case _ => fail() } } + "not throw exception if null" in { + (null: StatusReply[_]) match { + case StatusReply.Success(_) => fail() + case StatusReply.Error(_) => fail() + case _ => + } + } "pattern match error with text" in { StatusReply.Error("boho!") match { case StatusReply.Error(_) => diff --git a/akka-actor/src/main/scala/akka/pattern/StatusReply.scala b/akka-actor/src/main/scala/akka/pattern/StatusReply.scala index e8d13ec8f4..f26ff3be77 100644 --- a/akka-actor/src/main/scala/akka/pattern/StatusReply.scala +++ b/akka-actor/src/main/scala/akka/pattern/StatusReply.scala @@ -118,7 +118,7 @@ object StatusReply { */ def apply[T](value: T): StatusReply[T] = new StatusReply(ScalaSuccess(value)) def unapply(status: StatusReply[Any]): Option[Any] = - if (status.isSuccess) Some(status.getValue) + if (status != null && status.isSuccess) Some(status.getValue) else None } @@ -150,7 +150,7 @@ object StatusReply { */ def apply[T](exception: Throwable): StatusReply[T] = new StatusReply(ScalaFailure(exception)) def unapply(status: StatusReply[_]): Option[Throwable] = - if (status.isError) Some(status.getError) + if (status != null && status.isError) Some(status.getError) else None }