scala - Could not initialize class $line10.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$ -




i starting day weird problem. can't see wrong code. take lines below

import scala.concurrent._ import scala.concurrent.duration._ import scala.util._ import scala.concurrent.executioncontext.implicits.global  def f2 = future.failed(new exception("i nothing")) def f1 = future { println("working"); thread.sleep(5000); 1 }  val list = list(f2, f1) val consolidated = future.sequence(list) consolidated.oncomplete {   case success(_) => println("completed successfully")   case failure(e) => println(s"failed ${e.getmessage}") } await.result(consolidated, duration.inf) 

and :paste in repl. see weird exception

~ > scala welcome scala 2.12.1 (java hotspot(tm) 64-bit server vm, java 1.8.0_121). type in expressions evaluation. or try :help.  scala> :paste // entering paste mode (ctrl-d finish)  import scala.concurrent._ import scala.concurrent.duration._ import scala.util._ import scala.concurrent.executioncontext.implicits.global  def f2 = future.failed(new exception("no work")) def f1 = future { println("working"); thread.sleep(5000); 1 }  val list = list(f2, f1) val consolidated = future.sequence(list) consolidated.oncomplete {   case success(_) => println("completed successfully")   case failure(e) => println(s"failed ${e.getmessage}") } await.result(consolidated, duration.inf)   // exiting paste mode, interpreting.  java.lang.noclassdeffounderror: not initialize class $line3.$read$$iw$$iw$     @ scala.concurrent.impl.callbackrunnable.run(promise.scala:60)     @ scala.concurrent.impl.executioncontextimpl$adaptedforkjointask.exec(executioncontextimpl.scala:140)     @ java.util.concurrent.forkjointask.doexec(forkjointask.java:289)     @ java.util.concurrent.forkjoinpool$workqueue.runtask(forkjoinpool.java:1056)     @ java.util.concurrent.forkjoinpool.runworker(forkjoinpool.java:1692)     @ java.util.concurrent.forkjoinworkerthread.run(forkjoinworkerthread.java:157) java.lang.noclassdeffounderror: not initialize class $line3.$read$$iw$$iw$     @ scala.runtime.java8.jfunction0$mci$sp.apply(jfunction0$mci$sp.java:12)     @ scala.concurrent.future$.$anonfun$apply$1(future.scala:653)     @ scala.util.success.$anonfun$map$1(try.scala:251)     @ scala.util.success.map(try.scala:209)     @ scala.concurrent.future.$anonfun$map$1(future.scala:287)     @ scala.concurrent.impl.promise.liftedtree1$1(promise.scala:29)     @ scala.concurrent.impl.promise.$anonfun$transform$1(promise.scala:29)     @ scala.concurrent.impl.callbackrunnable.run(promise.scala:60)     @ scala.concurrent.impl.executioncontextimpl$adaptedforkjointask.exec(executioncontextimpl.scala:140)     @ java.util.concurrent.forkjointask.doexec(forkjointask.java:289)     @ java.util.concurrent.forkjoinpool$workqueue.runtask(forkjoinpool.java:1056)     @ java.util.concurrent.forkjoinpool.runworker(forkjoinpool.java:1692)     @ java.util.concurrent.forkjoinworkerthread.run(forkjoinworkerthread.java:157) java.lang.exception: nothing   @ .f2(<console>:16)   ... 29 elided  scala> 

i see no reason could not initialize class errors. according me code should print "failed no work"

the problem this

await.result(consolidated, duration.inf) 

when await future, , future fails, exception contains thrown. due how repl works, having uncaught exception causes of machinery break. seems bug in repl, doesn't seem have been reported yet.

note oncomplete doesn't change result of future. schedules done after future complete. in particular, not consume future. if meant transform future, this:

val transformed: future[string] = consolidated.andthen {   case success(v) => "completed successfully"   case failure(e) => s"failed ${e.getmessage}" }  println(await.result(transformed, duration.inf)) 




wiki

Comments

Popular posts from this blog

Asterisk AGI Python Script to Dialplan does not work -

python - Read npy file directly from S3 StreamingBody -

kotlin - Out-projected type in generic interface prohibits the use of metod with generic parameter -