This stack trace seems impossible, because the 3rd line shows CASImpl.ll_getFSRef calling a FeatureStructureImpl.toString method, which I believe it doesn't do.
-M On 11/11/2019 3:58 AM, Mario Juric wrote: > Hi Peter, > > A while ago we started to get some erratic null pointer exceptions from Ruta > because the type of some feature structure element is null (see stack trace > below). The error is not consistently reproducible, in fact it seldomly > occurs and when reprocessing the document it doesn’t happen again. We > therefore think there are some race conditions at play when running in a > multithreaded environment as we do in production, and I was hoping that maybe > you would get an idea what might be causing it just by looking at the stack > trace. > > Cheers > Mario > > java.lang.NullPointerException at > org.apache.uima.cas.impl.FeatureStructureImpl.prettyPrint(FeatureStructureImpl.java:501) > at > org.apache.uima.cas.impl.FeatureStructureImpl.prettyPrint(FeatureStructureImpl.java:483) > at > org.apache.uima.cas.impl.FeatureStructureImpl.toString(FeatureStructureImpl.java:472) > at > org.apache.uima.cas.impl.FeatureStructureImpl.toString(FeatureStructureImpl.java:467) > at org.apache.uima.cas.impl.CASImpl.ll_getFSRef(CASImpl.java:3653) at > org.apache.uima.cas.impl.FeatureStructureImpl.setFeatureValue(FeatureStructureImpl.java:61) > at org.apache.uima.ruta.RutaStream.assignFeatureValue(RutaStream.java:1140) > at org.apache.uima.ruta.RutaStream.assignFeatureValues(RutaStream.java:1020) > at org.apache.uima.ruta.action.CreateAction.execute(CreateAction.java:74) at > org.apache.uima.ruta.rule.AbstractRuleElement.apply(AbstractRuleElement.java:133) > at > org.apache.uima.ruta.rule.RuleElementCaretaker.applyRuleElements(RuleElementCaretaker.java:121) > at > org.apache.uima.ruta.rule.ComposedRuleElement.applyRuleElements(ComposedRuleElement.java:621) > at > org.apache.uima.ruta.rule.AbstractRuleElement.doneMatching(AbstractRuleElement.java:86) > at > org.apache.uima.ruta.rule.ComposedRuleElement.fallback(ComposedRuleElement.java:526) > at > org.apache.uima.ruta.rule.ComposedRuleElement.fallbackContinue(ComposedRuleElement.java:419) > at > org.apache.uima.ruta.rule.RutaRuleElement.startMatch(RutaRuleElement.java:103) > at > org.apache.uima.ruta.rule.ComposedRuleElement.startMatch(ComposedRuleElement.java:76) > at org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:63) at > org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:54) at > org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:36) at > org.apache.uima.ruta.block.RutaScriptBlock.apply(RutaScriptBlock.java:67) at > org.apache.uima.ruta.RutaModule.apply(RutaModule.java:56) at > org.apache.uima.ruta.engine.RutaEngine.process(RutaEngine.java:561) at > org.apache.uima.analysis_component.JCasAnnotator_ImplBase.process(JCasAnnotator_ImplBase.java:48) > at > org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:401) > at > org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:318) > at > org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:570) > at > org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:412) > at > org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:344) > at > org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:271) > at > org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:570) > at > org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:412) > at > org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:344) > at > org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:271) > at > org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:570) > at > org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:412) > at > org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:344) > at > org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:271) > at > org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:570) > at > org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:412) > at > org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:344) > at > org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:271) > at > org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:269) > at > org.apache.uima.collection.impl.cpm.engine.ProcessingUnit.processNext(ProcessingUnit.java:895) > at > org.apache.uima.collection.impl.cpm.engine.ProcessingUnit.run(ProcessingUnit.java:575) > > > > > > > > > > > > > >