Hello, Okay, I found why my toy worked. I call AbstractEventTrainer.doTrain(DataIndexer) as oppose to AbstractEventTrainer.train(ObjectStream<Event>). The train method calls isValid(). That sets the value of threads in QNTrainer.
Thank you for making me do this. I don’t think doTrain() should be exposed anymore. A new method train(DataIndexer) that calls isValid and then doTrain(indexer) is probably a better idea. Is it important to calculate the hash of all events? Daniel On 10/27/16, 11:49 AM, "Russ, Daniel (NIH/CIT) [E]" <dr...@mail.nih.gov> wrote: Comment 1: Here is my Stacktrace: Exception in thread "main" java.lang.IllegalArgumentException: Number of threads must 1 or larger at opennlp.tools.ml.maxent.quasinewton.ParallelNegLogLikelihood.<init>(ParallelNegLogLikelihood.java:50) at opennlp.tools.ml.maxent.quasinewton.QNTrainer.trainModel(QNTrainer.java:165) at opennlp.tools.ml.maxent.quasinewton.QNTrainer.doTrain(QNTrainer.java:152) at opennlp.tools.ml.maxent.quasinewton.QNTrainer.doTrain(QNTrainer.java:1) at gov.nih.cit.test.smlm.SOCcerME.train(SOCcerME.java:131) at gov.nih.cit.test.smlm.SOCcerME.main(SOCcerME.java:310) So I threw together a small toy to get the same error. It worked… Let me track this down some more.