Josh Adams created DAFFODIL-2361:
------------------------------------
Summary: valueLength not working as expected with complex
elements, causing circular deadlocks during unparse
Key: DAFFODIL-2361
URL: https://issues.apache.org/jira/browse/DAFFODIL-2361
Project: Daffodil
Issue Type: Bug
Components: Unparsing
Affects Versions: 2.6.0
Reporter: Josh Adams
Attachments: test.dat, test.info, test.xsd
Ran into this issue while making changes to a production schema.
Consider the following schema;
<xs:element name="len" type="xs:unsignedInt" dfdl:outputValueCalc="\{
dfdl:valueLength(../implicitLenComplex, 'bytes') }" />
<xs:element name="implicitLenComplex">
<xs:complexType>
<xs:sequence>
<xs:element name="item1" type="xs:hexBinary" dfdl:length="\{ ../../len }"
dfdl:lengthUnits="bytes" dfdl:lengthKind="explicit" />
</xs:sequence>
</xs:complexType>
</xs:element>
I would reasonably expect that the outputValueCalc would work as expected and
get the valueLength of the entire implicitLenComplex sequence, however this
results in a circular deadlock.
NOTE: if you change the outputValueCalc to
dfdl:valueLength(../implicitLenComplex/item1, 'bytes') everything works as
expected.
I've attached a sample schema file and test data that demonstrates this issue.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)