akka unstashAll生成java.lang.NullPointerException

akka unstashAll生成java.lang.NullPointerException,akka,Akka,各位。A akka unstashAll函数出现意外错误。 在我的actor中,它是一个简单的函数,可以执行context.been(idle()) 比unstashAll() 突然一看 java.lang.NullPointerException at akka.actor.StashSupport.$anonfun$unstashAll$2(Stash.scala:217) at akka.actor.StashSupport.$anonfun$unstashAll$2$adapted(St

各位。A akka unstashAll函数出现意外错误。 在我的actor中,它是一个简单的函数,可以执行context.been(idle()) 比unstashAll()

突然一看

java.lang.NullPointerException
at akka.actor.StashSupport.$anonfun$unstashAll$2(Stash.scala:217)
at akka.actor.StashSupport.$anonfun$unstashAll$2$adapted(Stash.scala:217)
at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:502)
at akka.actor.StashSupport.unstashAll(Stash.scala:218)
at akka.actor.StashSupport.unstashAll$(Stash.scala:215)
at com.myapp.TestActor.unstashAll(TestActor.scala:23)
at akka.actor.StashSupport.unstashAll(Stash.scala:198)
at akka.actor.StashSupport.unstashAll$(Stash.scala:198)
at myapp.TestActor.unstashAll(myapp.TestActor.scala:23)
at com.myapp.TestActor.com$myapp$TestActor$becomeIdle(TestActor.scala:122)
at com.myapp.TestActor$$anonfun$awaitData$1.applyOrElse(TestActor.scala:87)
at akka.actor.Actor.aroundReceive(Actor.scala:513)
at akka.actor.Actor.aroundReceive$(Actor.scala:511)
at com.myapp.TestActor.aroundReceive(TestActor.scala:23)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:519)
at akka.actor.ActorCell.invoke(ActorCell.scala:488)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)
at akka.dispatch.Mailbox.run(Mailbox.scala:224)
at akka.dispatch.Mailbox.exec(Mailbox.scala:234)
at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
我在调试器中跟踪它

斯卡拉酒店

198 def unstashAll(): Unit = unstashAll(_ ⇒ true)
然后

在字符串218处,我有“方法抛出'java.lang.NullPointerException'异常。无法计算scala.collection.iterator$$anon$12.toString()

我说的是

hd = null
hdDefined = false
$outer = {Vector$$anon$1@9153} "empty iterator"
  i = 0
$outer = {Vector@9133} "Vector" size = 1
  All elements are null
p = {StashSupport$lambda@11430} 
  arg = {StashSupport$lambda@9140} 
    Class has no fields

theStash = {Vector@9133} "Vector" size = 1
  All elements are null

请帮帮我!

你能共用一台最小的复制机吗?我只有一个演员,在那里我可以在没有藏品的情况下全部解压happenedI我很确定你正在做更多的事情,例如,以下不会导致NPE:你可能是在一个非常旧的Akka版本上吗?2.5.1是最新的稳定版本,2.4.18是最新的早期版本,你绝对不应该再使用2.3了,因为它已经是生命的尽头。
215 private[akka] def unstashAll(filterPredicate: Any ⇒ Boolean): Unit = {
216   try {
217     val i = theStash.reverseIterator.filter(envelope ⇒ filterPredicate(envelope.message))
218     while (i.hasNext) enqueueFirst(i.next())
219   } finally {
220     theStash = Vector.empty[Envelope]
221   }
222 }
hd = null
hdDefined = false
$outer = {Vector$$anon$1@9153} "empty iterator"
  i = 0
$outer = {Vector@9133} "Vector" size = 1
  All elements are null
p = {StashSupport$lambda@11430} 
  arg = {StashSupport$lambda@9140} 
    Class has no fields

theStash = {Vector@9133} "Vector" size = 1
  All elements are null