How to debug Scala Future? -


how debug code in scala future?

i'm using intellij.

aside logging don't see how.

any advise on how proceed?

edit1:

here error get:

java.lang.illegalaccesserror: tried access field org.iadb.poolpartyconnector.conceptsrecommendation.relevantconceptsrecommendationservicepoolpartyimpl$$anonfun$2$$anonfun$apply$1$$anonfun$apply$2$$anonfun$apply$3.concepts$1 class org.iadb.poolpartyconnector.conceptsrecommendation.relevantconceptsrecommendationservicepoolpartyimpl$$anonfun$2$$anonfun$apply$1$$anonfun$apply$2$$anonfun$apply$3$generatedevaluatorclass$3$1 @ org.iadb.poolpartyconnector.conceptsrecommendation.relevantconceptsrecommendationservicepoolpartyimpl$$anonfun$2$$anonfun$apply$1$$anonfun$apply$2$$anonfun$apply$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$$anonfun$apply$1$$anonfun$apply$2$$anonfun$apply$3.apply(relevantconceptsrecommendationservice.scala:166) @ scala.concurrent.impl.future$promisecompletingrunnable.liftedtree1$1(future.scala:24) @ scala.concurrent.impl.future$promisecompletingrunnable.run(future.scala:24) @ akka.dispatch.taskinvocation.run(abstractdispatcher.scala:40) @ 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(forkjoinpool.java:1979) @ scala.concurrent.forkjoin.forkjoinworkerthread.run(forkjoinworkerthread.java:107) java.lang.nosuchfielderror: doc$1 @ org.iadb.poolpartyconnector.conceptsrecommendation.relevantconceptsrecommendationservicepoolpartyimpl$$anonfun$2$$anonfun$apply$1$$anonfun$apply$2$$anonfun$apply$3$generatedevaluatorclass$4$1.invoke(filetocompile1.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$$anonfun$apply$1$$anonfun$apply$2$$anonfun$apply$3.apply(relevantconceptsrecommendationservice.scala:166) @ scala.concurrent.impl.future$promisecompletingrunnable.liftedtree1$1(future.scala:24) @ scala.concurrent.impl.future$promisecompletingrunnable.run(future.scala:24) @ akka.dispatch.taskinvocation.run(abstractdispatcher.scala:40) @ 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(forkjoinpool.java:1979) @ scala.concurrent.forkjoin.forkjoinworkerthread.run(forkjoinworkerthread.java:107)

my code:

def filterresultswithextractionsettings(conceptresults: conceptresults): conceptresults = {      import system.dispatcher      val mylist: iterable[future[list[concept]]] = (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))))  } 

since using intellij, can add breakpoint within future. can clicking on gutter left of line of text want breakpoint on.

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


Comments