You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@daffodil.apache.org by "Dave Thompson (JIRA)" <ji...@apache.org> on 2018/09/24 12:12:00 UTC

[jira] [Closed] (DAFFODIL-1065) parser: API needs to enable repeated calls to parser - not treat unconsumed data as 'left over'

     [ https://issues.apache.org/jira/browse/DAFFODIL-1065?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dave Thompson closed DAFFODIL-1065.
-----------------------------------

Pulled latest updates from incubator-daffodil repository which included specified commit, 07ee2434bb207d7137dbe4ea70efb41921562334.

Verified daffodil builds and executes all sbt tests successfully, including the associated test case added in the specified commit.

Verified changes specified in the commit comment.

All nightly tests also executed successfully.

> parser: API needs to enable repeated calls to parser - not treat unconsumed data as 'left over'
> -----------------------------------------------------------------------------------------------
>
>                 Key: DAFFODIL-1065
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-1065
>             Project: Daffodil
>          Issue Type: Improvement
>          Components: API
>    Affects Versions: s14
>            Reporter: Michael Beckerle
>            Assignee: Steve Lawrence
>            Priority: Major
>             Fix For: 2.2.0
>
>
> From an Email thread with James Garriss:
> While I got the workaround working, I definitely think this is an improvement opportunity for your API.  It should have simple methods that:
> ��       Detect a ���leftover data��� condition.
> ��       Return some sort of pointer to the location of the leftover data.
> ��       Return the entirety of the leftover data.
> This would be super helpful for anyone trying to use Daffodil in a filter.
> -----Original Message-----
> From: Steve Lawrence [mailto:slawrence@tresys.com]
> Sent: Wednesday, October 08, 2014 10:05 AM
> ...
> Subject: Re: Daffodil 0.14 - warning about extra, unprocessed data
> Yep, it looks like our CLI has two ways we determine if there is left
> over data.
> The first is the isAtEnd method. The problem with this is that I think
> it only works if you provide the size of your data to the parse()
> method. Otherwise, it will always return false. This is a bug. However,
> the workaround is to get the size of your input data, and pass it to the
> parse function, e.g.:
>   ParseResult pr = processorFactory.parse(input, lengthOfInput)
> The second way is to read the internal state to determine the length of
> the data and compare that with the resulting data location. This is what
> the Scala CLI does when the length isn't known. The problem with this
> method is that it is internal information that is not available via the
> Java API, so while it works for our CLI written in Scala, it can't be
> used in your GUI. I'm not sure this information should be available via
> the API, I think we just need to fix the first bug.
> So the short of it, pass in the length of your data and I think isAtEnd
> will work.
> - Steve



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)