[
https://issues.apache.org/jira/browse/DAFFODIL-2802?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17713170#comment-17713170
]
Olabusayo Kilo commented on DAFFODIL-2802:
------------------------------------------
So after doing abit of research on this, it looks like ie3 is being treated as
potentiallyTrailing since it's the last element in the array, despite the fact
the array isn't potentiallyTrailing itself. Infact the code that determines if
an element is potentially trailing doesn't check its parent at all. Is this
accurate? Should we check if its parent is potentially trailing too?
{code:scala}
final lazy val isPotentiallyTrailing: Boolean = {
val thisCouldBe = couldBePotentiallyTrailing
lazy val laterSibilingsAre = laterSiblings.forall { _.isPotentiallyTrailing }
val res = thisCouldBe && laterSibilingsAre
res
} {code}
> Array with optional element followed by scalar optional element drops
> separator
> -------------------------------------------------------------------------------
>
> Key: DAFFODIL-2802
> URL: https://issues.apache.org/jira/browse/DAFFODIL-2802
> Project: Daffodil
> Issue Type: Bug
> Components: Back End
> Affects Versions: 3.4.0
> Reporter: Olabusayo Kilo
> Priority: Blocker
> Fix For: 3.5.0
>
> Attachments: TestSeparatorSuppression.scala, suppressedseparator.tdml
>
>
> An array with a trailing optional element followed by a scalar optional
> element loses a separator when both elements are missing during an unparse.
> The trace indicates, there's a
> SuppressableSeparatorUnparserSuspendableOperation for the scalar element (se5
> in the example schema). My initial guess was that the last element in the
> array was being treated as a trailing element, but we need it to not be
> treated that way.
>
> For completeness, you get the following error from TDML on the 2nd test
> {noformat}
> output data length 12 for '/1/2/3.5//6
> ' doesn't match expected length 13 for '/1/2/3.5///6
> '{noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)