diff --git a/akka-core/src/main/scala/actor/Actor.scala b/akka-core/src/main/scala/actor/Actor.scala index 7b60609f51..bbffc93320 100644 --- a/akka-core/src/main/scala/actor/Actor.scala +++ b/akka-core/src/main/scala/actor/Actor.scala @@ -464,7 +464,8 @@ trait Actor extends Logging { } private[akka] def checkReceiveTimeout = { - if (self.isDefinedAt(ReceiveTimeout)) { + //if ((self.hotswap getOrElse receive).isDefinedAt(ReceiveTimeout)) { // FIXME use when 'self' is safe to use, throws NPE sometimes + if ((receive ne null) && receive.isDefinedAt(ReceiveTimeout)) { log.debug("Scheduling timeout for Actor [" + toString + "]") timeoutActor = Some(Scheduler.scheduleOnce(self, ReceiveTimeout, self.receiveTimeout, TimeUnit.MILLISECONDS)) } diff --git a/akka-core/src/test/scala/ReceiveTimeoutSpec.scala b/akka-core/src/test/scala/ReceiveTimeoutSpec.scala index 60c5df934f..6aeb8e09de 100644 --- a/akka-core/src/test/scala/ReceiveTimeoutSpec.scala +++ b/akka-core/src/test/scala/ReceiveTimeoutSpec.scala @@ -63,6 +63,6 @@ class ReceiveTimeoutSpec extends JUnitSuite { timeoutActor ! Tick // timeout already after 500 ms, so 1 second wait should be enough - assert(timeoutLatch.tryAwait(1, TimeUnit.SECONDS) == false) + assert(timeoutLatch.tryAwait(3, TimeUnit.SECONDS) == false) } } \ No newline at end of file