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)
