Project

Profile

Help

Support #4934

closed

NullPointerException - race condition

Added by Johan Gheys about 3 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Multithreading
Sprint/Milestone:
-
Start date:
2021-03-12
Due date:
% Done:

0%

Estimated time:
Legacy ID:
Applies to branch:
Fix Committed on Branch:
Fixed in Maintenance Release:
Platforms:

Description

I use Saxon-EE 10.3 and have a NPE giving the logging below. I think it's a race condition because a restart didn't cause any problems anymore (so for me it's ok). I just hope that you can improve your code using this logging:

java.lang.NullPointerException at net.sf.saxon.tree.tiny.TinyNodeImpl.getFingerprint(TinyNodeImpl.java:286) at net.sf.saxon.pattern.NameTest.test(NameTest.java:179) at net.sf.saxon.pattern.NameTest.test(NameTest.java:29) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:39) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:20) at net.sf.saxon.om.FocusTrackingIterator.next(FocusTrackingIterator.java:76) at com.saxonica.ee.optim.MultithreadedFocusTrackingIterator.next(MultithreadedFocusTrackingIterator.java:57) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:45) at gen_CompiledFilterIterator_10240.matches(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:388) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:46) at com.saxonica.ee.bytecode.iter.OneToOneMappingIterator.next(OneToOneMappingIterator.java:39) at net.sf.saxon.expr.ContextMappingIterator.next(ContextMappingIterator.java:52) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.next(MemoSequence.java:228) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.materialize(MemoSequence.java:287) at net.sf.saxon.om.SequenceTool.toMemoSequence(SequenceTool.java:63) at net.sf.saxon.value.MemoClosure.makeSequence(MemoClosure.java:88) at net.sf.saxon.value.MemoClosure.iterate(MemoClosure.java:81) at EE_sequence_103501790450510.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:125) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10204243984028.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:103) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10428168714818.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_let_108891776622040.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:157) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_119521511623807.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_treatAs_11939865582494.evaluateItem(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:226) at com.saxonica.ee.bytecode.CompiledExpression.evaluateItem(CompiledExpression.java:218) at com.saxonica.ee.bytecode.ByteCodeCandidate.evaluateItem(ByteCodeCandidate.java:299) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:151) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:148) at net.sf.saxon.expr.instruct.UserFunction.call(UserFunction.java:645) at EE_resultDocument_10014657967550.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:526) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at net.sf.saxon.expr.instruct.ResultDocument.processInstruction(ResultDocument.java:405) at com.saxonica.config.EnterpriseConfiguration.lambda$processResultDocument$2(EnterpriseConfiguration.java:2162) at com.saxonica.config.EnterpriseConfiguration$$Lambda$116.0000000027DE16F0.call(Unknown Source) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.lang.Thread.run(Thread.java:812) java.lang.RuntimeException: Internal error evaluating template rule at line 113 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10204243984028.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:103) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10428168714818.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_let_108891776622040.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:157) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_119521511623807.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_treatAs_11939865582494.evaluateItem(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:226) at com.saxonica.ee.bytecode.CompiledExpression.evaluateItem(CompiledExpression.java:218) at com.saxonica.ee.bytecode.ByteCodeCandidate.evaluateItem(ByteCodeCandidate.java:299) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:151) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:148) at net.sf.saxon.expr.instruct.UserFunction.call(UserFunction.java:645) at EE_resultDocument_10014657967550.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:526) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at net.sf.saxon.expr.instruct.ResultDocument.processInstruction(ResultDocument.java:405) at com.saxonica.config.EnterpriseConfiguration.lambda$processResultDocument$2(EnterpriseConfiguration.java:2162) at com.saxonica.config.EnterpriseConfiguration$$Lambda$116.0000000027DE16F0.call(Unknown Source) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.lang.Thread.run(Thread.java:812) Caused by: java.lang.NullPointerException at net.sf.saxon.tree.tiny.TinyNodeImpl.getFingerprint(TinyNodeImpl.java:286) at net.sf.saxon.pattern.NameTest.test(NameTest.java:179) at net.sf.saxon.pattern.NameTest.test(NameTest.java:29) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:39) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:20) at net.sf.saxon.om.FocusTrackingIterator.next(FocusTrackingIterator.java:76) at com.saxonica.ee.optim.MultithreadedFocusTrackingIterator.next(MultithreadedFocusTrackingIterator.java:57) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:45) at gen_CompiledFilterIterator_10240.matches(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:388) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:46) at com.saxonica.ee.bytecode.iter.OneToOneMappingIterator.next(OneToOneMappingIterator.java:39) at net.sf.saxon.expr.ContextMappingIterator.next(ContextMappingIterator.java:52) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.next(MemoSequence.java:228) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.materialize(MemoSequence.java:287) at net.sf.saxon.om.SequenceTool.toMemoSequence(SequenceTool.java:63) at net.sf.saxon.value.MemoClosure.makeSequence(MemoClosure.java:88) at net.sf.saxon.value.MemoClosure.iterate(MemoClosure.java:81) at EE_sequence_103501790450510.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:125) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 44 more java.lang.RuntimeException: Internal error evaluating template rule at line 112 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10204243984028.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:103) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10428168714818.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_let_108891776622040.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:157) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_119521511623807.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_treatAs_11939865582494.evaluateItem(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:226) at com.saxonica.ee.bytecode.CompiledExpression.evaluateItem(CompiledExpression.java:218) at com.saxonica.ee.bytecode.ByteCodeCandidate.evaluateItem(ByteCodeCandidate.java:299) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:151) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:148) at net.sf.saxon.expr.instruct.UserFunction.call(UserFunction.java:645) at EE_resultDocument_10014657967550.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:526) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at net.sf.saxon.expr.instruct.ResultDocument.processInstruction(ResultDocument.java:405) at com.saxonica.config.EnterpriseConfiguration.lambda$processResultDocument$2(EnterpriseConfiguration.java:2162) at com.saxonica.config.EnterpriseConfiguration$$Lambda$116.0000000027DE16F0.call(Unknown Source) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.lang.Thread.run(Thread.java:812) Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 113 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 42 more Caused by: java.lang.NullPointerException at net.sf.saxon.tree.tiny.TinyNodeImpl.getFingerprint(TinyNodeImpl.java:286) at net.sf.saxon.pattern.NameTest.test(NameTest.java:179) at net.sf.saxon.pattern.NameTest.test(NameTest.java:29) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:39) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:20) at net.sf.saxon.om.FocusTrackingIterator.next(FocusTrackingIterator.java:76) at com.saxonica.ee.optim.MultithreadedFocusTrackingIterator.next(MultithreadedFocusTrackingIterator.java:57) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:45) at gen_CompiledFilterIterator_10240.matches(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:388) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:46) at com.saxonica.ee.bytecode.iter.OneToOneMappingIterator.next(OneToOneMappingIterator.java:39) at net.sf.saxon.expr.ContextMappingIterator.next(ContextMappingIterator.java:52) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.next(MemoSequence.java:228) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.materialize(MemoSequence.java:287) at net.sf.saxon.om.SequenceTool.toMemoSequence(SequenceTool.java:63) at net.sf.saxon.value.MemoClosure.makeSequence(MemoClosure.java:88) at net.sf.saxon.value.MemoClosure.iterate(MemoClosure.java:81) at EE_sequence_103501790450510.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:125) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 44 more java.lang.RuntimeException: Internal error evaluating template rule at line 105 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10428168714818.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_let_108891776622040.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:157) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_119521511623807.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_treatAs_11939865582494.evaluateItem(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:226) at com.saxonica.ee.bytecode.CompiledExpression.evaluateItem(CompiledExpression.java:218) at com.saxonica.ee.bytecode.ByteCodeCandidate.evaluateItem(ByteCodeCandidate.java:299) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:151) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:148) at net.sf.saxon.expr.instruct.UserFunction.call(UserFunction.java:645) at EE_resultDocument_10014657967550.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:526) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at net.sf.saxon.expr.instruct.ResultDocument.processInstruction(ResultDocument.java:405) at com.saxonica.config.EnterpriseConfiguration.lambda$processResultDocument$2(EnterpriseConfiguration.java:2162) at com.saxonica.config.EnterpriseConfiguration$$Lambda$116.0000000027DE16F0.call(Unknown Source) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.lang.Thread.run(Thread.java:812) Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 112 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10204243984028.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:103) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 38 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 113 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 42 more Caused by: java.lang.NullPointerException at net.sf.saxon.tree.tiny.TinyNodeImpl.getFingerprint(TinyNodeImpl.java:286) at net.sf.saxon.pattern.NameTest.test(NameTest.java:179) at net.sf.saxon.pattern.NameTest.test(NameTest.java:29) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:39) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:20) at net.sf.saxon.om.FocusTrackingIterator.next(FocusTrackingIterator.java:76) at com.saxonica.ee.optim.MultithreadedFocusTrackingIterator.next(MultithreadedFocusTrackingIterator.java:57) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:45) at gen_CompiledFilterIterator_10240.matches(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:388) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:46) at com.saxonica.ee.bytecode.iter.OneToOneMappingIterator.next(OneToOneMappingIterator.java:39) at net.sf.saxon.expr.ContextMappingIterator.next(ContextMappingIterator.java:52) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.next(MemoSequence.java:228) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.materialize(MemoSequence.java:287) at net.sf.saxon.om.SequenceTool.toMemoSequence(SequenceTool.java:63) at net.sf.saxon.value.MemoClosure.makeSequence(MemoClosure.java:88) at net.sf.saxon.value.MemoClosure.iterate(MemoClosure.java:81) at EE_sequence_103501790450510.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:125) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 44 more java.lang.RuntimeException: Internal error evaluating template rule at line 102 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10428168714818.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_let_108891776622040.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:157) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_119521511623807.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_treatAs_11939865582494.evaluateItem(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:226) at com.saxonica.ee.bytecode.CompiledExpression.evaluateItem(CompiledExpression.java:218) at com.saxonica.ee.bytecode.ByteCodeCandidate.evaluateItem(ByteCodeCandidate.java:299) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:151) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:148) at net.sf.saxon.expr.instruct.UserFunction.call(UserFunction.java:645) at EE_resultDocument_10014657967550.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:526) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at net.sf.saxon.expr.instruct.ResultDocument.processInstruction(ResultDocument.java:405) at com.saxonica.config.EnterpriseConfiguration.lambda$processResultDocument$2(EnterpriseConfiguration.java:2162) at com.saxonica.config.EnterpriseConfiguration$$Lambda$116.0000000027DE16F0.call(Unknown Source) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.lang.Thread.run(Thread.java:812) Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 105 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 36 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 112 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10204243984028.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:103) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 38 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 113 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 42 more Caused by: java.lang.NullPointerException at net.sf.saxon.tree.tiny.TinyNodeImpl.getFingerprint(TinyNodeImpl.java:286) at net.sf.saxon.pattern.NameTest.test(NameTest.java:179) at net.sf.saxon.pattern.NameTest.test(NameTest.java:29) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:39) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:20) at net.sf.saxon.om.FocusTrackingIterator.next(FocusTrackingIterator.java:76) at com.saxonica.ee.optim.MultithreadedFocusTrackingIterator.next(MultithreadedFocusTrackingIterator.java:57) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:45) at gen_CompiledFilterIterator_10240.matches(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:388) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:46) at com.saxonica.ee.bytecode.iter.OneToOneMappingIterator.next(OneToOneMappingIterator.java:39) at net.sf.saxon.expr.ContextMappingIterator.next(ContextMappingIterator.java:52) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.next(MemoSequence.java:228) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.materialize(MemoSequence.java:287) at net.sf.saxon.om.SequenceTool.toMemoSequence(SequenceTool.java:63) at net.sf.saxon.value.MemoClosure.makeSequence(MemoClosure.java:88) at net.sf.saxon.value.MemoClosure.iterate(MemoClosure.java:81) at EE_sequence_103501790450510.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:125) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 44 more java.lang.RuntimeException: Internal error evaluating template rule at line 97 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_let_108891776622040.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:157) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_119521511623807.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_treatAs_11939865582494.evaluateItem(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:226) at com.saxonica.ee.bytecode.CompiledExpression.evaluateItem(CompiledExpression.java:218) at com.saxonica.ee.bytecode.ByteCodeCandidate.evaluateItem(ByteCodeCandidate.java:299) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:151) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:148) at net.sf.saxon.expr.instruct.UserFunction.call(UserFunction.java:645) at EE_resultDocument_10014657967550.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:526) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at net.sf.saxon.expr.instruct.ResultDocument.processInstruction(ResultDocument.java:405) at com.saxonica.config.EnterpriseConfiguration.lambda$processResultDocument$2(EnterpriseConfiguration.java:2162) at com.saxonica.config.EnterpriseConfiguration$$Lambda$116.0000000027DE16F0.call(Unknown Source) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.lang.Thread.run(Thread.java:812) Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 102 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10428168714818.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 32 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 105 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 36 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 112 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10204243984028.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:103) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 38 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 113 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 42 more Caused by: java.lang.NullPointerException at net.sf.saxon.tree.tiny.TinyNodeImpl.getFingerprint(TinyNodeImpl.java:286) at net.sf.saxon.pattern.NameTest.test(NameTest.java:179) at net.sf.saxon.pattern.NameTest.test(NameTest.java:29) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:39) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:20) at net.sf.saxon.om.FocusTrackingIterator.next(FocusTrackingIterator.java:76) at com.saxonica.ee.optim.MultithreadedFocusTrackingIterator.next(MultithreadedFocusTrackingIterator.java:57) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:45) at gen_CompiledFilterIterator_10240.matches(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:388) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:46) at com.saxonica.ee.bytecode.iter.OneToOneMappingIterator.next(OneToOneMappingIterator.java:39) at net.sf.saxon.expr.ContextMappingIterator.next(ContextMappingIterator.java:52) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.next(MemoSequence.java:228) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.materialize(MemoSequence.java:287) at net.sf.saxon.om.SequenceTool.toMemoSequence(SequenceTool.java:63) at net.sf.saxon.value.MemoClosure.makeSequence(MemoClosure.java:88) at net.sf.saxon.value.MemoClosure.iterate(MemoClosure.java:81) at EE_sequence_103501790450510.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:125) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 44 more java.lang.RuntimeException: Internal error evaluating template rule at line 95 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_let_108891776622040.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:157) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_119521511623807.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_treatAs_11939865582494.evaluateItem(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:226) at com.saxonica.ee.bytecode.CompiledExpression.evaluateItem(CompiledExpression.java:218) at com.saxonica.ee.bytecode.ByteCodeCandidate.evaluateItem(ByteCodeCandidate.java:299) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:151) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:148) at net.sf.saxon.expr.instruct.UserFunction.call(UserFunction.java:645) at EE_resultDocument_10014657967550.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:526) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at net.sf.saxon.expr.instruct.ResultDocument.processInstruction(ResultDocument.java:405) at com.saxonica.config.EnterpriseConfiguration.lambda$processResultDocument$2(EnterpriseConfiguration.java:2162) at com.saxonica.config.EnterpriseConfiguration$$Lambda$116.0000000027DE16F0.call(Unknown Source) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.lang.Thread.run(Thread.java:812) Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 97 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 30 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 102 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10428168714818.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 32 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 105 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 36 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 112 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10204243984028.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:103) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 38 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 113 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 42 more Caused by: java.lang.NullPointerException at net.sf.saxon.tree.tiny.TinyNodeImpl.getFingerprint(TinyNodeImpl.java:286) at net.sf.saxon.pattern.NameTest.test(NameTest.java:179) at net.sf.saxon.pattern.NameTest.test(NameTest.java:29) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:39) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:20) at net.sf.saxon.om.FocusTrackingIterator.next(FocusTrackingIterator.java:76) at com.saxonica.ee.optim.MultithreadedFocusTrackingIterator.next(MultithreadedFocusTrackingIterator.java:57) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:45) at gen_CompiledFilterIterator_10240.matches(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:388) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:46) at com.saxonica.ee.bytecode.iter.OneToOneMappingIterator.next(OneToOneMappingIterator.java:39) at net.sf.saxon.expr.ContextMappingIterator.next(ContextMappingIterator.java:52) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.next(MemoSequence.java:228) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.materialize(MemoSequence.java:287) at net.sf.saxon.om.SequenceTool.toMemoSequence(SequenceTool.java:63) at net.sf.saxon.value.MemoClosure.makeSequence(MemoClosure.java:88) at net.sf.saxon.value.MemoClosure.iterate(MemoClosure.java:81) at EE_sequence_103501790450510.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:125) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 44 more java.lang.RuntimeException: Internal error evaluating template rule at line 153 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_119521511623807.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_treatAs_11939865582494.evaluateItem(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:226) at com.saxonica.ee.bytecode.CompiledExpression.evaluateItem(CompiledExpression.java:218) at com.saxonica.ee.bytecode.ByteCodeCandidate.evaluateItem(ByteCodeCandidate.java:299) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:151) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:148) at net.sf.saxon.expr.instruct.UserFunction.call(UserFunction.java:645) at EE_resultDocument_10014657967550.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:526) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at net.sf.saxon.expr.instruct.ResultDocument.processInstruction(ResultDocument.java:405) at com.saxonica.config.EnterpriseConfiguration.lambda$processResultDocument$2(EnterpriseConfiguration.java:2162) at com.saxonica.config.EnterpriseConfiguration$$Lambda$116.0000000027DE16F0.call(Unknown Source) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.lang.Thread.run(Thread.java:812) Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 95 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_let_108891776622040.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:157) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 26 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 97 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 30 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 102 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10428168714818.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 32 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 105 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 36 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 112 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10204243984028.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:103) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 38 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 113 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 42 more Caused by: java.lang.NullPointerException at net.sf.saxon.tree.tiny.TinyNodeImpl.getFingerprint(TinyNodeImpl.java:286) at net.sf.saxon.pattern.NameTest.test(NameTest.java:179) at net.sf.saxon.pattern.NameTest.test(NameTest.java:29) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:39) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:20) at net.sf.saxon.om.FocusTrackingIterator.next(FocusTrackingIterator.java:76) at com.saxonica.ee.optim.MultithreadedFocusTrackingIterator.next(MultithreadedFocusTrackingIterator.java:57) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:45) at gen_CompiledFilterIterator_10240.matches(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:388) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:46) at com.saxonica.ee.bytecode.iter.OneToOneMappingIterator.next(OneToOneMappingIterator.java:39) at net.sf.saxon.expr.ContextMappingIterator.next(ContextMappingIterator.java:52) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.next(MemoSequence.java:228) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.materialize(MemoSequence.java:287) at net.sf.saxon.om.SequenceTool.toMemoSequence(SequenceTool.java:63) at net.sf.saxon.value.MemoClosure.makeSequence(MemoClosure.java:88) at net.sf.saxon.value.MemoClosure.iterate(MemoClosure.java:81) at EE_sequence_103501790450510.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:125) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 44 more java.lang.RuntimeException: Internal error evaluating template rule at line 152 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_119521511623807.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_treatAs_11939865582494.evaluateItem(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:226) at com.saxonica.ee.bytecode.CompiledExpression.evaluateItem(CompiledExpression.java:218) at com.saxonica.ee.bytecode.ByteCodeCandidate.evaluateItem(ByteCodeCandidate.java:299) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:151) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:148) at net.sf.saxon.expr.instruct.UserFunction.call(UserFunction.java:645) at EE_resultDocument_10014657967550.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:526) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at net.sf.saxon.expr.instruct.ResultDocument.processInstruction(ResultDocument.java:405) at com.saxonica.config.EnterpriseConfiguration.lambda$processResultDocument$2(EnterpriseConfiguration.java:2162) at com.saxonica.config.EnterpriseConfiguration$$Lambda$116.0000000027DE16F0.call(Unknown Source) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.lang.Thread.run(Thread.java:812) Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 153 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 24 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 95 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_let_108891776622040.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:157) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 26 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 97 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 30 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 102 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10428168714818.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 32 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 105 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 36 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 112 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10204243984028.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:103) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 38 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 113 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 42 more Caused by: java.lang.NullPointerException at net.sf.saxon.tree.tiny.TinyNodeImpl.getFingerprint(TinyNodeImpl.java:286) at net.sf.saxon.pattern.NameTest.test(NameTest.java:179) at net.sf.saxon.pattern.NameTest.test(NameTest.java:29) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:39) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:20) at net.sf.saxon.om.FocusTrackingIterator.next(FocusTrackingIterator.java:76) at com.saxonica.ee.optim.MultithreadedFocusTrackingIterator.next(MultithreadedFocusTrackingIterator.java:57) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:45) at gen_CompiledFilterIterator_10240.matches(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:388) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:46) at com.saxonica.ee.bytecode.iter.OneToOneMappingIterator.next(OneToOneMappingIterator.java:39) at net.sf.saxon.expr.ContextMappingIterator.next(ContextMappingIterator.java:52) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.next(MemoSequence.java:228) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.materialize(MemoSequence.java:287) at net.sf.saxon.om.SequenceTool.toMemoSequence(SequenceTool.java:63) at net.sf.saxon.value.MemoClosure.makeSequence(MemoClosure.java:88) at net.sf.saxon.value.MemoClosure.iterate(MemoClosure.java:81) at EE_sequence_103501790450510.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:125) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 44 more java.lang.RuntimeException: Internal error evaluating template rule at line 97 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_treatAs_11939865582494.evaluateItem(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:226) at com.saxonica.ee.bytecode.CompiledExpression.evaluateItem(CompiledExpression.java:218) at com.saxonica.ee.bytecode.ByteCodeCandidate.evaluateItem(ByteCodeCandidate.java:299) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:151) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:148) at net.sf.saxon.expr.instruct.UserFunction.call(UserFunction.java:645) at EE_resultDocument_10014657967550.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:526) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at net.sf.saxon.expr.instruct.ResultDocument.processInstruction(ResultDocument.java:405) at com.saxonica.config.EnterpriseConfiguration.lambda$processResultDocument$2(EnterpriseConfiguration.java:2162) at com.saxonica.config.EnterpriseConfiguration$$Lambda$116.0000000027DE16F0.call(Unknown Source) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.lang.Thread.run(Thread.java:812) Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 152 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_119521511623807.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 20 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 153 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 24 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 95 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_let_108891776622040.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:157) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 26 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 97 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 30 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 102 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10428168714818.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 32 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 105 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 36 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 112 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10204243984028.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:103) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 38 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 113 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 42 more Caused by: java.lang.NullPointerException at net.sf.saxon.tree.tiny.TinyNodeImpl.getFingerprint(TinyNodeImpl.java:286) at net.sf.saxon.pattern.NameTest.test(NameTest.java:179) at net.sf.saxon.pattern.NameTest.test(NameTest.java:29) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:39) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:20) at net.sf.saxon.om.FocusTrackingIterator.next(FocusTrackingIterator.java:76) at com.saxonica.ee.optim.MultithreadedFocusTrackingIterator.next(MultithreadedFocusTrackingIterator.java:57) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:45) at gen_CompiledFilterIterator_10240.matches(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:388) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:46) at com.saxonica.ee.bytecode.iter.OneToOneMappingIterator.next(OneToOneMappingIterator.java:39) at net.sf.saxon.expr.ContextMappingIterator.next(ContextMappingIterator.java:52) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.next(MemoSequence.java:228) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.materialize(MemoSequence.java:287) at net.sf.saxon.om.SequenceTool.toMemoSequence(SequenceTool.java:63) at net.sf.saxon.value.MemoClosure.makeSequence(MemoClosure.java:88) at net.sf.saxon.value.MemoClosure.iterate(MemoClosure.java:81) at EE_sequence_103501790450510.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:125) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 44 more java.lang.RuntimeException: Internal error evaluating function local:add-traction-and-routeEdgeSections at line 224 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.UserFunction.call(UserFunction.java:655) at EE_resultDocument_10014657967550.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:526) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at net.sf.saxon.expr.instruct.ResultDocument.processInstruction(ResultDocument.java:405) at com.saxonica.config.EnterpriseConfiguration.lambda$processResultDocument$2(EnterpriseConfiguration.java:2162) at com.saxonica.config.EnterpriseConfiguration$$Lambda$116.0000000027DE16F0.call(Unknown Source) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.lang.Thread.run(Thread.java:812) Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 95 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_treatAs_11939865582494.evaluateItem(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:226) at com.saxonica.ee.bytecode.CompiledExpression.evaluateItem(CompiledExpression.java:218) at com.saxonica.ee.bytecode.ByteCodeCandidate.evaluateItem(ByteCodeCandidate.java:299) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:151) at net.sf.saxon.expr.parser.Evaluator$5.evaluate(Evaluator.java:148) at net.sf.saxon.expr.instruct.UserFunction.call(UserFunction.java:645) ... 11 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 97 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 18 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 152 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_119521511623807.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 20 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 153 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 24 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 95 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_let_108891776622040.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:157) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 26 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 97 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 30 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 102 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10428168714818.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:98) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 32 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 105 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 36 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 112 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:403) at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:568) at EE_xsl_copy_10204243984028.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:103) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 38 more Caused by: java.lang.RuntimeException: Internal error evaluating template rule at line 113 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:162) at com.saxonica.ee.bytecode.ByteCodeCandidate.processLeavingTail(ByteCodeCandidate.java:194) at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:384) ... 42 more Caused by: java.lang.NullPointerException at net.sf.saxon.tree.tiny.TinyNodeImpl.getFingerprint(TinyNodeImpl.java:286) at net.sf.saxon.pattern.NameTest.test(NameTest.java:179) at net.sf.saxon.pattern.NameTest.test(NameTest.java:29) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:39) at net.sf.saxon.tree.tiny.AncestorIterator.next(AncestorIterator.java:20) at net.sf.saxon.om.FocusTrackingIterator.next(FocusTrackingIterator.java:76) at com.saxonica.ee.optim.MultithreadedFocusTrackingIterator.next(MultithreadedFocusTrackingIterator.java:57) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:45) at gen_CompiledFilterIterator_10240.matches(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:388) at com.saxonica.ee.bytecode.iter.CompiledFilterIterator.next(CompiledFilterIterator.java:46) at com.saxonica.ee.bytecode.iter.OneToOneMappingIterator.next(OneToOneMappingIterator.java:39) at net.sf.saxon.expr.ContextMappingIterator.next(ContextMappingIterator.java:52) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.next(MemoSequence.java:228) at net.sf.saxon.om.MemoSequence$ProgressiveIterator.materialize(MemoSequence.java:287) at net.sf.saxon.om.SequenceTool.toMemoSequence(SequenceTool.java:63) at net.sf.saxon.value.MemoClosure.makeSequence(MemoClosure.java:88) at net.sf.saxon.value.MemoClosure.iterate(MemoClosure.java:81) at EE_sequence_103501790450510.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:125) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at com.saxonica.ee.bytecode.ByteCodeCandidate.process(ByteCodeCandidate.java:149) ... 44 more Some child xsl:result-document threads have not finished Error java.lang.RuntimeException: Internal error evaluating function local:add-traction-and-routeEdgeSections at line 224 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt java.lang.RuntimeException: Internal error evaluating function local:add-traction-and-routeEdgeSections at line 224 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt at net.sf.saxon.expr.instruct.UserFunction.call(UserFunction.java:655) at EE_resultDocument_10014657967550.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:526) at com.saxonica.ee.bytecode.CompiledExpression.process(CompiledExpression.java:86) at net.sf.saxon.expr.instruct.ResultDocument.processInstruction(ResultDocument.java:405) at com.saxonica.config.EnterpriseConfiguration.lambda$processResultDocument$2(EnterpriseConfiguration.java:2162) at com.saxonica.config.EnterpriseConfiguration$$Lambda$116.0000000027DE16F0.call(Unknown Source) at java.util.concurrent.FutureTask.run(FutureTask.java:277) at java.util.concurrent. 2021-03-11 18:39:18 [main] description: java.lang.RuntimeException: Internal error evaluating function local:add-traction-and-routeEdgeSections at line 224 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt(Internal error evaluating function local:add-traction-and-routeEdgeSections at line 224 in module jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt) 2021-03-11 18:39:18 [main] module: jar:file:upmb.jar!/shared/shared-functions.xslt 2021-03-11 18:39:18 [main] line-number: 987 2021-03-11 18:39:18 [main] Batch execution failed - see above output for any hints Error in xsl:sequence/@select on line 43 column 45 of batch.xslt: FOER0000 Error signalled by application call on error() at template xsl:initial-template on line 13 of batch.xslt: Focus: absent Local variables $vv:v0 = false() $startTime = xs:dateTimeStamp("2021-03-11T18:25:20.929+01:00") Error signalled by application call on error()


Files

create-trains-by-day.xslt (33.8 KB) create-trains-by-day.xslt Johan Gheys, 2021-03-12 10:10
extension-function-api.xslt (3.89 KB) extension-function-api.xslt Johan Gheys, 2021-03-12 11:02
shared-functions.xslt (66.2 KB) shared-functions.xslt Johan Gheys, 2021-03-12 11:02
multithreading.zip (79.7 MB) multithreading.zip Johan Gheys, 2021-03-15 16:56
error 2021-01-16.txt (4.96 KB) error 2021-01-16.txt Johan Gheys, 2021-03-31 21:30
create-trains-by-day.xslt (24.7 KB) create-trains-by-day.xslt Johan Gheys, 2021-03-31 21:31
error-2021-09-13.txt (1.1 MB) error-2021-09-13.txt Johan Gheys, 2021-09-20 09:21
create-trains-by-day.xslt (24.6 KB) create-trains-by-day.xslt Johan Gheys, 2021-09-20 11:38
Actions #1

Updated by Michael Kay about 3 years ago

Thanks for reporting it. It certainly looks like a multithreading problem - like all multithreading problems it's going to be tough to get to the bottom of it. Especially as we're out of practice - I think it's the first one I've seen for a couple of years.

Actions #2

Updated by Michael Kay about 3 years ago

Could you supply the code of shared-functions.xsl, please, and any other stylesheet modules that might be needed?

Is it possible to supply a repro, or are the dependencies too complex?

Actions #3

Updated by Johan Gheys about 3 years ago

I have uploaded 2 additional files and will try to make a small test set so that the xslt's can run (probably by early next week).

Actions #4

Updated by Johan Gheys about 3 years ago

I uploaded a zip file containing some infrastructure and train data files + all necessary xslt's. After unzipping

  • change the property module-folder in the file config/config.xml (absolute path to the unzip folder)
  • change the path to saxon-ee-10.3.jar in the file multithreading.bat Now you can run this bat file. Result xml's appear in the output folder if everything goes well. Good luck.
Actions #5

Updated by Johan Gheys about 3 years ago

Oops, I forgot to mention: change also the attribute last-publish-folder in the file input/run.xml to the input folder under your module-folder.

Actions #6

Updated by Johan Gheys about 3 years ago

Added again because I couldn't find the zip file on this site

Actions #7

Updated by Michael Kay about 3 years ago

I'm not making much headway on this. I'm running the code successfully, and I've run it 20 times or so without hitting the failure.

Very often, multithreading problems get solved by pure thinking based on limited information, so let's look at what we can see from the stack trace and the source code.

It's multi-threading because of the call on xsl:result-document, which we can see on the stack trace: this is presumably the result-document call on line 36. Although it appears to be doing very little inside the xsl:result-document, it's actually evaluating the variable $train lazily, so it looks like this is essentially the entire computation.

Switching attention to the top of the stack, we see gen_CompiledFilterIterator_10240.matches(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:388) at which is generated bytecode for the filter expression at line 388, which evaluates the key() function (key('by-id', $nodeId, $routeEdge-xml)) and then filters the result by examining nodes on the ancestor axis. My guess is that this is the area we need to focus on. Could it be that one thread is using an xsl:key index while another thread is still building it? That shouldn't happen, of course: the problem has to be a little more subtle than that.

The xsl:key is defined in shared-functions.xslt line 22: <xsl:key name="by-id" match="*" use="@id"/>. I've traced the index building, and I'm seeing

Build key index by-id for doc 4
Build key index by-id for doc 4
Build key index by-id for doc 4

which indicates multiple attempts to build the same index for the same in-memory document.

We don't actually prevent two threads building the same index. The logic is

synchronized {
  check if index exists
}
if (index does not exist) {
  build index
}
synchronized {
  put constructed index into operation
}

What could possibly go wrong? Something, it seems...

Actions #8

Updated by Michael Kay about 3 years ago

The NullPointerException at TinyNodeImpl.java:286 is executing the code int nc = tree.nameCode[nodeNr]; so it appears that either tree is null, or tree.nameCode is null. Both conditions seem highly implausible. We're evaluating ancestor::int:routeEdge starting at the element node that we found in the index, and we're failing to evaluate the NameTest int:routeEdge because there's something wrong with the node that we're testing. These are flyweight nodes constructed as we walk the ancestor axis. The TinyTree itself acts as the factory for constructing these nodes, and the "tree" property of the node is always set within the node constructor, so it's hard to see how that can be null. As for the nameCode array, that's an intrinsic property of the tree and never changes after construction.

Perhaps I'm mistaken about where we actually are in the code at the point of failure. A bit lower down the stack frame we see

net.sf.saxon.value.MemoClosure.iterate(MemoClosure.java:81) at EE_sequence_103501790450510.process(jar:file:upmb.jar!/mtrto/create-trains-by-day.xslt:125)

which suggests we're at line 125, within an <xsl:for-each select="ancestor::int:routeEdge">. The line number 388 could have led us astray - perhaps we're using the same compiled bytecode for the two calls on ancestor::int:routeEdge, and the line number merely reflects the first encounter that caused code generation for this expression fragment. If this is the case, then the node whose ancestors we are finding comes not from the index, but from the tunnel parameter $routeEdgeNodes. Perhaps we have a problem with lazy evaluation of tunnel parameters in a multi-threaded environment?

But we're left with the same problem; it's hard to see how either tree or tree.nameCode in a TinyNodeImpl can ever be null, since both the node and the tree are essentially immutable data structures.

Actions #9

Updated by Michael Kay about 3 years ago

Well, actually, the node isn't immutable. Evaluating getParent() on a node whose parent is not known causes the parent to be retained within the node.

Actions #10

Updated by Michael Kay about 3 years ago

Note that this is in the same general area as bug #3927, which introduced the MultithreadedFocusTrackingIterator that we're seeing here in the stack trace.

Actions #11

Updated by Michael Kay about 3 years ago

I attempted to trigger the failure by increasing the number of threads. No luck.

I think that without being able to trigger the failure, I'm probably going to have to close this as unresolved. Even if I have a very plausible theory of the cause of the problem, it's impossible to test it without having a test case that succeeds after a code change is made.

Actions #12

Updated by Michael Kay about 3 years ago

  • Category set to Multithreading
  • Status changed from New to Closed
  • Assignee set to Michael Kay
  • Priority changed from Low to Normal

Closing, very reluctantly, as unresolved. Please let us know if the problem ever recurs and further evidence becomes available. We hate having unresolved problems like this lurking in the code.

Actions #13

Updated by Vladimir Nesterovsky about 3 years ago

Out of interest I've tried to understand when following could ever happen:

java.lang.NullPointerException
 at net.sf.saxon.tree.tiny.TinyNodeImpl.getFingerprint(TinyNodeImpl.java:286)

TinyNodeImpl: public int getFingerprint() { int nc = tree.nameCode[nodeNr]; // <==== 286 if (nc == -1) { return -1; } return nc & NamePool.FP_MASK; }

My findings show that it's only happens when tree == null in when "this" is of type TinyDocumentImpl, and when TinyDocumentImpl is constructed in TinyBuilder:

    public void startDocument(int properties) throws XPathException {
        if ((started && !ended) || currentDepth > 0) {
            // this happens when using an IdentityTransformer, or when copying a document node to form
            // the content of an element
            return;
        }

        started = true;
        ended = false;

        TinyTree tt = tree;
        assert tt != null;
        currentRoot = new TinyDocumentImpl(tt);

provided assertions are off.

I see a number of cases when tree can be null in TinyBuilder.

Actions #14

Updated by Michael Kay about 3 years ago

  • Status changed from Closed to In Progress
Actions #15

Updated by Michael Kay about 3 years ago

Thanks Vladimir for giving this your time: with problems like this, multiple insights are always useful.

Agreed, if somehow multiple threads were able to access the same TinyBuilder, and if a caller were to call startDocument() without first calling open(), there would be a possibility that one thread could get to see a TinyDocumentImpl node in which tree is null. The NPE is happening on a node obtained using TinyNodeImpl.parent while navigating the ancestor axis, so it would also be necessary for that rogue document node to be identified as the parent of another node, and I can't see any way that could happen. Though one of the things I've learnt is that if there's a multithreading bug, reasoning about the consequences is very difficult, and therefore reasoning backwards from symptoms to causes is equally difficult.

The area I'm most suspicious about is the index creation, especially as we can actually observe two threads building "the same" index on the same document. But I can't actually see any flaw in the logic, I can't account for the observed symptoms, and I can't devise any tests that will tell me whether or not the problem is in this area. So I'm left with no leads to follow.

Actions #16

Updated by Vladimir Nesterovsky about 3 years ago

I would suggest to replace

assert tt != null;

with throw exception in startDocument() of TinyBuilder. If exception was there earlier then we would already knew when the problem has happened.

My other observation is that startDocument() without open() leads to such a problem, though it's not trivial to trace all calls to startDocument() without previous call to open().

Actions #17

Updated by Vladimir Nesterovsky about 3 years ago

If it happens that

net.sf.saxon.om.MemoSequence$ProgressiveIterator.materialize(MemoSequence.java:287)

is called from multiple threads for the same instance then you may run into problem of jumping position. This may lead to item processed twice by different threads.

So, one thread closes some internal receiver, and other will call startDocument() again.

This might be verified by random delays in cycle in materialize() method, or even in debugger with breakpoints.

Actions #18

Updated by Michael Kay about 3 years ago

Thanks for the suggestion, Vladimir.

I've done some tracing and established that in this test run, we never call materialize() more than once on the same MemoSequence.

I've tried to use debugging breakpoints to identify exactly where the call on materialise() in the calling stack frame comes from (and I've looked for other events on the stack frame as well), but I haven't been able to intercept the code at a point where the stackframe contents match this trace. I can see roughly what's going on because of the line numbers inserted into the names of generated bytecode classes, but this hasn't helped. It remains the case that it's going to be very hard to fix this (and to know that we've fixed it) unless we can reproduce it.

Actions #19

Updated by Johan Gheys about 3 years ago

Just checked my archives and the first time we got a "similar" NullPointerException was on 2021-01-16, where a restart fixed the problem. Not reported as this was the first time the problem occurred. I don't find anything about multithreading in the log file and the xslt is also different (but similar), so I don't know if this can help you further, but still worth a try...

Actions #20

Updated by Michael Kay about 3 years ago

Thanks. All data points are useful! On this occasion it failed with an NPE within generated bytecode so we don't know the exact point of failure: but there's plenty to be looking at here.

Actions #21

Updated by Michael Kay about 3 years ago

One thing that immediately strikes me is

Processing train 1222/1222

which means it's processing the last train out of 1222. That's surely significant. Have you got other logs that show the same effect (I don't think I've seen the log of the most recent crash, only the stack trace when it failed).

The only other thing we can see is that the actual NPE occurs while evaluating compiled bytecode generated from line 261, where it's setting the value of a tunnel parameter based on the value of a lazily-evaluated variable ($dateTo) which was computed as the last item in a sequence ($ltvDepartureDate).

The implication of the error happening while processing the last input document would be that there's a bug in the shutdown sequence: the main thread fires off child threads to process xsl:document, and when it's run out of further work to do it has to wait until all child threads are finished before quitting. This is complicated by the fact that these child threads still have the potential to start up grandchild threads (for nested xsl:result-document instructions) after the master thread has finished.

Actions #22

Updated by Johan Gheys about 3 years ago

Sorry, but our log files are only kept for 10 days and I thought the stack trace contained enough information. If the problem occurs again, I will also copy the logging of the xslt itself.

Actions #23

Updated by Michael Kay about 3 years ago

I've reviewed the shutdown code, and while it's hard to be 100% confident that it's watertight, I can't see how any defects here would cause symptoms compatible with what we're seeing; it would be more likely to lead to thread-related errors (such as threads hanging, etc).

See for example bug #4074, which is I think the last time we revised this code.

Actions #24

Updated by Johan Gheys about 3 years ago

I can imagine that solving such a thing is really not easy. Maybe it is easier to wait for the problem to occur again?

Actions #25

Updated by Michael Kay about 3 years ago

Certainly I've seen cases in the past where we had to analyse a series of failures before we could solve the problem (we had one client whose application was falling over once every four months because of a counter overflow...). Sometimes the best you can do is to inject the right diagnostics so we have a better chance of solving the problem next time it happens. I think the only things that would help us here are a heap dump and/or a thread dump.

Actions #26

Updated by Vladimir Nesterovsky about 3 years ago

Another speculative theory with many ifs. There are global variables:

   <xsl:variable name="runXML" select="shared:open-file($run-file)"/>
   <xsl:variable name="run" select="$runXML/run"/>

that might be accessed by multiple threads in:

local:get-global-and-localTrainVariant($trainXML, $run/@selectionLayer, $run/@creationDate, $run/@purgeDate)

and in particular:

at EE_CheckCardinality_4702980994408.evaluateItem(jar:file:upmb.jar!/trto/create-trains-by-day.xslt:201)

is a code that checks, say, cardinality of expression $run/@selectionLayer, falls as a victim of some yet to be discovered race.

Actions #27

Updated by Michael Kay over 2 years ago

  • Status changed from In Progress to Closed

I'm closing this as unresolved, very reluctantly as there is clearly a bug here waiting to be found. But we're not going to make any headway on it without more information (or a repro that allows us to investigate the failure "in the lab"), so there's nothing gained by keeping it open.

Actions #28

Updated by Johan Gheys over 2 years ago

The transformation runs every day in 3 environments (test, acceptance and production) and has not shown any errors since 2021-03-11 (since the end of June we use Saxon-EE 10.5 everywhere), so we fully understand this issue will be closed.

Actions #29

Updated by Johan Gheys over 2 years ago

Just for your information: after about 6 months we encountered the same problem again on 2021-09-13 (see the full logfile error-2021-09-13.txt). In the meantime, we are using Saxon-EE 10.5.

Actions #30

Updated by Michael Kay over 2 years ago

Thanks for reporting it. The latest stack trace is indeed very similar to the one on 2021-01-16. Again it's failing when processing the last train in a sequence (this time Processing train 461/461) so we know that's significant. The line numbers in your XSLT code are different - I guess it's grown a bit? It might be useful to post the current version of create-trains-by-day.xslt.

I'm wondering if we should also look at the generated bytecode, to see what's going on inside gen_SlashContextMappingFunction_4812. But that's going to be challenging: looking for a needle in a haystack, especially if we're not sure exactly what source code it corresponds to. The are options to dump out the bytecode, but the class names in a different run might be different.

Because we're using last(), and we're multithreading, and the problem occurs when we're processing the last train, I'm wondering whether bug #5094 might be relevant.

I'm particularly looking at the predicate position() = (1, last()) used in several places. The first time through, position()=1 will match, so last() won't be evaluated. The second time through, it needs to test position()=last(), so it needs to compute last(), which means reading ahead to count the number of items. It would actually be more efficient to write position()=1 or position()=last(), because position()=last() gets optimised to an internal function isLast() which doesn't count the number of items, it only looks one step ahead to see if there are more to come.

Actions #31

Updated by Michael Kay over 2 years ago

It would definitely be useful to have a current version of the module create-trains-by-day.xslt.

In the 2021-01-16 log, it says

Internal error evaluating function 
  local:get-global-and-localTrainVariant at line 196 in module 
  jar:file:upmb.jar!/trto/create-trains-by-day.xslt

In the 2021-09-13 log, it says

Internal error evaluating function
  local:get-global-and-localTrainVariant at line 213 in module
  jar:file:upmb.jar!/trto/create-trains-by-day.xslt

but the function local:get-global-and-localTrainVariant is not present in the version of the code posted in comment #19.

Also note that although these two traces are very similar, neither bears any obvious relationship to the trace posted in the original bug entry: we could be looking at a completely separate problem.

Actions #32

Updated by Johan Gheys over 2 years ago

I uploaded the current version of create-trains-by-day.xslt (but the function local:get-global-and-localTrainVariant() was already present before).

Please register to edit this issue

Also available in: Atom PDF