首页 文章

如何调试Scala Future?

提问于
浏览
5

如何调试Scala Future 中的代码?

我正在使用IntelliJ .

除了记录一切,我不知道如何 .

有关如何进行的任何建议?

EDIT1:

这是我得到的错误:

java.lang.IllegalAccessError:尝试访问字段org.iadb.poolpartyconnector.conceptsrecommendation.RelevantConceptsRecommendationServicePoolPartyImpl $$ anonfun $ 2 $$ anonfun $ apply $ 1 $$ anonfun $ apply $ 2 $$ anonfun $ apply $ 3.concepts $ 1 from class org.iadb .poolpartyconnector.conceptsrecommendation.RelevantConceptsRecommendationServicePoolPartyImpl $$ anonfun $ 2 $$ anonfun $ apply $ 1 $$ anonfun $ apply $ 3 $ GeneratedEvaluatorClass $ 3 $ 1 at org.iadb.poolpartyconnector.conceptsrecommendation.RelevantConceptsRecommendationServicePoolPartyImpl $$ anonfun $ 2 $$ anonfun $申请$ 1 $$ anonfun $申请$ 2 $$ anonfun $申请$ 3 $ GeneratedEvaluatorClass $ 3 $ 1.invoke(FileToCompile0.scala:173)org.iadb.poolpartyconnector.conceptsrecommendation.RelevantConceptsRecommendationServicePoolPartyImpl $$ anonfun $ 2 $$ anonfun $ apply $ 1 $$ anonfun $ apply $ 2 $$ anonfun $ apply $ 3.apply(RelevantConceptsRecommendationService.scala:169)org.iadb.poolpartyconnector.conceptsrecommendation.RelevantConceptsRecommendationServicePoolPartyImpl $$ anonfun $ 2 $$ a nonfun $ apply $ 1 $$ anonfun $ apply $ 3.apply(RelevantConceptsRecommendationService.scala:166)at scala.concurrent.impl.Future $ PromiseCompletingRunnable.liftedTree1 $ 1(Future.scala:24)at scala.concurrent . impl.Future $ PromiseCompletingRunnable.run(Future.scala:24)at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:40)at akka.dispatch.ForkJoinExecutorConfigurator $ AkkaForkJoinTask.exec(AbstractDispatcher.scala:397)at scala.concurrent .forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)at scala.concurrent.forkjoin.ForkJoinPool $ WorkQueue.runTask(ForkJoinPool.java:1339)at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)java.lang.NoSuchFieldError:doc $ 1 at org.iadb.poolpartyconnector.conceptsrecommendation.RelevantConceptsRecommendationServicePoolPartyImpl $$ anonfun $ 2 $$ anonfun $ apply $ 1 $$ anonfun $ apply $ 2 $$ anonfun $ $申请3个$ GeneratedEvaluatorClass $ 4 $ 1.invoke(FileToCompil e1.scala:173)at org.iadb.poolpartyconnector.conceptsrecommendation.RelevantConceptsRecommendationServicePoolPartyImpl $$ anonfun $ 2 $$ anonfun $ apply $ 1 $$ anonfun $ apply $ 2 $$ anonfun $ apply $ 3.apply(RelevantConceptsRecommendationService.scala:169)at org . iadb.poolpartyconnector.conceptsrecommendation.RelevantConceptsRecommendationServicePoolPartyImpl $$ anonfun $ 2 $$ anonfun $ apply $ 1 $$ anonfun $ apply $ 2 $$ anonfun $ apply $ 3.apply(RelevantConceptsRecommendationService.scala:166)at scala.concurrent.impl.Future $ PromiseCompletingRunnable.liftedTree1 $ 1(Future.scala:24)at scala.concurrent.impl.Future $ PromiseCompletingRunnable.run(Future.scala:24)at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:40)at akka.dispatch.ForkJoinExecutorConfigurator $ AkkaForkJoinTask .exec(AbstractDispatcher.scala:397)scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)scala.concurrent.forkjoin.ForkJoinPool $ WorkQueue.runTask(ForkJoinPool.java:1339)scala.concurrent . forkjoin.ForkJoinPool.runWorker(对于kJoinPool.java:1979)scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

我的代码:

def filterResultsWithExtractionSettings(conceptResults: ConceptResults): ConceptResults = {

    import system.dispatcher

    val mylist: Iterable[Future[List[Concept]]] = for (fieldSettings <- fieldSettingsList if fieldSettings.maxConceptsExtraction > 0; doc <- conceptResults.document; concepts <- doc.concepts) yield {

       Future {
         val schemefiltered = concepts.withFilter(e => e.conceptSchemes.contains(fieldSettings.scheme)).flatMap(e=> List(e))

          schemefiltered.size match {
           case e if e > fieldSettings.maxConceptsExtraction => schemefiltered.take(fieldSettings.maxConceptsExtraction)
           case _ => schemefiltered
         }
       }

     }

    val res = Await.result(Future.sequence(mylist), Duration.Inf).flatten.toList

    val distinctRes = res.distinct

    conceptResults.copy(document = Some(conceptResults.document.get.copy(concepts = Some(distinctRes))))

}

1 回答

相关问题