How to debug Scala Future?

How to debug code in Scala Future ?

I am using IntelliJ.

Apart from registering everyone, I don’t see how to do it.

Consult how to proceed?

EDIT1:

Here is the error I get:

java.lang.IllegalAccessError: tried to access the org.iadb.poolpartyconnector.conceptsrecommendation.RelevantConceptsRecommendationServicePoolPartyImpl $$ anonfun $ 2 $$ anonfun $ field apply $ 1 $$ anonfun $ apply $ 2 $$ anonfun $ apply anonfun $ 3 anonfun $ apply ... apply $ 1 $$ anonfun $ apply $ 2 $$ anonfun $ apply $ 3 $ GeneratedEvaluatorClass $ 3 $ 1.invoke (FileToCompile0.scala: 173) in org.iadb.poolpartyconnector.conceptsrecommendation.RelevantConceptsRecommendationServicePoolPartyIm pl $$ anonfun $ 2 $$ anonfun $ apply $ 1 $$ anonfun $ apply $ 2 $$ anonfun $ apply $ 3.Apply (RelevantConceptsRecommendationService.scala: 169) in org.iadb.poolpartyconnector.conceptsrecommendation.RelevantConceptsRecomun $fon $ $ apply $ 1 $$ anonfun $ apply $ 2 $$ anonfun $ apply $ 3.Apply (RelevantConceptsRecommendationService.scala: 166) in scala.concurrent.impl.Future $ PromiseCompletingRunnable.liftedTree1 $ 1 (Future.scala: 24) in scala.concurrent. Future $ PromiseCompletingRunnable.run (Future.scala: 24) at akka.dispatch.TaskInvocation.run (AbstractDispatcher.scala: 40) at akka.dispatch.ForkJoinExecutorConfigurator $ AkkaForkJoinTask.exec (AbstractDispatcher.fala .ForkJoinTask.doExec (ForkJoinTask.java:260) in scala.concurrent.forkjoin.ForkJoinPool $ WorkQueue.runTask (ForkJoinPool.java:1339) in scala.concurrent.forkjoin. ForkJoinPool.runWorker (ForkJoinPool.java:1979) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run (ForkJoinWorkerThread.java:107) java.lang.NoSuchFieldErcept. $ CommendPerception.ocomprement.ocomplendment.ocomprement.ocompartment.confrement.ocommit $ anonfun $ apply $ 1 $$ anonfun $ apply $ 2 $$ anonfun $ apply $ 3 $ GeneratedEvaluatorClass $ 4 $ 1.invoke (FileToCompile1.scala: 173) in org.iadb.poolpartyconnector.conceptsrecommendation.RelevantConceptsRecommendationServiceplun $ $$$$ $ $ $$ anonfun $ apply $ 2 $$ anonfun $ apply $ 3.Apply (RelevantConceptsRecommendationService.scala: 169) in org.iadb.poolpartyconnector.conceptsrecommendation.RelevantConceptsRecommendationServicePoolPartyImpl $ 2 $on $ 2 $onfun $ 2 $on $ 2$on $ 1 $$$ $ apply $ 3.Apply (RelevantConceptsR ecommendationService.scala: 166) at scala.concurrent.impl.Future $ PromiseCompletingRunnable.liftedTree1 $ 1 (Future.scala: 24) at scala.concurrent.impl.Future $ PromiseCompletingRunnable.run (Future.scala: 24) at akkad. TaskInvocation.run (AbstractDispatcher.scala: 40) at akka.dispatch.ForkJoinExecutorConfigurator $ AkkaForkJoinTask.exec (AbstractDispatcher.scala: 397) in scala.concurrent.forkjoin.ForkJoinTask.doExec (ForkJocurnto.curcnoctork.jocurcto.fcurconfork.jocurctork.jocurconfork.jocurt60.curcurfork.jocurconfork.jcurconfork.jo .ForkJoinPool $ WorkQueue.runTask (ForkJoinPool.java:1339) in scala.concurrent.forkjoin.ForkJoinPool.runWorker (ForkJoinPool.java:1979) in scala.concurrent.forkjoin.ForkJoinWorkerThreadjun.

My code is:

 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)))) } 
+5
source share
1 answer

Since you are using IntelliJ, you can add a breakpoint in the future. You can do this by clicking on the gutter to the left of the line of text in which you want the breakpoint to be enabled.

https://www.jetbrains.com/idea/help/creating-breakpoints.html

-1
source

All Articles