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)
>
>
>
>
>
>
>
>
>
>
>
>
>
>

Reply via email to