You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by "Mike Beckerle (Jira)" <ji...@apache.org> on 2021/01/21 20:14:00 UTC

[jira] [Commented] (DAFFODIL-1651) Unparse: dfdl:content/valueLength of an Array returns unexpected result

    [ https://issues.apache.org/jira/browse/DAFFODIL-1651?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17269600#comment-17269600 ] 

Mike Beckerle commented on DAFFODIL-1651:
-----------------------------------------

A diagnostic suggesting not taking valueLength of arrays is easier than a true fix perhaps. (And it can suggest the workaround.)

> Unparse: dfdl:content/valueLength of an Array returns unexpected result
> -----------------------------------------------------------------------
>
>                 Key: DAFFODIL-1651
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-1651
>             Project: Daffodil
>          Issue Type: Bug
>          Components: General, Unparsing
>    Affects Versions: 2.0.0
>            Reporter: Steve Lawrence
>            Priority: Major
>
> When trying to get the dfdl:contentLength of dfdl:valueLength of an array, Daffodil returns the length of it's parent, rather than the array. This is because the NodeType.Exists parameter type ends up creating a DownArrayExists recipe, which does not change the current node. Either we need to disallow getting the content/valueLength of an array and require the user to wrap the array in a complex type, or we need to allow it and modify/add parsers to store value/contentLength of an array.
> Alternatively, we maybe be able to do some magic where we get the start pos of the first child and the end pos of the last child and return that length. It's not immeidately clear if that is correct.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)