Vertx complains about a one-time initialisation code that scans the class graph
The following trace appears every time the Braid server runs using BraidMain
(doesn't seem to occur with BraidDocsMain
):
Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 3148 ms, time limit is 2000 ms
Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 4148 ms, time limit is 2000 ms
Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 5149 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
at java.util.concurrent.FutureTask.get(FutureTask.java:191)
at io.github.classgraph.ClassGraph.scan(ClassGraph.java:1132)
at io.github.classgraph.ClassGraph.scan(ClassGraph.java:1173)
at io.github.classgraph.ClassGraph.scan(ClassGraph.java:1185)
at io.bluebank.braid.corda.server.CordappScanner$classGraph$2.invoke(CordappScanner.kt:38)
at io.bluebank.braid.corda.server.CordappScanner$classGraph$2.invoke(CordappScanner.kt:27)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at io.bluebank.braid.corda.server.CordappScanner.getClassGraph(CordappScanner.kt)
at io.bluebank.braid.corda.server.CordappScanner.access$getClassGraph$p(CordappScanner.kt:27)
at io.bluebank.braid.corda.server.CordappScanner$flows$2.invoke(CordappScanner.kt:46)
at io.bluebank.braid.corda.server.CordappScanner$flows$2.invoke(CordappScanner.kt:27)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at io.bluebank.braid.corda.server.CordappScanner.getFlows(CordappScanner.kt)
at io.bluebank.braid.corda.server.CordappScanner.access$getFlows$p(CordappScanner.kt:27)
at io.bluebank.braid.corda.server.CordappScanner$flowClassesByCordapp$2.invoke(CordappScanner.kt:58)
at io.bluebank.braid.corda.server.CordappScanner$flowClassesByCordapp$2.invoke(CordappScanner.kt:27)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at io.bluebank.braid.corda.server.CordappScanner.getFlowClassesByCordapp(CordappScanner.kt)
at io.bluebank.braid.corda.server.CordappScanner.cordappAndFlowList(CordappScanner.kt:71)
at io.bluebank.braid.corda.server.BraidCordaStandaloneServer$restConfig$1$3.invoke(BraidCordaStandaloneServer.kt:82)
at io.bluebank.braid.corda.server.BraidCordaStandaloneServer$restConfig$1$3.invoke(BraidCordaStandaloneServer.kt:32)
at io.bluebank.braid.corda.rest.RestMounter.group(RestMounter.kt:167)
at io.bluebank.braid.corda.server.BraidCordaStandaloneServer$restConfig$1.invoke(BraidCordaStandaloneServer.kt:78)
at io.bluebank.braid.corda.server.BraidCordaStandaloneServer$restConfig$1.invoke(BraidCordaStandaloneServer.kt:32)
at io.bluebank.braid.corda.rest.RestConfig$withPaths$1.invoke(RestConfig.kt:83)
at io.bluebank.braid.corda.rest.RestConfig$withPaths$1.invoke(RestConfig.kt:24)
at io.bluebank.braid.corda.rest.RestMounter.mount(RestMounter.kt:100)
at io.bluebank.braid.corda.rest.RestMounter.<init>(RestMounter.kt:92)
at io.bluebank.braid.corda.rest.RestMounter$Companion.mount(RestMounter.kt:51)
at io.bluebank.braid.corda.BraidVerticle.setupRouter(BraidVerticle.kt:80)
at io.bluebank.braid.corda.BraidVerticle.start(BraidVerticle.kt:44)
at io.vertx.core.impl.DeploymentManager.lambda$doDeploy$8(DeploymentManager.java:552)
at io.vertx.core.impl.DeploymentManager$$Lambda$469/1149640671.handle(Unknown Source)
at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:320)
at io.vertx.core.impl.EventLoopContext.lambda$executeAsync$0(EventLoopContext.java:38)
at io.vertx.core.impl.EventLoopContext$$Lambda$470/1199877624.run(Unknown Source)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:495)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:748)
Edited by Xavier Arias