当我使用 2 个并发用户调用微笑库的 predict 方法时,出现以下错误。我正在使用 Gatling 和 akka http 网络服务。升级到 2.6 的微笑并没有解决问题。当我按顺序运行请求时,问题不会发生。
ERROR com.xxx.search.Server$ - Failed request
java.lang.NullPointerException: null
at smile.data.formula.Formula$2.getDouble(Formula.java:358)
at smile.base.cart.OrdinalNode.predict(OrdinalNode.java:45)
at smile.classification.DecisionTree.predict(DecisionTree.java:361)
at smile.classification.RandomForest.predict(RandomForest.java:514)
at MLUtil.AssetClassifierModel.$anonfun$predict$1(AssetClassifierModel.scala:32)
at MLUtil.AssetClassifierModel.$anonfun$predict$1$adapted(AssetClassifierModel.scala:31)
at scala.collection.immutable.Range.map(Range.scala:59)
at MLUtil.AssetClassifierModel.predict(AssetClassifierModel.scala:31)
at MLUtil.AssetClassifierModel.predict(AssetClassifierModel.scala:41)
at classifier.AssetClassifier.predict(AssetClassifier.scala:52)
at com.refinitiv.eit.isearch.runtime.AssetClassifierImpl$.$anonfun$classify$1(AssetClassifierImpl.scala:28)
at scala.concurrent.Future$.$anonfun$apply$1(Future.scala:661)
at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:430)
at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55)
at akka.dispatch.BatchingExecutor$BlockableBatch.$anonfun$run$1(BatchingExecutor.scala:92)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:94)
at akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:92)
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:42)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:47)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)