Steve Lawrence created DAFFODIL-3067:
----------------------------------------
Summary: Intermittent CI failure: SAX diagnostics do not match
DataProcessor diagnostics
Key: DAFFODIL-3067
URL: https://issues.apache.org/jira/browse/DAFFODIL-3067
Project: Daffodil
Issue Type: Bug
Components: SAX
Affects Versions: 4.1.0
Reporter: Steve Lawrence
There is a rare CI failure where TDML tests have different diagnostics between
the SAX and non-SAX implementations.
{code}
[error] Test
org.apache.daffodil.section15.choice_groups.TestChoiceBranches.choiceBranch_e5
failed: org.apache.daffodil.tdml.TDMLExceptionImpl: SAX parse/unparse
diagnostics do not match DataProcessor diagnostics
[error] DataProcessor Parse diagnostics: List(Unparse Error: Found next element
ex:{http://example.com}after, but expected one of ex:{http://example.com}req_1,
ex:{http://example.com}req_2.
[error] Schema context: choice[1] Location line 155 column 12 in
/org/apache/daffodil/section15/choice_groups/ChoiceBranches.tdml
[error] Data location was preceding byte 0)
[error] SAX Parse diagnostics: List(Unparse Error: Found next element
{http://example.com}after, but expected one of ex:{http://example.com}req_1,
ex:{http://example.com}req_2.
[error] Schema context: choice[1] Location line 155 column 12 in
/org/apache/daffodil/section15/choice_groups/ChoiceBranches.tdml
[error] Data location was preceding byte 0), took 0.084 sec
[error] at
org.apache.daffodil.tdml.TDMLException$.apply(TDMLException.scala:34)
[error] at
org.apache.daffodil.processor.tdml.DaffodilTDMLDFDLProcessor.verifySameDiagnostics(DaffodilTDMLDFDLProcessor.scala:426)
[error] at
org.apache.daffodil.processor.tdml.DaffodilTDMLDFDLProcessor.doUnparse(DaffodilTDMLDFDLProcessor.scala:375)
[error] at
org.apache.daffodil.processor.tdml.DaffodilTDMLDFDLProcessor.unparse(DaffodilTDMLDFDLProcessor.scala:261)
[error] at
org.apache.daffodil.processor.tdml.DaffodilTDMLDFDLProcessor.unparse(DaffodilTDMLDFDLProcessor.scala:232)
[error] at
org.apache.daffodil.tdml.UnparserTestCase.runUnparserExpectErrors(TDMLRunner.scala:1730)
[error] at
org.apache.daffodil.tdml.UnparserTestCase.runProcessor(TDMLRunner.scala:1581)
[error] at org.apache.daffodil.tdml.TestCase.run(TDMLRunner.scala:969)
[error] at
org.apache.daffodil.tdml.DFDLTestSuite.runOneTest(TDMLRunner.scala:491)
[error] at
org.apache.daffodil.tdml.Runner.runOneTest(RunnerFactory.scala:235)
[error] at
org.apache.daffodil.tdml.Runner.runOneTest(RunnerFactory.scala:241)
[error] at org.apache.daffodil.junit.tdml.TdmlTests.test(TdmlSuite.scala:91)
[error] at
org.apache.daffodil.junit.tdml.TdmlTests.test$(TdmlSuite.scala:75)
[error] at
org.apache.daffodil.section15.choice_groups.TestChoiceBranches.test(TestChoiceBranches.scala:30)
[error] at
org.apache.daffodil.section15.choice_groups.TestChoiceBranches.choiceBranch_e5(TestChoiceBranches.scala:47)
[error] at
jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
[error] at java.lang.reflect.Method.invoke(Method.java:580)
{code}
Specifically the differences are:
DataProcessor: Found next element ex:{http://example.com}after
SAX: Found next element {http://example.com}after
So the only difference is SAX is missing the "ex" prefix. This is very
difficult to reproduce. Note that you must set DAFFODIL_TDML_API_INFOSETS=all
in order to test both the SAX and non-SAX APIS and compare their diagnostics.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)