Re: [VOTE] Release Apache Daffodil 3.3.0-rc1

2022-03-21 Thread Olabusayo Kilo

+1

I checked:

[OK] links in email are correct

[OK] verified Summary of Changes pages (maven, sbt, download and dnf)

[OK] verified download of binary

[OK] Successfully used apache-daffodil-3.3.0-bin.tgz

[OK] JavaDoc and ScalaDoc are correct

[OK] RAT check passes

On 3/18/22 12:06, Interrante, John A (GE Research, US) wrote:

Hi PMC members,
  
I'd like to call a vote to release Apache Daffodil 3.3.0-rc1.
  
All distribution packages, including signatures, digests, etc. can be

found at:
  
https://dist.apache.org/repos/dist/dev/daffodil/3.3.0-rc1/
  
Staging artifacts can be found at:
  
https://repository.apache.org/content/repositories/orgapachedaffodil-1029/
  
This release has been signed with PGP key 04A735FC1A36AE84, corresponding

to jinterra...@apache.org, which is included in the KEYS file here:
  
https://downloads.apache.org/daffodil/KEYS
  
The release candidate has been tagged in git with v3.3.0-rc1.
  
For reference, here is a list of all closed JIRAs tagged with 3.3.0:
  
https://s.apache.org/daffodil-issues-3.3.0
  
For a summary of the changes in this release, see:
  
https://daffodil.apache.org/releases/3.3.0/
  
Please review and vote. The vote will be open for at least 72 hours

(Monday, March 21 2022, 12 Noon EST).
  
[ ] +1 approve

[ ] +0 no opinion
[ ] -1 disapprove (and reason why)
  
Thanks,

John


--
Best Regards,
Lola K.



Re: sbt exportJars causes "lengthLimitInBits.>=(0)" error when running "sbt test"

2022-03-18 Thread Olabusayo Kilo
I was also able to recreate this error in the CSV repo by adding the 
"exportJars := true" (note: false doesn't cause this error),


and updating the Daffodil version to the last commit before the RC 
commit (i.e 613c2b0c077f56dbb425e7ebab1a2d154cbdbd06).


so:


exportJars :=true libraryDependencies ++=Seq(
  "org.apache.daffodil" %%"daffodil-tdml-processor" %"3.3.0-SNAPSHOT" %"test",
---
)

So it seems to be a Daffodil error, since this doesn't happen with 
3.0.0, but it does happen with 3.2.1


Note: I'm running sbt 1.5.7 (Ubuntu Java 11.0.14), but I believe Mike 
tried several different versions when we first ran into this.


On 3/18/22 13:45, Mike Beckerle wrote:

I tried many things, including clean git clones of all related repos. This
problem is a very bizarre interaction.

The fact that the tests ran flawlessly under intelliJ IDEA, but failed
running sbt from the command line

I searched for sbt bugs related to exportJars. I did find
https://github.com/sbt/sbt/issues/3119, but doesn't seem related or not
obviously so.

On Fri, Mar 18, 2022 at 1:25 PM Adams, Joshua
wrote:


I can confirm that at least sbt clean does not resolve the issue.  Didn't
try a got clean, although I had just cloned the repo in question so I don't
think it had gotten dirty in anyway either.

Josh

On Mar 18, 2022 1:22 PM, Steve Lawrence  wrote:
That's surprising to me. All that exportJars is supposed to to do is
include or not include certains files on the class path and use packages
jars instead.

And that assertion that is failing is beacuase the length of test data
is negative, which should never happen and I don't know how exportJars
would affect that.

It almost sounds like something got corrupted or needed to be rebuilt,
and changing exportJars allowed that to happen? Maybe there's some
conflict between using IntelliJ and sbt at the same time?

I wonder if doing an sbt clean or git clean would resolve the issue.


On 3/18/22 1:10 PM, Olabusayo Kilo wrote:

We noticed that only when running "sbt test" in schema projects with the
exportJar setting, the error below was generated resulting in failure of
all the tests. Note that running the same tests via IntelliJ/Junit
didn't reproduce this error, and the error was isolated to using sbt to
run the tests.

The cause was isolated to having the "exportJars := true" setting in
build.sbt. Removing the setting removed the error, and got all tests
passing. Sending this out as an FYI in case someone else runs into this
in the future.

[info] Test a.b.c started
[error] Test a.b.c failed: org.apache.daffodil.exceptions.Abort: Usage
error: lengthLimitInBits.>=(0)
[error] org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:137)
[error]


org.apache.daffodil.tdml.processor.DaffodilTDMLDFDLProcessor.doParseWithBothApis(DaffodilTDMLDFDLProcessor.scala:290)

[error]


org.apache.daffodil.tdml.processor.DaffodilTDMLDFDLProcessor.parse(DaffodilTDMLDFDLProcessor.scala:248)

[error]


org.apache.daffodil.tdml.processor.DaffodilTDMLDFDLProcessor.parse(DaffodilTDMLDFDLProcessor.scala:253),

took 0.003 sec
[error] at
org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:137)
[error] at


org.apache.daffodil.tdml.processor.DaffodilTDMLDFDLProcessor.doParseWithBothApis(DaffodilTDMLDFDLProcessor.scala:290)

[error] at


org.apache.daffodil.tdml.processor.DaffodilTDMLDFDLProcessor.parse(DaffodilTDMLDFDLProcessor.scala:248)

[error] at


org.apache.daffodil.tdml.processor.DaffodilTDMLDFDLProcessor.parse(DaffodilTDMLDFDLProcessor.scala:253)

[error] at


org.apache.daffodil.tdml.ParserTestCase.doParseExpectSuccess(TDMLRunner.scala:1026)

[error] at


org.apache.daffodil.tdml.ParserTestCase.runParseExpectSuccess(TDMLRunner.scala:1169)

[error] at


org.apache.daffodil.tdml.ParserTestCase.$anonfun$runProcessor$2(TDMLRunner.scala:920)

[error] at


org.apache.daffodil.tdml.ParserTestCase.$anonfun$runProcessor$2$adapted(TDMLRunner.scala:917)

[error] at

scala.util.Either$RightProjection.foreach(Either.scala:652)

[error] at


org.apache.daffodil.tdml.ParserTestCase.runProcessor(TDMLRunner.scala:917)

[error] at

org.apache.daffodil.tdml.TestCase.run(TDMLRunner.scala:870)

[error] at
org.apache.daffodil.tdml.DFDLTestSuite.runOneTest(TDMLRunner.scala:416)
[error] at
org.apache.daffodil.tdml.Runner.runOneTest(RunnerFactory.scala:191)
[error] at
org.apache.daffodil.tdml.Runner.runOneTest(RunnerFactory.scala:197)



sbt exportJars causes "lengthLimitInBits.>=(0)" error when running "sbt test"

2022-03-18 Thread Olabusayo Kilo
We noticed that only when running "sbt test" in schema projects with the 
exportJar setting, the error below was generated resulting in failure of 
all the tests. Note that running the same tests via IntelliJ/Junit 
didn't reproduce this error, and the error was isolated to using sbt to 
run the tests.


The cause was isolated to having the "exportJars := true" setting in 
build.sbt. Removing the setting removed the error, and got all tests 
passing. Sending this out as an FYI in case someone else runs into this 
in the future.


[info] Test a.b.c started
[error] Test a.b.c failed: org.apache.daffodil.exceptions.Abort: Usage 
error: lengthLimitInBits.>=(0)

[error] org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:137)
[error] 
org.apache.daffodil.tdml.processor.DaffodilTDMLDFDLProcessor.doParseWithBothApis(DaffodilTDMLDFDLProcessor.scala:290)
[error] 
org.apache.daffodil.tdml.processor.DaffodilTDMLDFDLProcessor.parse(DaffodilTDMLDFDLProcessor.scala:248)
[error] 
org.apache.daffodil.tdml.processor.DaffodilTDMLDFDLProcessor.parse(DaffodilTDMLDFDLProcessor.scala:253), 
took 0.003 sec
[error] at 
org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:137)
[error] at 
org.apache.daffodil.tdml.processor.DaffodilTDMLDFDLProcessor.doParseWithBothApis(DaffodilTDMLDFDLProcessor.scala:290)
[error] at 
org.apache.daffodil.tdml.processor.DaffodilTDMLDFDLProcessor.parse(DaffodilTDMLDFDLProcessor.scala:248)
[error] at 
org.apache.daffodil.tdml.processor.DaffodilTDMLDFDLProcessor.parse(DaffodilTDMLDFDLProcessor.scala:253)
[error] at 
org.apache.daffodil.tdml.ParserTestCase.doParseExpectSuccess(TDMLRunner.scala:1026)
[error] at 
org.apache.daffodil.tdml.ParserTestCase.runParseExpectSuccess(TDMLRunner.scala:1169)
[error] at 
org.apache.daffodil.tdml.ParserTestCase.$anonfun$runProcessor$2(TDMLRunner.scala:920)
[error] at 
org.apache.daffodil.tdml.ParserTestCase.$anonfun$runProcessor$2$adapted(TDMLRunner.scala:917)

[error] at scala.util.Either$RightProjection.foreach(Either.scala:652)
[error] at 
org.apache.daffodil.tdml.ParserTestCase.runProcessor(TDMLRunner.scala:917)

[error] at org.apache.daffodil.tdml.TestCase.run(TDMLRunner.scala:870)
[error] at 
org.apache.daffodil.tdml.DFDLTestSuite.runOneTest(TDMLRunner.scala:416)
[error] at 
org.apache.daffodil.tdml.Runner.runOneTest(RunnerFactory.scala:191)
[error] at 
org.apache.daffodil.tdml.Runner.runOneTest(RunnerFactory.scala:197)




Re: [VOTE] Release Apache Daffodil 3.2.0-rc1

2021-12-03 Thread Olabusayo Kilo

+1 (binding)

Ah, ok!

On 12/3/21 5:48 PM, Steve Lawrence wrote:
The RPM isn't pushed to the artifactory repo until after the vote 
passes. Otherwise if people ran dnf update they might install 
something that hasn't been verified before the vote closed. So that's 
normal.


On 12/3/21 5:05 PM, Olabusayo Kilo wrote:

+1

(as long as absence of 3.2.0-1 rpm in artifactory is addressed)


I checked:

[OK] links in email are correct

[OK] verified Summary of Changes pages (maven, sbt, download and dnf)

[OK] verified download of binary

[QUESTION] verified daffodil-rpm folder on dnf baseUrl site. Are we 
supposed to be about to see 3.2.0-1 on there, because it's not there 
right now


[OK] JavaDoc and ScalaDoc are correct

[OK] RAT check passes

On 12/1/21 2:03 PM, Mike Beckerle wrote:

Hi all,

I'd like to call a vote to release Apache Daffodil 3.2.0-rc1.

All distribution packages, including signatures, digests, etc. can be
found at:

https://dist.apache.org/repos/dist/dev/daffodil/3.2.0-rc1/

Staging artifacts can be found at:

https://repository.apache.org/content/repositories/orgapachedaffodil-1025/ 



This release has been signed with PGP key 13A680AF, corresponding
to mbecke...@apache.org, which is included in the KEYS file here:

https://downloads.apache.org/daffodil/KEYS

The release candidate has been tagged in git with v3.2.0-rc1.

For reference, here is a list of all closed JIRAs tagged with 3.2.0:

https://s.apache.org/daffodil-issues-3.2.0

For a summary of the changes in this release, see:

https://daffodil.apache.org/releases/3.2.0/

Please review and vote. The vote will be open for at least 72 hours
(Monday December 6, 14:00 EST.US).

[ ] +1 approve
[ ] +0 no opinion
[ ] -1 disapprove (and reason why)

Thanks,
- Mike Beckerle




--
Best Regards,
Lola K.



Re: [VOTE] Release Apache Daffodil 3.2.0-rc1

2021-12-03 Thread Olabusayo Kilo

+1

(as long as absence of 3.2.0-1 rpm in artifactory is addressed)


I checked:

[OK] links in email are correct

[OK] verified Summary of Changes pages (maven, sbt, download and dnf)

[OK] verified download of binary

[QUESTION] verified daffodil-rpm folder on dnf baseUrl site. Are we 
supposed to be about to see 3.2.0-1 on there, because it's not there 
right now


[OK] JavaDoc and ScalaDoc are correct

[OK] RAT check passes

On 12/1/21 2:03 PM, Mike Beckerle wrote:

Hi all,

I'd like to call a vote to release Apache Daffodil 3.2.0-rc1.

All distribution packages, including signatures, digests, etc. can be
found at:

https://dist.apache.org/repos/dist/dev/daffodil/3.2.0-rc1/

Staging artifacts can be found at:

https://repository.apache.org/content/repositories/orgapachedaffodil-1025/

This release has been signed with PGP key 13A680AF, corresponding
to mbecke...@apache.org, which is included in the KEYS file here:

https://downloads.apache.org/daffodil/KEYS

The release candidate has been tagged in git with v3.2.0-rc1.

For reference, here is a list of all closed JIRAs tagged with 3.2.0:

https://s.apache.org/daffodil-issues-3.2.0

For a summary of the changes in this release, see:

https://daffodil.apache.org/releases/3.2.0/

Please review and vote. The vote will be open for at least 72 hours
(Monday December 6, 14:00 EST.US).

[ ] +1 approve
[ ] +0 no opinion
[ ] -1 disapprove (and reason why)

Thanks,
- Mike Beckerle


--
Best Regards,
Lola K.



Re: [VOTE] Release Apache Daffodil 3.1.0-rc2

2021-05-18 Thread Olabusayo Kilo

+1

I checked:

[OK] links in email are correct
[OK] verified Summary of Changes pages (maven, sbt and download)
[OK] JavaDoc and ScalaDoc are correct
[OK] RAT check passes

On 5/14/21 3:26 PM, Steve Lawrence wrote:

Hi all,

I'd like to call a vote to release Apache Daffodil 3.1.0-rc2.

All distribution packages, including signatures, digests, etc. can be
found at:

https://dist.apache.org/repos/dist/dev/daffodil/3.1.0-rc2/

Staging artifacts can be found at:

https://repository.apache.org/content/repositories/orgapachedaffodil-1023/

This release has been signed with PGP key 36F3494B033AE661,
corresponding to slawre...@apache.org, which is included in the KEYS
file here:

https://downloads.apache.org/daffodil/KEYS

The release candidate has been tagged in git with v3.1.0-rc2.

For reference, here is a list of all closed JIRAs tagged with 3.1.0:

https://s.apache.org/daffodil-issues-3.1.0

For a summary of the changes in this release, see:

https://daffodil.apache.org/releases/3.1.0/

Please review and vote. The vote will be open for at least 72 hours
(Monday, 17 May 2021, 4pm EST).

[ ] +1 approve
[ ] +0 no opinion
[ ] -1 disapprove (and reason why)


--
Best Regards,
Lola K.



Sonarcloud wiki page

2020-12-04 Thread Olabusayo Kilo
FYI, I added some preliminary notes [1] on the wiki for Static Analysis 
with Sonarcloud. For now, it just has some links and the steps to 
perform static analysis on your local machine using sonarqube and 
sonar-scanner.  The plan is to gradually fill it out with more detail of 
how we use Sonarcloud.io.


[1] 
https://cwiki.apache.org/confluence/display/DAFFODIL/Static+Analysis%3A+Sonarcloud

--
Best Regards,
Lola K.


Running CLI Tests on IntelliJ and other Editor Notes

2020-11-16 Thread Olabusayo Kilo

Hello all,

I recently upgraded from Intellij Idea Community to the Ultimate 
edition, and found that I could finally run CLI tests, without having to 
make any additional configuration changes. I updated the intellij wiki 
page [1] to describe ways you can get a free Ultimate license.


If you have any Intellij, Eclipse or other editor notes, please feel 
free to update existing or create new pages under Editor Notes [2] to 
help others benefit from your knowledge.


[1] https://cwiki.apache.org/confluence/display/DAFFODIL/IntelliJ+IDEA+Setup
[2] https://cwiki.apache.org/confluence/display/DAFFODIL/Editor+Notes

--
Best Regards,
Lola K.


Re: [VOTE] Release Apache Daffodil (incubating) 3.0.0-rc1

2020-11-02 Thread Olabusayo Kilo

+1

I checked:

[OK] links in email are correct
[OK] verified Summary of Changes pages (maven, sbt and download)
[OK] JavaDoc and ScalaDoc are correct
[NOT OK] RAT check passes; .bsp/sbt.json file?
[OK] ~50 public and private DFDL schema projects pass tests

On 10/30/20 3:23 PM, Steve Lawrence wrote:

Hi all,

I'd like to call a vote to release Apache Daffodil (incubating) 3.0.0-rc1.

All distribution packages, including signatures, digests, etc. can be
found at:

https://dist.apache.org/repos/dist/dev/incubator/daffodil/3.0.0-rc1/

Staging artifacts can be found at:

https://repository.apache.org/content/repositories/orgapachedaffodil-1019/

This release has been signed with PGP key 36F3494B033AE661,
corresponding to slawre...@apache.org, which is included in the KEYS
file here:

https://downloads.apache.org/incubator/daffodil/KEYS

The release candidate has been tagged in git with v3.0.0-rc1.

For reference, here is a list of all closed JIRAs tagged with 3.0.0:

https://s.apache.org/daffodil-issues-3.0.0

For a summary of the changes in this release, see:

https://daffodil.apache.org/releases/3.0.0/

Please review and vote. The vote will be open for at least 72 hours
(Monday, 2 November 2020, 3:30 EST).

[ ] +1 approve
[ ] +0 no opinion
[ ] -1 disapprove (and reason why)

Thanks,
- Steve



--
Best Regards,
Lola K.


Re: Coroutines - was Re: Daffodil SAX API Proposal

2020-09-15 Thread Olabusayo Kilo
I don't think we came to a conclusion on which path we should take. If I 
understand correctly, our options seem to be between the Thread-based 
Coroutine library (#3; which has a bit of overhead) and the 
Continuations library (#2; which is not yet supported for 2.13 and 
requires the suspendable annotation). I wanted to check in to see if 
there was a preferred one that I could focus my effort on?


On 4/24/20 9:28 AM, Beckerle, Mike wrote:

A further thought on this. The overhead difference between continuations and 
threads was 1 to 4 (roughly).

If you add real workload to what happens on either side of that 
producer-consumer relationship, I bet this difference disappears into the 
noise, not because it becomes more efficient due to less contention, but 
because it's such a tiny fraction of the actual work being done.

The Thread-based coroutines library, I have a copy of in a separate sandbox, so 
if you want to grab that I'll get it over to you so you don't have to dig for 
it.

From: Beckerle, Mike 
Sent: Friday, April 24, 2020 8:53 AM
To: dev@daffodil.apache.org 
Subject: Re: Coroutines - was Re: Daffodil SAX API Proposal

That's really informative and confirms intuition that using threads really 
hurts performance when all you need is a stack switch.

In this case reducing contention should reduce total work, but that depends on 
how carefully the queue is implemented. If it is a single lock it may not 
matter.

We actually dont care about faster through parallelism because we should assume 
the machine is already saturated with work. We want to reduce total amount of 
work done.





From: Steve Lawrence 
Sent: Friday, April 24, 2020 8:02:37 AM
To: dev@daffodil.apache.org 
Subject: Re: Coroutines - was Re: Daffodil SAX API Proposal

I decided to look at performance of three potential options to see if
that would rule anything out. I looked at 1) coroutines 2) continuations
3) threads with BlockingQueue. For each of these, I modified the gist to
remove printlns and use a different producer consumer model (which is
actually very straightforward in we come across other alternatives to
test). So everything is the same except for how the SAX content handler
interacts with the custom InfosetInputter. For the performance numbers
below, I created enough "events" in a loop so that rate of events
remained roughly the same as I increased the number of events.

1) coroutines

It turns out the coroutines library has a limitation where the
yieldval() call must be directly inside the coroutine{} block. This is
basically a non-starter for us, since the entire unparse call needs to
be a coroutine, and the yieldval call happens way down the stack. So not
only does this not have any active development, it functionally won't
even work for us.

2) continuations

16.50 million events per second

3) thread with BlockingQueue

I think this is similar to the Coroutine library you wrote for Daffodil
(though it looks like it's been removed, we can probably find it in git
the history if we want). This runs the unparse method in a thread and
has a blocking queue that the producer pushes to and the consumer takes
from. I tested with different queue sizes to see how that affects
performance:

   size  rate
  1  0.14 million events per second
 10  1.36 million events per second
100  3.18 million events per second
   1000  3.16 million events per second
10  3.09 million events per second

So this BlockinQueue approach is quite a bit slower, and definitely
requires batching events to be somewhat performant. I guess this
slowness makes sens as this approach creates a thread for the unparse,
has different threads blocking on this queue, and also creates a bunch
of event objects to put in the queue (the continuation approach just
mutates state so no extra objects are needed). It is possible that this
isn't an accurate test since the producer is going crazy fast since I'm
just incrementing a Long in each loop iteration. In the real world, the
producer is going to be parsing XML or something, so won't be as fast.
Perhaps if the producer was actually slower there would be less thread
contention and actually allow for more parallel work?


On 4/23/20 5:41 PM, Beckerle, Mike wrote:

I am pretty worried about the @suspendable annotation. The way this shift/reset 
stuff works is it modifies the scala compiler to do something called 
continuation passing style. aka CPS.

I'd be ok if that was isolated to just a segment of the code. Maybe there is 
some natural way to do that?

But it seems to me that all code on the pathway from where a reset block is 
entered to where a shift is called, all of it has to propagate this 
@suspendable behavior and be compiled by way of this CPS plug in. That looks ok 
for the tiny toy examples, but for a giant code base like Daffodil runtime1 
unparser,  that seems fragile, potentially has impact on debugging, memory 

Re: Coroutines - was Re: Daffodil SAX API Proposal

2020-08-06 Thread Olabusayo Kilo
Hey Mike, can you send a copy for the Thread-based coroutines library 
referenced below?


On 4/24/20 9:28 AM, Beckerle, Mike wrote:

A further thought on this. The overhead difference between continuations and 
threads was 1 to 4 (roughly).

If you add real workload to what happens on either side of that 
producer-consumer relationship, I bet this difference disappears into the 
noise, not because it becomes more efficient due to less contention, but 
because it's such a tiny fraction of the actual work being done.

The Thread-based coroutines library, I have a copy of in a separate sandbox, so 
if you want to grab that I'll get it over to you so you don't have to dig for 
it.

From: Beckerle, Mike 
Sent: Friday, April 24, 2020 8:53 AM
To: dev@daffodil.apache.org 
Subject: Re: Coroutines - was Re: Daffodil SAX API Proposal

That's really informative and confirms intuition that using threads really 
hurts performance when all you need is a stack switch.

In this case reducing contention should reduce total work, but that depends on 
how carefully the queue is implemented. If it is a single lock it may not 
matter.

We actually dont care about faster through parallelism because we should assume 
the machine is already saturated with work. We want to reduce total amount of 
work done.





From: Steve Lawrence 
Sent: Friday, April 24, 2020 8:02:37 AM
To: dev@daffodil.apache.org 
Subject: Re: Coroutines - was Re: Daffodil SAX API Proposal

I decided to look at performance of three potential options to see if
that would rule anything out. I looked at 1) coroutines 2) continuations
3) threads with BlockingQueue. For each of these, I modified the gist to
remove printlns and use a different producer consumer model (which is
actually very straightforward in we come across other alternatives to
test). So everything is the same except for how the SAX content handler
interacts with the custom InfosetInputter. For the performance numbers
below, I created enough "events" in a loop so that rate of events
remained roughly the same as I increased the number of events.

1) coroutines

It turns out the coroutines library has a limitation where the
yieldval() call must be directly inside the coroutine{} block. This is
basically a non-starter for us, since the entire unparse call needs to
be a coroutine, and the yieldval call happens way down the stack. So not
only does this not have any active development, it functionally won't
even work for us.

2) continuations

16.50 million events per second

3) thread with BlockingQueue

I think this is similar to the Coroutine library you wrote for Daffodil
(though it looks like it's been removed, we can probably find it in git
the history if we want). This runs the unparse method in a thread and
has a blocking queue that the producer pushes to and the consumer takes
from. I tested with different queue sizes to see how that affects
performance:

   size  rate
  1  0.14 million events per second
 10  1.36 million events per second
100  3.18 million events per second
   1000  3.16 million events per second
10  3.09 million events per second

So this BlockinQueue approach is quite a bit slower, and definitely
requires batching events to be somewhat performant. I guess this
slowness makes sens as this approach creates a thread for the unparse,
has different threads blocking on this queue, and also creates a bunch
of event objects to put in the queue (the continuation approach just
mutates state so no extra objects are needed). It is possible that this
isn't an accurate test since the producer is going crazy fast since I'm
just incrementing a Long in each loop iteration. In the real world, the
producer is going to be parsing XML or something, so won't be as fast.
Perhaps if the producer was actually slower there would be less thread
contention and actually allow for more parallel work?


On 4/23/20 5:41 PM, Beckerle, Mike wrote:

I am pretty worried about the @suspendable annotation. The way this shift/reset 
stuff works is it modifies the scala compiler to do something called 
continuation passing style. aka CPS.

I'd be ok if that was isolated to just a segment of the code. Maybe there is 
some natural way to do that?

But it seems to me that all code on the pathway from where a reset block is 
entered to where a shift is called, all of it has to propagate this 
@suspendable behavior and be compiled by way of this CPS plug in. That looks ok 
for the tiny toy examples, but for a giant code base like Daffodil runtime1 
unparser,  that seems fragile, potentially has impact on debugging, memory 
allocation, and performance of the code, and,... well given the lack of 
enthusiastic support for shift/reset I think it is risky.

The only other option I can think of is to spawn a separate thread, allow true 
concurrency in a producer-consumer model.

We already have a Coroutines library you may recall. We're not 

[ANNOUNCE] Apache Daffodil (incubating) 2.6.0 Released

2020-04-24 Thread Olabusayo Kilo

The Apache Daffodil (incubating) community is pleased to announce the
release of version 2.6.0.

Notable changes in this release include performance and API updates, and 
the addition of Sonarqube analysis to our workflow.


Detailed release notes and downloads are available at:

https://daffodil.apache.org/releases/2.6.0/

Daffodil is an open source implementation of the Data Format
Description Language (DFDL) specification that uses DFDL schemas to
parse fixed format data into an infoset, which is most commonly
represented as either XML or JSON. This allows the use of
well-established XML or JSON technologies and libraries to consume,
inspect, and manipulate fixed format data in existing solutions.
Daffodil is also capable of the reverse by serializing or "unparsing"
an XML or JSON infoset back to the original data format.

For more information about Daffodil visit:

https://daffodil.apache.org/

Regards,
The Apache Daffodil Team



=

*Disclaimer*

Apache Daffodil is an effort undergoing incubation at The Apache
Software Foundation (ASF), sponsored by the Apache Incubator PMC.
Incubation is required of all newly accepted projects until a further
review indicates that the infrastructure, communications, and decision
making process have stabilized in a manner consistent with other
successful ASF projects. While incubation status is not necessarily a
reflection of the completeness or stability of the code, it does
indicate that the project has yet to be fully endorsed by the ASF.


[RESULT][VOTE] Release Apache Daffodil (incubating) 2.6.0-rc2

2020-04-13 Thread Olabusayo Kilo

The VOTE to release Apache Daffodil (incubating) 2.6.0-rc2 is now
closed. The vote passes with 5 +1 votes, and NO -1 votes.

The VOTE thread:

https://lists.apache.org/thread.html/r25781e7da23f4d0318ca6fa316c8d4bfb244e441fa4d722be4010be2%40%3Cdev.daffodil.apache.org%3E

+1's were:
  Steve Lawrence
  Mike Beckerle
  Joshua Adams
  Dave Thompson

Thanks to everyone who voted. I'll open the VOTE thread on the Incubator
general list shortly.
--
Best Regards
Lola K.


Re: [VOTE] Release Apache Daffodil (incubating) 2.6.0-rc2

2020-04-13 Thread Olabusayo Kilo

Thanks all. This VOTE is now closed. I'll send out a result vote shortly.

On 4/13/20 3:27 PM, Thompson, Dave wrote:

+1

Verified and closed all v2.6.0 resolved JIRA tickets.


-Original Message-
From: Olabusayo Kilo
Sent: Thursday, April 9, 2020 1:06 PM
To: dev@daffodil.apache.org
Subject: [VOTE] Release Apache Daffodil (incubating) 2.6.0-rc2

Hi all,

I'd like to call a vote to release Apache Daffodil (incubating) 2.6.0-rc2.

All distribution packages, including signatures, digests, etc. can be found at:

https://dist.apache.org/repos/dist/dev/incubator/daffodil/2.6.0-rc2/

Staging artifacts can be found at:

https://repository.apache.org/content/repositories/orgapachedaffodil-1015

This release has been signed with PGP key 639637FDA8049411, corresponding to 
olabus...@apache.org, which is included in the KEYS file here:

https://downloads.apache.org/incubator/daffodil/KEYS

The release candidate has been tagged in git with v2.6.0-rc2.

For reference, here is a list of all closed JIRAs tagged with 2.6.0:

https://s.apache.org/daffodil-issues-2.6.0

For a summary of the changes in this release, see:

https://daffodil.apache.org/releases/2.6.0/

Please review and vote. The vote will be open for at least 72 hours (ends on 
Sunday, 12 April 2020, 12 Noon EST).

[ ] +1 approve
[ ] +0 no opinion
[ ] -1 disapprove (and reason why)
--
Best Regards
Lola K.



--
Best Regards
Lola K.


Re: [VOTE] Release Apache Daffodil (incubating) 2.6.0-rc2

2020-04-10 Thread Olabusayo Kilo

Noted, hyperlink has been fixed.

On 4/10/20 1:43 PM, Beckerle, Mike wrote:


+1 from me.

I checked that the checked out code builds and runs all built in tests.
I inspected the checked out tree and found nothing surprising in it.

Rather than re-inspect to double-check things other people have checked I 
decided to re-verify the essential
functionality of the release, which is the speedup and reduced memory footprint 
of the DFDL schema compiler.
I wanted to be sure nothing in the more recent commits had caused regression of 
this.

In particular I tested that some of our very largest DFDL schemas, which used 
to compile in many minutes and required many gigs of RAM to do so on Daffodil 
2.5.0, now behave much better in 2.6.0.

I am satisfied that nothing has regressed.

Schema EDIFACT works with 'sbt -mem 320 test'. That's only 320Meg of RAM. I verified 
this with visualvm.  It takes about 20 seconds to compile the schema. It won't go 
much lower than that "-mem 256' failed with GC overhead/out-of-memory 
conditions.

Schema stanag-5516-with-nact works with 'sbt -mem 1024 test'  Takes about 1 minute 
to compile and run the slowest test, which is still very slow, but is far less than 
it was. BTW: this schema I modified to include *every* message. In the past due to 
the long compilation times we had commented out all but a handful of messages, and 
it still took many minutes to compile.  This schema does seem to need roughly this 
"-mem 1024' (which is 1 gigabyte) memory level. It failed with 'sbt -mem 768 
test'.

I did spot an issue not with the release per-se, but with the release page for 
our site. It's a nit, but there is a hyperlink mid page
that should take you to the Deprecation/Compatibility section at the bottom, 
and that hyperlink does not work.

-mike beckerle






On 4/9/20 1:05 PM, Olabusayo Kilo wrote:

Hi all,

I'd like to call a vote to release Apache Daffodil (incubating) 2.6.0-rc2.

All distribution packages, including signatures, digests, etc. can be
found at:

https://dist.apache.org/repos/dist/dev/incubator/daffodil/2.6.0-rc2/

Staging artifacts can be found at:

https://repository.apache.org/content/repositories/orgapachedaffodil-1015

This release has been signed with PGP key 639637FDA8049411,
corresponding to olabus...@apache.org, which is included in the KEYS
file here:

https://downloads.apache.org/incubator/daffodil/KEYS

The release candidate has been tagged in git with v2.6.0-rc2.

For reference, here is a list of all closed JIRAs tagged with 2.6.0:

https://s.apache.org/daffodil-issues-2.6.0

For a summary of the changes in this release, see:

https://daffodil.apache.org/releases/2.6.0/

Please review and vote. The vote will be open for at least 72 hours
(ends on Sunday, 12 April 2020, 12 Noon EST).

[ ] +1 approve
[ ] +0 no opinion
[ ] -1 disapprove (and reason why)





--
Best Regards
Lola K.


[VOTE] Release Apache Daffodil (incubating) 2.6.0-rc2

2020-04-09 Thread Olabusayo Kilo

Hi all,

I'd like to call a vote to release Apache Daffodil (incubating) 2.6.0-rc2.

All distribution packages, including signatures, digests, etc. can be
found at:

https://dist.apache.org/repos/dist/dev/incubator/daffodil/2.6.0-rc2/

Staging artifacts can be found at:

https://repository.apache.org/content/repositories/orgapachedaffodil-1015

This release has been signed with PGP key 639637FDA8049411, 
corresponding to olabus...@apache.org, which is included in the KEYS 
file here:


https://downloads.apache.org/incubator/daffodil/KEYS

The release candidate has been tagged in git with v2.6.0-rc2.

For reference, here is a list of all closed JIRAs tagged with 2.6.0:

https://s.apache.org/daffodil-issues-2.6.0

For a summary of the changes in this release, see:

https://daffodil.apache.org/releases/2.6.0/

Please review and vote. The vote will be open for at least 72 hours
(ends on Sunday, 12 April 2020, 12 Noon EST).

[ ] +1 approve
[ ] +0 no opinion
[ ] -1 disapprove (and reason why)
--
Best Regards
Lola K.


Re: [VOTE] Release Apache Daffodil (incubating) 2.6.0-rc1

2020-04-07 Thread Olabusayo Kilo

(Resending due to issue with weird formatting/pipes in previous message)

Hi all,

I'd like to call a vote to release Apache Daffodil (incubating) 2.6.0-rc1.

All distribution packages, including signatures, digests, etc. can be
found at:

https://dist.apache.org/repos/dist/dev/incubator/daffodil/2.6.0-rc1/

Staging artifacts can be found at:

https://repository.apache.org/content/repositories/orgapachedaffodil-1014/

This release has been signed with PGP key 639637FDA8049411, corresponding
to olabus...@apache.org, which is included in the KEYS file here:

https://downloads.apache.org/incubator/daffodil/KEYS

The release candidate has been tagged in git with v2.6.0-rc1.

For reference, here is a list of all closed JIRAs tagged with 2.0.0:

https://s.apache.org/daffodil-issues-2.6.0

For a summary of the changes in this release, see:

https://daffodil.apache.org/releases/2.6.0/

Please review and vote. The vote will be open for at least 72 hours
(ends on Friday, 10 April 2020, 3 PM EST).

[ ] +1 approve
[ ] +0 no opinion
[ ] -1 disapprove (and reason why)

--
Best Regards
Lola K.




[VOTE] Release Apache Daffodil (incubating) 2.6.0-rc1

2020-04-07 Thread Olabusayo Kilo

|Hi all,|
|I'd like to call a vote to release Apache Daffodil (incubating) 2.6.0-rc1.|
|All distribution packages, including signatures, digests, etc. can be|
|found at:|

https://dist.apache.org/repos/dist/dev/incubator/daffodil/2.6.0-rc1/


|Staging artifacts can be found at:|
||
|https://repository.apache.org/content/repositories/orgapachedaffodil-1014/|
|This release has been signed with PGP key 639637FDA8049411, corresponding|
|to olabus...@apache.org, which is included in the KEYS file here:|
https://downloads.apache.org/incubator/daffodil/KEYS
||
|The release candidate has been tagged in git with v2.6.0-rc1.|
|For reference, here is a list of all closed JIRAs tagged with 2.0.0:|
https://s.apache.org/daffodil-issues-2.6.0
||
|For a summary of the changes in this release, see:|
https://daffodil.apache.org/releases/2.6.0/
||
|Please review and vote. The vote will be open for at least 72 hours|
|(ends on Friday, 10 April 2020, 3 PM EST).|
|[ ] +1 approve|
|[ ] +0 no opinion|
|[ ] -1 disapprove (and reason why)|

--
Best Regards
Lola K.



Re: [DISCUSS] Daffodil 2.6.0 Release

2020-04-03 Thread Olabusayo Kilo
These issues have been addressed, and the rest will be addressed after 
the release.


https://issues.apache.org/jira/browse/DAFFODIL-2305
https://issues.apache.org/jira/browse/DAFFODIL-2302

The Sonarqube required more work than anticipated and we didn't want to 
hold up the release for it.


I'll be starting the process to create a release candidate.

- Lola

On 3/25/20 3:12 PM, Steve Lawrence wrote:

With the last of the changes recently merged to support improved schema
compilation speed and memory, I think now is a good time to start
discussing the next release.

1) Does anyone have any changes that are close to being ready to merge
or bugs that are worth delaying the next release until resolved?

2) Does anyone want to volunteer to be the release manager for 2.6.0?
The release process [1] now uses containers for most of the heavy
lifting, and since I did it last time it would be good to get someone
else familiar with the new release process and make sure the container
works for someone other than myself.

- Steve


--
Best Regards
Lola K.



Re: [DISCUSS] Daffodil 2.6.0 Release

2020-03-25 Thread Olabusayo Kilo

I'd like to have the below done for 2.6.0

https://issues.apache.org/jira/browse/DAFFODIL-2305 - Remove some unused 
methods from Term.scala


https://issues.apache.org/jira/browse/DAFFODIL-2275 - Reduce code smells 
and make some configuration changes to Sonarqube


I don't mind managing the release, although I think Josh A had expressed 
interest last time.



On 3/25/20 3:24 PM, Beckerle, Mike wrote:

I have two issues I'd like fixed for 2.6.0

https://issues.apache.org/jira/browse/DAFFODIL-2302 - this is making it 
difficult to update a Link16 schema that is in use by multiple parties.

There's a second issue, which is that we still have this "NadaParsers are supposed 
to optimize out" problem. Came up in this same schema again even after the fix which 
supposedly addressed it. So I think the fix solved some, but not all of this problem.  I 
will try to recreate this and reopen the ticket if it is still happening.

I don't want to manage the release, but I definitely think it's better if it 
isn't Steve L., ... I could have my arm twisted.

From: Steve Lawrence 
Sent: Wednesday, March 25, 2020 3:12 PM
To: dev@daffodil.apache.org 
Subject: [DISCUSS] Daffodil 2.6.0 Release

With the last of the changes recently merged to support improved schema
compilation speed and memory, I think now is a good time to start
discussing the next release.

1) Does anyone have any changes that are close to being ready to merge
or bugs that are worth delaying the next release until resolved?

2) Does anyone want to volunteer to be the release manager for 2.6.0?
The release process [1] now uses containers for most of the heavy
lifting, and since I did it last time it would be good to get someone
else familiar with the new release process and make sure the container
works for someone other than myself.

- Steve


--
Best Regards
Lola K.



[jira] [Assigned] (DAFFODIL-2209) TDML Improperly handles MAC Style (CR) line endings

2019-10-02 Thread Olabusayo Kilo (Jira)


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

Olabusayo Kilo reassigned DAFFODIL-2209:


Assignee: Olabusayo Kilo

> TDML Improperly handles MAC Style (CR) line endings
> ---
>
> Key: DAFFODIL-2209
> URL: https://issues.apache.org/jira/browse/DAFFODIL-2209
> Project: Daffodil
>  Issue Type: Bug
>  Components: TDML Runner
>    Reporter: Olabusayo Kilo
>    Assignee: Olabusayo Kilo
>Priority: Major
> Fix For: 2.5.0
>
>
> Attempts to twoPass test files with MAC style line endings (CR) results in a 
> "getSimpleText does not match" error.



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


[jira] [Created] (DAFFODIL-2209) TDML Improperly handles MAC Style (CR) line endings

2019-10-02 Thread Olabusayo Kilo (Jira)
Olabusayo Kilo created DAFFODIL-2209:


 Summary: TDML Improperly handles MAC Style (CR) line endings
 Key: DAFFODIL-2209
 URL: https://issues.apache.org/jira/browse/DAFFODIL-2209
 Project: Daffodil
  Issue Type: Bug
  Components: TDML Runner
Reporter: Olabusayo Kilo
 Fix For: 2.5.0


Attempts to twoPass test files with MAC style line endings (CR) results in a 
"getSimpleText does not match" error.



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


[jira] [Commented] (DAFFODIL-2186) User defined functions for DPath expressions

2019-09-12 Thread Olabusayo Kilo (Jira)


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

Olabusayo Kilo commented on DAFFODIL-2186:
--

Proposal to solve this is here 
[https://cwiki.apache.org/confluence/display/DAFFODIL/Proposal%3A+User+Defined+Functions]

 

> User defined functions for DPath expressions
> 
>
> Key: DAFFODIL-2186
> URL: https://issues.apache.org/jira/browse/DAFFODIL-2186
> Project: Daffodil
>  Issue Type: New Feature
>  Components: Back End, Front End
>Affects Versions: 2.4.0
>Reporter: Michael Beckerle
>    Assignee: Olabusayo Kilo
>Priority: Major
> Fix For: 2.5.0
>
>
> Some things cannot be reasonably expressed in DFDL's DPath expression 
> language.
> A good example of this is the abililty to convert between elevation measured 
> in height above geoid (aka elevation above mean sea level or MSL), and 
> height-above-elipsoid or HAE. This requires a table of numbers and 
> interpolation. Nevertheless a DFDL schema needs to convert units of measure 
> and it is very convenient to have the output of a DFDL parse to be normalized 
> into a desired unit of measure.
> The ability to define a function in a separate jar library, and call it from 
> a DPath expression, having registered it somehow so Daffodil can find it, is 
> what I'm calling a user-defined function.
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Assigned] (DAFFODIL-2186) User defined functions for DPath expressions

2019-09-12 Thread Olabusayo Kilo (Jira)


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

Olabusayo Kilo reassigned DAFFODIL-2186:


Assignee: Olabusayo Kilo

> User defined functions for DPath expressions
> 
>
> Key: DAFFODIL-2186
> URL: https://issues.apache.org/jira/browse/DAFFODIL-2186
> Project: Daffodil
>  Issue Type: New Feature
>  Components: Back End, Front End
>Affects Versions: 2.4.0
>Reporter: Michael Beckerle
>    Assignee: Olabusayo Kilo
>Priority: Major
> Fix For: 2.5.0
>
>
> Some things cannot be reasonably expressed in DFDL's DPath expression 
> language.
> A good example of this is the abililty to convert between elevation measured 
> in height above geoid (aka elevation above mean sea level or MSL), and 
> height-above-elipsoid or HAE. This requires a table of numbers and 
> interpolation. Nevertheless a DFDL schema needs to convert units of measure 
> and it is very convenient to have the output of a DFDL parse to be normalized 
> into a desired unit of measure.
> The ability to define a function in a separate jar library, and call it from 
> a DPath expression, having registered it somehow so Daffodil can find it, is 
> what I'm calling a user-defined function.
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Assigned] (DAFFODIL-2168) Provide support for Non-spacing mark/Combining Characters in Debugger

2019-07-03 Thread Olabusayo Kilo (JIRA)


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

Olabusayo Kilo reassigned DAFFODIL-2168:


Assignee: Olabusayo Kilo

> Provide support for Non-spacing mark/Combining Characters in Debugger
> -
>
> Key: DAFFODIL-2168
> URL: https://issues.apache.org/jira/browse/DAFFODIL-2168
> Project: Daffodil
>  Issue Type: Bug
>  Components: Debugger
>Affects Versions: 2.4.0
>    Reporter: Olabusayo Kilo
>    Assignee: Olabusayo Kilo
>Priority: Major
> Attachments: nonspacingmark.png, tcp.dfdl.xsd, test.dump
>
>
> Certain unicode characters are [combining 
> characters|https://en.wikipedia.org/wiki/Combining_character] and can combine 
> with the characters surrounding them, modifying them. This can lead to 
> misalignment in our debugger.
> A possible solution could be to detect when a character is a non-spacing
>  (or other combining character) and insert the appropriate number of spaces 
> around it. Java's Character.getType method will return an enum about what 
> type a character is. Many of these character types might need this alignment 
> assistance.
> Attached is a pictorial example of the problem and the files that can be used 
> to recreate the issue. 
> Command run:
> {code:java}
> daffodil --trace parse -Dtransport:Protocol=6 transport:DataLength=79 -s 
> tcp.dfdl.xsd test.dump{code}



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


[jira] [Updated] (DAFFODIL-2168) Provide support for Non-spacing mark/Combining Characters in Debugger

2019-07-02 Thread Olabusayo Kilo (JIRA)


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

Olabusayo Kilo updated DAFFODIL-2168:
-
Summary: Provide support for Non-spacing mark/Combining Characters in 
Debugger  (was: Provide support for Non-spacing mark/Combining Characters in 
Debbuger)

> Provide support for Non-spacing mark/Combining Characters in Debugger
> -
>
> Key: DAFFODIL-2168
> URL: https://issues.apache.org/jira/browse/DAFFODIL-2168
> Project: Daffodil
>  Issue Type: Bug
>  Components: Debugger
>Affects Versions: 2.4.0
>    Reporter: Olabusayo Kilo
>Priority: Major
> Attachments: nonspacingmark.png, tcp.dfdl.xsd, test.dump
>
>
> Certain unicode characters are [combining 
> characters|https://en.wikipedia.org/wiki/Combining_character] and can combine 
> with the characters surrounding them, modifying them. This can lead to 
> misalignment in our debugger.
> A possible solution could be to detect when a character is a non-spacing
>  (or other combining character) and insert the appropriate number of spaces 
> around it. Java's Character.getType method will return an enum about what 
> type a character is. Many of these character types might need this alignment 
> assistance.
> Attached is a pictorial example of the problem and the files that can be used 
> to recreate the issue. 
> Command run:
> {code:java}
> daffodil --trace parse -Dtransport:Protocol=6 transport:DataLength=79 -s 
> tcp.dfdl.xsd test.dump{code}



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


[jira] [Assigned] (DAFFODIL-2173) Data dumps should be bit-aware

2019-07-01 Thread Olabusayo Kilo (JIRA)


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

Olabusayo Kilo reassigned DAFFODIL-2173:


Assignee: Olabusayo Kilo

> Data dumps should be bit-aware
> --
>
> Key: DAFFODIL-2173
> URL: https://issues.apache.org/jira/browse/DAFFODIL-2173
> Project: Daffodil
>  Issue Type: Bug
>  Components: Debugger
>Affects Versions: 2.4.0
>    Reporter: Olabusayo Kilo
>    Assignee: Olabusayo Kilo
>Priority: Major
>
> Data dumps print out bytes without regard to the bit offset. So if some bits 
> have already been consumed, the dumps might include those already consumed 
> bits.
> Ideally we would like to be bit sensitive. A possible solution would be to 
> track if the first byte of the left over data, already had consumed bytes i.e 
> ended mid-byte, and only display those non consumed bits. That is, if the 
> data ended at bit 5, and bit order is mostSignificantBitFirst, then this 
> picture would look like x000 (where the 0's are the actual left over data 
> bits in that first byte of the left over data.) If bitOrder is 
> leastSignificantBitFirst the picture would look like 000x.
> inStream.fillByteArray takes the bit offset into accound and can be utilized.



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


[jira] [Commented] (DAFFODIL-2173) Data dumps should be bit-aware

2019-06-28 Thread Olabusayo Kilo (JIRA)


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

Olabusayo Kilo commented on DAFFODIL-2173:
--

First pass at a solution, involves the following steps
 # Determine bitorder and byteorder of data at current position (finfo)
 # Check if bitPosition is mid byte.
 ## If it's mid byte, call fillByteArray (currently private) for bits up to the 
next byte boundary. Update byteLimit.
 ## 
{code:java}
// val bitsAlreadyCosumed = loc.bitPos0b % 8
// val firstByteBitArray = new Array[Byte](1)
/* if (bitsAlreadyConsumed != 0 ) // mid-byte {
* bitsToDisplay = 8 - bitsAlreadyConsumed
* inStream.fillByteArray(firstByteBitarray, bitsToDisplay, finfo)
* bytesLimit -= 1 //we've taken care of first byte
* }{code}

 # Call inputSource.get as usual, either with byteLimit 1 less, or unchanged. 
Decode this byte array as is currently done.
 # Use bitOrder and byteOrder to display bitArray (e.g x100 or 100x)

> Data dumps should be bit-aware
> --
>
> Key: DAFFODIL-2173
> URL: https://issues.apache.org/jira/browse/DAFFODIL-2173
> Project: Daffodil
>  Issue Type: Bug
>  Components: Debugger
>Affects Versions: 2.4.0
>    Reporter: Olabusayo Kilo
>    Assignee: Olabusayo Kilo
>Priority: Major
>
> Data dumps print out bytes without regard to the bit offset. So if some bits 
> have already been consumed, the dumps might include those already consumed 
> bits.
> Ideally we would like to be bit sensitive. A possible solution would be to 
> track if the first byte of the left over data, already had consumed bytes i.e 
> ended mid-byte, and only display those non consumed bits. That is, if the 
> data ended at bit 5, and bit order is mostSignificantBitFirst, then this 
> picture would look like x000 (where the 0's are the actual left over data 
> bits in that first byte of the left over data.) If bitOrder is 
> leastSignificantBitFirst the picture would look like 000x.
> inStream.fillByteArray takes the bit offset into accound and can be utilized.



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


[jira] [Assigned] (DAFFODIL-2173) Data dumps should be bit-aware

2019-06-28 Thread Olabusayo Kilo (JIRA)


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

Olabusayo Kilo reassigned DAFFODIL-2173:


Assignee: (was: Olabusayo Kilo)

> Data dumps should be bit-aware
> --
>
> Key: DAFFODIL-2173
> URL: https://issues.apache.org/jira/browse/DAFFODIL-2173
> Project: Daffodil
>  Issue Type: Bug
>  Components: Debugger
>Affects Versions: 2.4.0
>    Reporter: Olabusayo Kilo
>Priority: Major
>
> Data dumps print out bytes without regard to the bit offset. So if some bits 
> have already been consumed, the dumps might include those already consumed 
> bits.
> Ideally we would like to be bit sensitive. A possible solution would be to 
> track if the first byte of the left over data, already had consumed bytes i.e 
> ended mid-byte, and only display those non consumed bits. That is, if the 
> data ended at bit 5, and bit order is mostSignificantBitFirst, then this 
> picture would look like x000 (where the 0's are the actual left over data 
> bits in that first byte of the left over data.) If bitOrder is 
> leastSignificantBitFirst the picture would look like 000x.
> inStream.fillByteArray takes the bit offset into accound and can be utilized.



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


[jira] [Assigned] (DAFFODIL-2173) Data dumps should be bit-aware

2019-06-28 Thread Olabusayo Kilo (JIRA)


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

Olabusayo Kilo reassigned DAFFODIL-2173:


Assignee: Olabusayo Kilo

> Data dumps should be bit-aware
> --
>
> Key: DAFFODIL-2173
> URL: https://issues.apache.org/jira/browse/DAFFODIL-2173
> Project: Daffodil
>  Issue Type: Bug
>  Components: Debugger
>Affects Versions: 2.4.0
>    Reporter: Olabusayo Kilo
>    Assignee: Olabusayo Kilo
>Priority: Major
>
> Data dumps print out bytes without regard to the bit offset. So if some bits 
> have already been consumed, the dumps might include those already consumed 
> bits.
> Ideally we would like to be bit sensitive. A possible solution would be to 
> track if the first byte of the left over data, already had consumed bytes i.e 
> ended mid-byte, and only display those non consumed bits. That is, if the 
> data ended at bit 5, and bit order is mostSignificantBitFirst, then this 
> picture would look like x000 (where the 0's are the actual left over data 
> bits in that first byte of the left over data.) If bitOrder is 
> leastSignificantBitFirst the picture would look like 000x.
> inStream.fillByteArray takes the bit offset into accound and can be utilized.



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


[jira] [Created] (DAFFODIL-2173) Data dumps should be bit-aware

2019-06-28 Thread Olabusayo Kilo (JIRA)
Olabusayo Kilo created DAFFODIL-2173:


 Summary: Data dumps should be bit-aware
 Key: DAFFODIL-2173
 URL: https://issues.apache.org/jira/browse/DAFFODIL-2173
 Project: Daffodil
  Issue Type: Bug
  Components: Debugger
Affects Versions: 2.4.0
Reporter: Olabusayo Kilo


Data dumps print out bytes without regard to the bit offset. So if some bits 
have already been consumed, the dumps might include those already consumed bits.

Ideally we would like to be bit sensitive. A possible solution would be to 
track if the first byte of the left over data, already had consumed bytes i.e 
ended mid-byte, and only display those non consumed bits. That is, if the data 
ended at bit 5, and bit order is mostSignificantBitFirst, then this picture 
would look like x000 (where the 0's are the actual left over data bits in 
that first byte of the left over data.) If bitOrder is leastSignificantBitFirst 
the picture would look like 000x.

inStream.fillByteArray takes the bit offset into accound and can be utilized.



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


[jira] [Assigned] (DAFFODIL-1478) Debugger uses the term arrayIndex. Really should be occursIndex to match the function of the same name.

2019-06-27 Thread Olabusayo Kilo (JIRA)


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

Olabusayo Kilo reassigned DAFFODIL-1478:


Assignee: Olabusayo Kilo

> Debugger uses the term arrayIndex. Really should be occursIndex to match the 
> function of the same name.
> ---
>
> Key: DAFFODIL-1478
> URL: https://issues.apache.org/jira/browse/DAFFODIL-1478
> Project: Daffodil
>  Issue Type: Bug
>  Components: Debugger, Usability
>Affects Versions: 1.1.0
>Reporter: Michael Beckerle
>Assignee: Olabusayo Kilo
>Priority: Minor
>  Labels: beginner
> Fix For: 2.4.0
>
>
> To display the current index you type this debugger command:
> info arrayIndex
> Since the corresponding function is named dfdl:occursIndex, we should adopt 
> that terminology.



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


[jira] [Assigned] (DAFFODIL-1387) Data dump no longer showing for left over data

2019-06-26 Thread Olabusayo Kilo (JIRA)


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

Olabusayo Kilo reassigned DAFFODIL-1387:


Assignee: Olabusayo Kilo

> Data dump no longer showing for left over data
> --
>
> Key: DAFFODIL-1387
> URL: https://issues.apache.org/jira/browse/DAFFODIL-1387
> Project: Daffodil
>  Issue Type: Bug
>  Components: Debugger, Diagnostics, Usability
>Affects Versions: 2.0.0
>Reporter: Elizabeth Fahl
>    Assignee: Olabusayo Kilo
>Priority: Major
>
> Tests used to show a data dump for things like left over data but this seems 
> to be missing now.
> For example:
> {noformat}
> echo -ne "string|123456" | daffodil_cli parse -s 
> ./daffodil-cli/src/test/resources/edu/illinois/ncsa/daffodil/CLI/cli_schema.dfdl.xsd
>  -r leftover
> {noformat}
> Output used to be similar to:
> {noformat}
> [error] Left over data. 11 bytes available. Location: byte 10
> UTF-8 text starting at byte 8 is: (234)
> Data (hex) starting at byte 8 is: (0x323334)
> http://example.com;>
>   string
>   123
> 
>  {noformat}
> Now looks like:
> {noformat}
> [error] Left over data. 13 bytes available. Location: byte 10 limit 13
> http://example.com;>
>   string
>   123
> 
> {noformat}



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


[jira] [Created] (DAFFODIL-2168) Provide support for Non-spacing mark/Combining Characters in Debbuger

2019-06-26 Thread Olabusayo Kilo (JIRA)
Olabusayo Kilo created DAFFODIL-2168:


 Summary: Provide support for Non-spacing mark/Combining Characters 
in Debbuger
 Key: DAFFODIL-2168
 URL: https://issues.apache.org/jira/browse/DAFFODIL-2168
 Project: Daffodil
  Issue Type: Bug
  Components: Debugger
Affects Versions: 2.4.0
Reporter: Olabusayo Kilo
 Attachments: nonspacingmark.png, tcp.dfdl.xsd, test.dump

Certain unicode characters are [combining 
characters|https://en.wikipedia.org/wiki/Combining_character] and can combine 
with the characters surrounding them, modifying them. This can lead to 
misalignment in our debugger.

A possible solution could be to detect when a character is a non-spacing
 (or other combining character) and insert the appropriate number of spaces 
around it. Java's Character.getType method will return an enum about what type 
a character is. Many of these character types might need this alignment 
assistance.

Attached is a pictorial example of the problem and the files that can be used 
to recreate the issue. 

Command run:
{code:java}
daffodil --trace parse -Dtransport:Protocol=6 transport:DataLength=79 -s 
tcp.dfdl.xsd test.dump{code}



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


[jira] [Assigned] (DAFFODIL-2123) Exception on error when parsing hex data with trace on

2019-06-20 Thread Olabusayo Kilo (JIRA)


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

Olabusayo Kilo reassigned DAFFODIL-2123:


Assignee: Olabusayo Kilo

> Exception on error when parsing hex data with trace on
> --
>
> Key: DAFFODIL-2123
> URL: https://issues.apache.org/jira/browse/DAFFODIL-2123
> Project: Daffodil
>  Issue Type: Bug
>  Components: Back End, Diagnostics
>Affects Versions: 2.4.0
>    Reporter: Olabusayo Kilo
>    Assignee: Olabusayo Kilo
>Priority: Major
> Attachments: tcp.dfdl.xsd, test.dump
>
>
> When trying to parse hex data with an xsd than causes an error with trace on, 
> I get the error below. 
> {code:java}
> org.apache.daffodil.exceptions.Abort: Invariant broken: nConsumedBytes.>(0)
> org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
> org.apache.daffodil.io.DataDumper.convertToChar(Dump.scala:489)
> org.apache.daffodil.io.DataDumper.textDump(Dump.scala:150)
> org.apache.daffodil.io.DataDumper.$anonfun$dumpHexAndTextBytes$2(Dump.scala:297)
> at org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
> at org.apache.daffodil.io.DataDumper.convertToChar(Dump.scala:489)
> at org.apache.daffodil.io.DataDumper.textDump(Dump.scala:150)
> at 
> org.apache.daffodil.io.DataDumper.$anonfun$dumpHexAndTextBytes$2(Dump.scala:297)
> at scala.runtime.java8.JFunction1$mcVJ$sp.apply(JFunction1$mcVJ$sp.java:12)
> at scala.collection.immutable.NumericRange.foreach(NumericRange.scala:71)
> at org.apache.daffodil.io.DataDumper.dumpHexAndTextBytes(Dump.scala:264)
> at org.apache.daffodil.io.DataDumper.dump(Dump.scala:129)
> at org.apache.daffodil.processors.DataLoc.dumpStream(DataLoc.scala:144)
> at org.apache.daffodil.processors.DataLoc.dump(DataLoc.scala:104)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$InfoData$.printData(InteractiveDebugger.scala:1313)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$InfoData$.act(InteractiveDebugger.scala:1346)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$.$anonfun$act$20(InteractiveDebugger.scala:1202)
> at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:32)
> at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:29)
> at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:38)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$.act(InteractiveDebugger.scala:1200)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$.act(InteractiveDebugger.scala:682)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger$DebugCommand.apply(InteractiveDebugger.scala:472)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger.runCommand(InteractiveDebugger.scala:433)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger.$anonfun$debugStep$4(InteractiveDebugger.scala:174)
> at scala.collection.immutable.List.foreach(List.scala:389)
> at 
> scala.collection.generic.TraversableForwarder.foreach(TraversableForwarder.scala:35)
> at 
> scala.collection.generic.TraversableForwarder.foreach$(TraversableForwarder.scala:35)
> at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:44)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger.$anonfun$debugStep$1(InteractiveDebugger.scala:173)
> at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
> at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
> at 
> org.apache.daffodil.ExecutionMode$.$anonfun$usingUnrestrictedMode$1(ExecutionMode.scala:66)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger.debugStep(InteractiveDebugger.scala:153)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger.startElement(InteractiveDebugger.scala:209)
> at 
> org.apache.daffodil.events.MultipleEventHandler.$anonfun$startElement$1(ParseEventHandler.scala:117)
> at 
> org.apache.daffodil.events.MultipleEventHandler.$anonfun$startElement$1$adapted(ParseEventHandler.scala:117)
> at scala.collection.immutable.List.foreach(List.scala:389)
> at 
> org.apache.daffodil.events.MultipleEventHandler.startElement(ParseEventHandler.scala:117)
> at 
> org.apache.daffodil.events.MultipleEventHandler.startElement$(ParseEventHandler.scala:115)
> at org.apache.daffodil.processors.DataProcessor.startElement(Runtime.scala:92)
> at 
> org.apache.daffodil.processors.parsers.ElementParserBase.parse(ElementCombinator1.scala:141)
> at org.apache.daffodil.processors.parsers.Parser.parse1(Parser.s

[jira] [Assigned] (DAFFODIL-2119) Debugger RTL data dumps are nibbles-reversed

2019-06-20 Thread Olabusayo Kilo (JIRA)


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

Olabusayo Kilo reassigned DAFFODIL-2119:


Assignee: Olabusayo Kilo

> Debugger RTL data dumps are nibbles-reversed
> 
>
> Key: DAFFODIL-2119
> URL: https://issues.apache.org/jira/browse/DAFFODIL-2119
> Project: Daffodil
>  Issue Type: Bug
>  Components: Debugger
>Affects Versions: 2.3.0
>Reporter: Michael Beckerle
>    Assignee: Olabusayo Kilo
>Priority: Major
>
> This is what the debugger outputs for parsing one of the tests for 
> mil-std-2045, test2045msghdr1.
> It detects that this is bitOrder leastSignificantBitFirst data and so 
> presents the data Right-to-Left order, which is good.
> {code:java}
>      fedcba9876543210  ffee ddcc bbaa 9988 7766 5544 3322 1100  87654321
>    cø€␀␀␀wü␚’gU€␀gä  368f 0800  77cf a129 7655 0800 764e :
>       ␀␀␁›¶þ␐HD   00 0010 b96b ef01 8444 :0010{code}
>  
> However, this is gibberish, as the bytes of this data (left-to-right) are E4 
> 67 00 80 55
> So presented Right-to-left the values in the bytes shouldn't change. But if 
> you look at the data dump above, the bytes are 4e 76 00 08 55 which means 
> the nibbles of each byte have been swapped.
> That's just plain wrong. Bit order doesn't change the numeric value of any 
> byte.
> These displays are useless.
>  



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


[jira] [Updated] (DAFFODIL-2123) Exception on error when parsing hex data with trace on

2019-05-08 Thread Olabusayo Kilo (JIRA)


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

Olabusayo Kilo updated DAFFODIL-2123:
-
Component/s: (was: Debugger)

> Exception on error when parsing hex data with trace on
> --
>
> Key: DAFFODIL-2123
> URL: https://issues.apache.org/jira/browse/DAFFODIL-2123
> Project: Daffodil
>  Issue Type: Bug
>  Components: Back End, Diagnostics
>Affects Versions: 2.4.0
>    Reporter: Olabusayo Kilo
>Priority: Major
> Attachments: tcp.dfdl.xsd, test.dump
>
>
> When trying to parse hex data with an xsd than causes an error with trace on, 
> I get the error below. 
> {code:java}
> org.apache.daffodil.exceptions.Abort: Invariant broken: nConsumedBytes.>(0)
> org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
> org.apache.daffodil.io.DataDumper.convertToChar(Dump.scala:489)
> org.apache.daffodil.io.DataDumper.textDump(Dump.scala:150)
> org.apache.daffodil.io.DataDumper.$anonfun$dumpHexAndTextBytes$2(Dump.scala:297)
> at org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
> at org.apache.daffodil.io.DataDumper.convertToChar(Dump.scala:489)
> at org.apache.daffodil.io.DataDumper.textDump(Dump.scala:150)
> at 
> org.apache.daffodil.io.DataDumper.$anonfun$dumpHexAndTextBytes$2(Dump.scala:297)
> at scala.runtime.java8.JFunction1$mcVJ$sp.apply(JFunction1$mcVJ$sp.java:12)
> at scala.collection.immutable.NumericRange.foreach(NumericRange.scala:71)
> at org.apache.daffodil.io.DataDumper.dumpHexAndTextBytes(Dump.scala:264)
> at org.apache.daffodil.io.DataDumper.dump(Dump.scala:129)
> at org.apache.daffodil.processors.DataLoc.dumpStream(DataLoc.scala:144)
> at org.apache.daffodil.processors.DataLoc.dump(DataLoc.scala:104)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$InfoData$.printData(InteractiveDebugger.scala:1313)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$InfoData$.act(InteractiveDebugger.scala:1346)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$.$anonfun$act$20(InteractiveDebugger.scala:1202)
> at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:32)
> at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:29)
> at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:38)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$.act(InteractiveDebugger.scala:1200)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$.act(InteractiveDebugger.scala:682)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger$DebugCommand.apply(InteractiveDebugger.scala:472)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger.runCommand(InteractiveDebugger.scala:433)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger.$anonfun$debugStep$4(InteractiveDebugger.scala:174)
> at scala.collection.immutable.List.foreach(List.scala:389)
> at 
> scala.collection.generic.TraversableForwarder.foreach(TraversableForwarder.scala:35)
> at 
> scala.collection.generic.TraversableForwarder.foreach$(TraversableForwarder.scala:35)
> at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:44)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger.$anonfun$debugStep$1(InteractiveDebugger.scala:173)
> at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
> at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
> at 
> org.apache.daffodil.ExecutionMode$.$anonfun$usingUnrestrictedMode$1(ExecutionMode.scala:66)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger.debugStep(InteractiveDebugger.scala:153)
> at 
> org.apache.daffodil.debugger.InteractiveDebugger.startElement(InteractiveDebugger.scala:209)
> at 
> org.apache.daffodil.events.MultipleEventHandler.$anonfun$startElement$1(ParseEventHandler.scala:117)
> at 
> org.apache.daffodil.events.MultipleEventHandler.$anonfun$startElement$1$adapted(ParseEventHandler.scala:117)
> at scala.collection.immutable.List.foreach(List.scala:389)
> at 
> org.apache.daffodil.events.MultipleEventHandler.startElement(ParseEventHandler.scala:117)
> at 
> org.apache.daffodil.events.MultipleEventHandler.startElement$(ParseEventHandler.scala:115)
> at org.apache.daffodil.processors.DataProcessor.startElement(Runtime.scala:92)
> at 
> org.apache.daffodil.processors.parsers.ElementParserBase.parse(ElementCombinator1.scala:141)
> at org.apache.daffodil.processors.parsers.Parser.parse1(Parser.scala:76)
> at org.apache.daffodil.processors.parsers.Parser.par

[jira] [Updated] (DAFFODIL-2123) Exception on error when parsing hex data with trace on

2019-05-08 Thread Olabusayo Kilo (JIRA)


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

Olabusayo Kilo updated DAFFODIL-2123:
-
Description: 
When trying to parse hex data with an xsd than causes an error with trace on, I 
get the error below. 
{code:java}
org.apache.daffodil.exceptions.Abort: Invariant broken: nConsumedBytes.>(0)
org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
org.apache.daffodil.io.DataDumper.convertToChar(Dump.scala:489)
org.apache.daffodil.io.DataDumper.textDump(Dump.scala:150)
org.apache.daffodil.io.DataDumper.$anonfun$dumpHexAndTextBytes$2(Dump.scala:297)
at org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
at org.apache.daffodil.io.DataDumper.convertToChar(Dump.scala:489)
at org.apache.daffodil.io.DataDumper.textDump(Dump.scala:150)
at 
org.apache.daffodil.io.DataDumper.$anonfun$dumpHexAndTextBytes$2(Dump.scala:297)
at scala.runtime.java8.JFunction1$mcVJ$sp.apply(JFunction1$mcVJ$sp.java:12)
at scala.collection.immutable.NumericRange.foreach(NumericRange.scala:71)
at org.apache.daffodil.io.DataDumper.dumpHexAndTextBytes(Dump.scala:264)
at org.apache.daffodil.io.DataDumper.dump(Dump.scala:129)
at org.apache.daffodil.processors.DataLoc.dumpStream(DataLoc.scala:144)
at org.apache.daffodil.processors.DataLoc.dump(DataLoc.scala:104)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$InfoData$.printData(InteractiveDebugger.scala:1313)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$InfoData$.act(InteractiveDebugger.scala:1346)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$.$anonfun$act$20(InteractiveDebugger.scala:1202)
at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:32)
at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:29)
at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:38)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$.act(InteractiveDebugger.scala:1200)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$.act(InteractiveDebugger.scala:682)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommand.apply(InteractiveDebugger.scala:472)
at 
org.apache.daffodil.debugger.InteractiveDebugger.runCommand(InteractiveDebugger.scala:433)
at 
org.apache.daffodil.debugger.InteractiveDebugger.$anonfun$debugStep$4(InteractiveDebugger.scala:174)
at scala.collection.immutable.List.foreach(List.scala:389)
at 
scala.collection.generic.TraversableForwarder.foreach(TraversableForwarder.scala:35)
at 
scala.collection.generic.TraversableForwarder.foreach$(TraversableForwarder.scala:35)
at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:44)
at 
org.apache.daffodil.debugger.InteractiveDebugger.$anonfun$debugStep$1(InteractiveDebugger.scala:173)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
at 
org.apache.daffodil.ExecutionMode$.$anonfun$usingUnrestrictedMode$1(ExecutionMode.scala:66)
at 
org.apache.daffodil.debugger.InteractiveDebugger.debugStep(InteractiveDebugger.scala:153)
at 
org.apache.daffodil.debugger.InteractiveDebugger.startElement(InteractiveDebugger.scala:209)
at 
org.apache.daffodil.events.MultipleEventHandler.$anonfun$startElement$1(ParseEventHandler.scala:117)
at 
org.apache.daffodil.events.MultipleEventHandler.$anonfun$startElement$1$adapted(ParseEventHandler.scala:117)
at scala.collection.immutable.List.foreach(List.scala:389)
at 
org.apache.daffodil.events.MultipleEventHandler.startElement(ParseEventHandler.scala:117)
at 
org.apache.daffodil.events.MultipleEventHandler.startElement$(ParseEventHandler.scala:115)
at org.apache.daffodil.processors.DataProcessor.startElement(Runtime.scala:92)
at 
org.apache.daffodil.processors.parsers.ElementParserBase.parse(ElementCombinator1.scala:141)
at org.apache.daffodil.processors.parsers.Parser.parse1(Parser.scala:76)
at org.apache.daffodil.processors.parsers.Parser.parse1$(Parser.scala:70)
at 
org.apache.daffodil.processors.parsers.CombinatorParser.parse1(Parser.scala:154)
at org.apache.daffodil.processors.DataProcessor.doParse(Runtime.scala:223)
at 
org.apache.daffodil.processors.DataProcessor.$anonfun$parse$1(Runtime.scala:196)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
at 
org.apache.daffodil.ExecutionMode$.$anonfun$usingRuntimeMode$1(ExecutionMode.scala:65)
at org.apache.daffodil.processors.DataProcessor.parse(Runtime.scala:188)
at org.apache.daffodil.processors.DataProcessor.parse(Runtime.scala:184)
at org.apache.daffodil.Main$.$anonfun$run$1(Main.scala:862)
at org.apache.daffodil.util.Timer$.getTimeResult(Timer.scala:76)
at org.apache.daffodil.util.Timer$.getResult(Timer.scala:35)
at org.apache.daffodil.Main$.run(Main.scala:862)
at org.apache.daffodil.Main$.main(Main.scala:1361)
at org.apache.daffodil.Main.m

[jira] [Updated] (DAFFODIL-2123) Exception on error when parsing hex data with trace on

2019-05-08 Thread Olabusayo Kilo (JIRA)


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

Olabusayo Kilo updated DAFFODIL-2123:
-
Description: 
When trying to parse hex data with an xsd than causes an error with trace on, I 
get the error below. 
{code:java}
org.apache.daffodil.exceptions.Abort: Invariant broken: nConsumedBytes.>(0)
org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
org.apache.daffodil.io.DataDumper.convertToChar(Dump.scala:489)
org.apache.daffodil.io.DataDumper.textDump(Dump.scala:150)
org.apache.daffodil.io.DataDumper.$anonfun$dumpHexAndTextBytes$2(Dump.scala:297)
at org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
at org.apache.daffodil.io.DataDumper.convertToChar(Dump.scala:489)
at org.apache.daffodil.io.DataDumper.textDump(Dump.scala:150)
at 
org.apache.daffodil.io.DataDumper.$anonfun$dumpHexAndTextBytes$2(Dump.scala:297)
at scala.runtime.java8.JFunction1$mcVJ$sp.apply(JFunction1$mcVJ$sp.java:12)
at scala.collection.immutable.NumericRange.foreach(NumericRange.scala:71)
at org.apache.daffodil.io.DataDumper.dumpHexAndTextBytes(Dump.scala:264)
at org.apache.daffodil.io.DataDumper.dump(Dump.scala:129)
at org.apache.daffodil.processors.DataLoc.dumpStream(DataLoc.scala:144)
at org.apache.daffodil.processors.DataLoc.dump(DataLoc.scala:104)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$InfoData$.printData(InteractiveDebugger.scala:1313)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$InfoData$.act(InteractiveDebugger.scala:1346)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$.$anonfun$act$20(InteractiveDebugger.scala:1202)
at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:32)
at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:29)
at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:38)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$.act(InteractiveDebugger.scala:1200)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$.act(InteractiveDebugger.scala:682)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommand.apply(InteractiveDebugger.scala:472)
at 
org.apache.daffodil.debugger.InteractiveDebugger.runCommand(InteractiveDebugger.scala:433)
at 
org.apache.daffodil.debugger.InteractiveDebugger.$anonfun$debugStep$4(InteractiveDebugger.scala:174)
at scala.collection.immutable.List.foreach(List.scala:389)
at 
scala.collection.generic.TraversableForwarder.foreach(TraversableForwarder.scala:35)
at 
scala.collection.generic.TraversableForwarder.foreach$(TraversableForwarder.scala:35)
at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:44)
at 
org.apache.daffodil.debugger.InteractiveDebugger.$anonfun$debugStep$1(InteractiveDebugger.scala:173)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
at 
org.apache.daffodil.ExecutionMode$.$anonfun$usingUnrestrictedMode$1(ExecutionMode.scala:66)
at 
org.apache.daffodil.debugger.InteractiveDebugger.debugStep(InteractiveDebugger.scala:153)
at 
org.apache.daffodil.debugger.InteractiveDebugger.startElement(InteractiveDebugger.scala:209)
at 
org.apache.daffodil.events.MultipleEventHandler.$anonfun$startElement$1(ParseEventHandler.scala:117)
at 
org.apache.daffodil.events.MultipleEventHandler.$anonfun$startElement$1$adapted(ParseEventHandler.scala:117)
at scala.collection.immutable.List.foreach(List.scala:389)
at 
org.apache.daffodil.events.MultipleEventHandler.startElement(ParseEventHandler.scala:117)
at 
org.apache.daffodil.events.MultipleEventHandler.startElement$(ParseEventHandler.scala:115)
at org.apache.daffodil.processors.DataProcessor.startElement(Runtime.scala:92)
at 
org.apache.daffodil.processors.parsers.ElementParserBase.parse(ElementCombinator1.scala:141)
at org.apache.daffodil.processors.parsers.Parser.parse1(Parser.scala:76)
at org.apache.daffodil.processors.parsers.Parser.parse1$(Parser.scala:70)
at 
org.apache.daffodil.processors.parsers.CombinatorParser.parse1(Parser.scala:154)
at org.apache.daffodil.processors.DataProcessor.doParse(Runtime.scala:223)
at 
org.apache.daffodil.processors.DataProcessor.$anonfun$parse$1(Runtime.scala:196)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
at 
org.apache.daffodil.ExecutionMode$.$anonfun$usingRuntimeMode$1(ExecutionMode.scala:65)
at org.apache.daffodil.processors.DataProcessor.parse(Runtime.scala:188)
at org.apache.daffodil.processors.DataProcessor.parse(Runtime.scala:184)
at org.apache.daffodil.Main$.$anonfun$run$1(Main.scala:862)
at org.apache.daffodil.util.Timer$.getTimeResult(Timer.scala:76)
at org.apache.daffodil.util.Timer$.getResult(Timer.scala:35)
at org.apache.daffodil.Main$.run(Main.scala:862)
at org.apache.daffodil.Main$.main(Main.scala:1361)
at org.apache.daffodil.Main.m

[jira] [Updated] (DAFFODIL-2123) Exception on error when parsing hex data with trace on

2019-05-08 Thread Olabusayo Kilo (JIRA)


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

Olabusayo Kilo updated DAFFODIL-2123:
-
Description: 
When trying to parse hex data with an xsd than causes an error with trace on, I 
get the error below. 
{code:java}
org.apache.daffodil.exceptions.Abort: Invariant broken: nConsumedBytes.>(0)
org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
org.apache.daffodil.io.DataDumper.convertToChar(Dump.scala:489)
org.apache.daffodil.io.DataDumper.textDump(Dump.scala:150)
org.apache.daffodil.io.DataDumper.$anonfun$dumpHexAndTextBytes$2(Dump.scala:297)
at org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
at org.apache.daffodil.io.DataDumper.convertToChar(Dump.scala:489)
at org.apache.daffodil.io.DataDumper.textDump(Dump.scala:150)
at 
org.apache.daffodil.io.DataDumper.$anonfun$dumpHexAndTextBytes$2(Dump.scala:297)
at scala.runtime.java8.JFunction1$mcVJ$sp.apply(JFunction1$mcVJ$sp.java:12)
at scala.collection.immutable.NumericRange.foreach(NumericRange.scala:71)
at org.apache.daffodil.io.DataDumper.dumpHexAndTextBytes(Dump.scala:264)
at org.apache.daffodil.io.DataDumper.dump(Dump.scala:129)
at org.apache.daffodil.processors.DataLoc.dumpStream(DataLoc.scala:144)
at org.apache.daffodil.processors.DataLoc.dump(DataLoc.scala:104)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$InfoData$.printData(InteractiveDebugger.scala:1313)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$InfoData$.act(InteractiveDebugger.scala:1346)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$.$anonfun$act$20(InteractiveDebugger.scala:1202)
at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:32)
at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:29)
at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:38)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$.act(InteractiveDebugger.scala:1200)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$.act(InteractiveDebugger.scala:682)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommand.apply(InteractiveDebugger.scala:472)
at 
org.apache.daffodil.debugger.InteractiveDebugger.runCommand(InteractiveDebugger.scala:433)
at 
org.apache.daffodil.debugger.InteractiveDebugger.$anonfun$debugStep$4(InteractiveDebugger.scala:174)
at scala.collection.immutable.List.foreach(List.scala:389)
at 
scala.collection.generic.TraversableForwarder.foreach(TraversableForwarder.scala:35)
at 
scala.collection.generic.TraversableForwarder.foreach$(TraversableForwarder.scala:35)
at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:44)
at 
org.apache.daffodil.debugger.InteractiveDebugger.$anonfun$debugStep$1(InteractiveDebugger.scala:173)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
at 
org.apache.daffodil.ExecutionMode$.$anonfun$usingUnrestrictedMode$1(ExecutionMode.scala:66)
at 
org.apache.daffodil.debugger.InteractiveDebugger.debugStep(InteractiveDebugger.scala:153)
at 
org.apache.daffodil.debugger.InteractiveDebugger.startElement(InteractiveDebugger.scala:209)
at 
org.apache.daffodil.events.MultipleEventHandler.$anonfun$startElement$1(ParseEventHandler.scala:117)
at 
org.apache.daffodil.events.MultipleEventHandler.$anonfun$startElement$1$adapted(ParseEventHandler.scala:117)
at scala.collection.immutable.List.foreach(List.scala:389)
at 
org.apache.daffodil.events.MultipleEventHandler.startElement(ParseEventHandler.scala:117)
at 
org.apache.daffodil.events.MultipleEventHandler.startElement$(ParseEventHandler.scala:115)
at org.apache.daffodil.processors.DataProcessor.startElement(Runtime.scala:92)
at 
org.apache.daffodil.processors.parsers.ElementParserBase.parse(ElementCombinator1.scala:141)
at org.apache.daffodil.processors.parsers.Parser.parse1(Parser.scala:76)
at org.apache.daffodil.processors.parsers.Parser.parse1$(Parser.scala:70)
at 
org.apache.daffodil.processors.parsers.CombinatorParser.parse1(Parser.scala:154)
at org.apache.daffodil.processors.DataProcessor.doParse(Runtime.scala:223)
at 
org.apache.daffodil.processors.DataProcessor.$anonfun$parse$1(Runtime.scala:196)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
at 
org.apache.daffodil.ExecutionMode$.$anonfun$usingRuntimeMode$1(ExecutionMode.scala:65)
at org.apache.daffodil.processors.DataProcessor.parse(Runtime.scala:188)
at org.apache.daffodil.processors.DataProcessor.parse(Runtime.scala:184)
at org.apache.daffodil.Main$.$anonfun$run$1(Main.scala:862)
at org.apache.daffodil.util.Timer$.getTimeResult(Timer.scala:76)
at org.apache.daffodil.util.Timer$.getResult(Timer.scala:35)
at org.apache.daffodil.Main$.run(Main.scala:862)
at org.apache.daffodil.Main$.main(Main.scala:1361)
at org.apache.daffodil.Main.m

[jira] [Created] (DAFFODIL-2123) Exception on error when parsing hex data with trace on

2019-05-08 Thread Olabusayo Kilo (JIRA)
Olabusayo Kilo created DAFFODIL-2123:


 Summary: Exception on error when parsing hex data with trace on
 Key: DAFFODIL-2123
 URL: https://issues.apache.org/jira/browse/DAFFODIL-2123
 Project: Daffodil
  Issue Type: Bug
  Components: Back End, Debugger, Diagnostics
Affects Versions: 2.4.0
Reporter: Olabusayo Kilo
 Attachments: tcp.dfdl.xsd, test.dump

When trying to parse hex data with an xsd than causes an error with trace on, I 
get the error below.

 
{code:java}
org.apache.daffodil.exceptions.Abort: Invariant broken: nConsumedBytes.>(0)
org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
org.apache.daffodil.io.DataDumper.convertToChar(Dump.scala:489)
org.apache.daffodil.io.DataDumper.textDump(Dump.scala:150)
org.apache.daffodil.io.DataDumper.$anonfun$dumpHexAndTextBytes$2(Dump.scala:297)
at org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
at org.apache.daffodil.io.DataDumper.convertToChar(Dump.scala:489)
at org.apache.daffodil.io.DataDumper.textDump(Dump.scala:150)
at 
org.apache.daffodil.io.DataDumper.$anonfun$dumpHexAndTextBytes$2(Dump.scala:297)
at scala.runtime.java8.JFunction1$mcVJ$sp.apply(JFunction1$mcVJ$sp.java:12)
at scala.collection.immutable.NumericRange.foreach(NumericRange.scala:71)
at org.apache.daffodil.io.DataDumper.dumpHexAndTextBytes(Dump.scala:264)
at org.apache.daffodil.io.DataDumper.dump(Dump.scala:129)
at org.apache.daffodil.processors.DataLoc.dumpStream(DataLoc.scala:144)
at org.apache.daffodil.processors.DataLoc.dump(DataLoc.scala:104)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$InfoData$.printData(InteractiveDebugger.scala:1313)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$InfoData$.act(InteractiveDebugger.scala:1346)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$.$anonfun$act$20(InteractiveDebugger.scala:1202)
at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:32)
at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:29)
at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:38)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$Info$.act(InteractiveDebugger.scala:1200)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommandBase$.act(InteractiveDebugger.scala:682)
at 
org.apache.daffodil.debugger.InteractiveDebugger$DebugCommand.apply(InteractiveDebugger.scala:472)
at 
org.apache.daffodil.debugger.InteractiveDebugger.runCommand(InteractiveDebugger.scala:433)
at 
org.apache.daffodil.debugger.InteractiveDebugger.$anonfun$debugStep$4(InteractiveDebugger.scala:174)
at scala.collection.immutable.List.foreach(List.scala:389)
at 
scala.collection.generic.TraversableForwarder.foreach(TraversableForwarder.scala:35)
at 
scala.collection.generic.TraversableForwarder.foreach$(TraversableForwarder.scala:35)
at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:44)
at 
org.apache.daffodil.debugger.InteractiveDebugger.$anonfun$debugStep$1(InteractiveDebugger.scala:173)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
at 
org.apache.daffodil.ExecutionMode$.$anonfun$usingUnrestrictedMode$1(ExecutionMode.scala:66)
at 
org.apache.daffodil.debugger.InteractiveDebugger.debugStep(InteractiveDebugger.scala:153)
at 
org.apache.daffodil.debugger.InteractiveDebugger.startElement(InteractiveDebugger.scala:209)
at 
org.apache.daffodil.events.MultipleEventHandler.$anonfun$startElement$1(ParseEventHandler.scala:117)
at 
org.apache.daffodil.events.MultipleEventHandler.$anonfun$startElement$1$adapted(ParseEventHandler.scala:117)
at scala.collection.immutable.List.foreach(List.scala:389)
at 
org.apache.daffodil.events.MultipleEventHandler.startElement(ParseEventHandler.scala:117)
at 
org.apache.daffodil.events.MultipleEventHandler.startElement$(ParseEventHandler.scala:115)
at org.apache.daffodil.processors.DataProcessor.startElement(Runtime.scala:92)
at 
org.apache.daffodil.processors.parsers.ElementParserBase.parse(ElementCombinator1.scala:141)
at org.apache.daffodil.processors.parsers.Parser.parse1(Parser.scala:76)
at org.apache.daffodil.processors.parsers.Parser.parse1$(Parser.scala:70)
at 
org.apache.daffodil.processors.parsers.CombinatorParser.parse1(Parser.scala:154)
at org.apache.daffodil.processors.DataProcessor.doParse(Runtime.scala:223)
at 
org.apache.daffodil.processors.DataProcessor.$anonfun$parse$1(Runtime.scala:196)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
at 
org.apache.daffodil.ExecutionMode$.$anonfun$usingRuntimeMode$1(ExecutionMode.scala:65)
at org.apache.daffodil.processors.DataProcessor.parse(Runtime.scala:188)
at org.apache.daffodil.processors.DataProcessor.parse(Runtime.scala:184)
at org.apache.daffodil.Main$.$anonfun$ru

[jira] [Updated] (DAFFODIL-2116) Exception when included resource can't be found

2019-05-02 Thread Olabusayo Kilo (JIRA)


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

Olabusayo Kilo updated DAFFODIL-2116:
-
Description: 
When daffodil can't find a file/resource during parsing, it outputs the error 
below. Attached is the sample xsd from the [Git 
repo|[https://github.com/DFDLSchemas/CSV/blob/master/src/main/resources/com/tresys/csv/xsd/csv.dfdl.xsd]]
 where I've introduced an error in the DFDLGeneralFormat include.
{code:java}
{code}
On attempting to parse the sample csv from the 
[repo|[https://github.com/DFDLSchemas/CSV/blob/master/src/test/resources/com/tresys/csv/data/simpleCSV.csv]]
{code:java}
daffodil parse -s csv.dfdl.xsd simpleCSV.csv
{code}
it produces the error below.
{code:java}
java.lang.ClassCastException: class 
jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class 
java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and 
java.net.URLClassLoader are in module java.base of loader 'bootstrap')
at org.apache.daffodil.util.Misc$.classPath$lzycompute(Misc.scala:145)
at org.apache.daffodil.util.Misc$.classPath(Misc.scala:139)
at org.apache.daffodil.dsom.IIBase.classPath(IIBase.scala:277)
at org.apache.daffodil.dsom.IIBase.whereSearched$lzycompute(IIBase.scala:280)
at org.apache.daffodil.dsom.IIBase.whereSearched(IIBase.scala:279)
at 
org.apache.daffodil.dsom.Include.$anonfun$resolvedLocation$1(Include.scala:59)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
at 
org.apache.daffodil.dsom.Include.resolvedLocation$lzycompute(Include.scala:50)
at org.apache.daffodil.dsom.Include.resolvedLocation(Include.scala:49)
at org.apache.daffodil.dsom.Include.$anonfun$mapPair$1(Include.scala:40)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
at org.apache.daffodil.dsom.Include.mapPair(Include.scala:38)
at 
org.apache.daffodil.dsom.IIBase.$anonfun$notSeenThisBefore$1(IIBase.scala:140)
at scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:12)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
at org.apache.daffodil.dsom.IIBase.notSeenThisBefore(IIBase.scala:139)
at 
org.apache.daffodil.dsom.IIBase.$anonfun$iiSchemaFileMaybe$1(IIBase.scala:257)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
at org.apache.daffodil.dsom.IIBase.iiSchemaFileMaybe(IIBase.scala:256)
at org.apache.daffodil.dsom.IIBase.$anonfun$seenAfter$1(IIBase.scala:165)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
at org.apache.daffodil.dsom.IIBase.seenAfter(IIBase.scala:164)
at 
org.apache.daffodil.dsom.SchemaDocIncludesAndImportsMixin.$anonfun$getImportsOrIncludes$1(SchemaDocIncludesAndImportsMixin.scala:147)
at 
scala.collection.TraversableOnce.$anonfun$foldLeft$1(TraversableOnce.scala:157)
at 
scala.collection.TraversableOnce.$anonfun$foldLeft$1$adapted(TraversableOnce.scala:157)
at scala.collection.Iterator.foreach(Iterator.scala:944)
at scala.collection.Iterator.foreach$(Iterator.scala:944)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1432)
at scala.collection.IterableLike.foreach(IterableLike.scala:71)
at scala.collection.IterableLike.foreach$(IterableLike.scala:70)
at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
at scala.collection.TraversableOnce.foldLeft(TraversableOnce.scala:157)
at scala.collection.TraversableOnce.foldLeft$(TraversableOnce.scala:155)
at scala.collection.AbstractTraversable.foldLeft(Traversable.scala:104)
at 
org.apache.daffodil.dsom.SchemaDocIncludesAndImportsMixin.getImportsOrIncludes(SchemaDocIncludesAndImportsMixin.scala:143)
at 
org.apache.daffodil.dsom.SchemaDocIncludesAndImportsMixin.getImportsOrIncludes$(SchemaDocIncludesAndImportsMixin.scala:139)
at 
org.apache.daffodil.dsom.XMLSchemaDocument.getImportsOrIncludes(SchemaDocument.scala:64)
at 
org.apache.daffodil.dsom.SchemaDocIncludesAndImportsMixin.$anonfun$sali_$1(SchemaDocIncludesAndImportsMixin.scala:165)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
at org.apache.daffodil.oolag.OOLAG

[jira] [Created] (DAFFODIL-2116) Exception when included resource can't be found

2019-05-02 Thread Olabusayo Kilo (JIRA)
Olabusayo Kilo created DAFFODIL-2116:


 Summary: Exception when included resource can't be found
 Key: DAFFODIL-2116
 URL: https://issues.apache.org/jira/browse/DAFFODIL-2116
 Project: Daffodil
  Issue Type: Bug
Reporter: Olabusayo Kilo
 Attachments: csv.dfdl.xsd, simpleCSV.csv

When daffodil can't find a file/resource during parsing, it outputs the error 
below. Attached is the sample xsd from the [Git 
repo|[https://github.com/DFDLSchemas/CSV/blob/master/src/main/resources/com/tresys/csv/xsd/csv.dfdl.xsd]]
 where I've introduced an error in the DFDLGeneralFormat include.

 
{code:java}
{code}
 

On attempting to parse the sample csv from the 
[repo|[https://github.com/DFDLSchemas/CSV/blob/master/src/test/resources/com/tresys/csv/data/simpleCSV.csv]]
{code:java}
daffodil parse -s csv.dfdl.xsd simpleCSV.csv
{code}
it produces the error below.
{code:java}
java.lang.ClassCastException: class 
jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class 
java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and 
java.net.URLClassLoader are in module java.base of loader 'bootstrap')
at org.apache.daffodil.util.Misc$.classPath$lzycompute(Misc.scala:145)
at org.apache.daffodil.util.Misc$.classPath(Misc.scala:139)
at org.apache.daffodil.dsom.IIBase.classPath(IIBase.scala:277)
at org.apache.daffodil.dsom.IIBase.whereSearched$lzycompute(IIBase.scala:280)
at org.apache.daffodil.dsom.IIBase.whereSearched(IIBase.scala:279)
at 
org.apache.daffodil.dsom.Include.$anonfun$resolvedLocation$1(Include.scala:59)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
at 
org.apache.daffodil.dsom.Include.resolvedLocation$lzycompute(Include.scala:50)
at org.apache.daffodil.dsom.Include.resolvedLocation(Include.scala:49)
at org.apache.daffodil.dsom.Include.$anonfun$mapPair$1(Include.scala:40)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
at org.apache.daffodil.dsom.Include.mapPair(Include.scala:38)
at 
org.apache.daffodil.dsom.IIBase.$anonfun$notSeenThisBefore$1(IIBase.scala:140)
at scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:12)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
at org.apache.daffodil.dsom.IIBase.notSeenThisBefore(IIBase.scala:139)
at 
org.apache.daffodil.dsom.IIBase.$anonfun$iiSchemaFileMaybe$1(IIBase.scala:257)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
at org.apache.daffodil.dsom.IIBase.iiSchemaFileMaybe(IIBase.scala:256)
at org.apache.daffodil.dsom.IIBase.$anonfun$seenAfter$1(IIBase.scala:165)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.liftedTree1$1(OOLAG.scala:585)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:583)
at org.apache.daffodil.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:581)
at org.apache.daffodil.dsom.IIBase.seenAfter(IIBase.scala:164)
at 
org.apache.daffodil.dsom.SchemaDocIncludesAndImportsMixin.$anonfun$getImportsOrIncludes$1(SchemaDocIncludesAndImportsMixin.scala:147)
at 
scala.collection.TraversableOnce.$anonfun$foldLeft$1(TraversableOnce.scala:157)
at 
scala.collection.TraversableOnce.$anonfun$foldLeft$1$adapted(TraversableOnce.scala:157)
at scala.collection.Iterator.foreach(Iterator.scala:944)
at scala.collection.Iterator.foreach$(Iterator.scala:944)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1432)
at scala.collection.IterableLike.foreach(IterableLike.scala:71)
at scala.collection.IterableLike.foreach$(IterableLike.scala:70)
at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
at scala.collection.TraversableOnce.foldLeft(TraversableOnce.scala:157)
at scala.collection.TraversableOnce.foldLeft$(TraversableOnce.scala:155)
at scala.collection.AbstractTraversable.foldLeft(Traversable.scala:104)
at 
org.apache.daffodil.dsom.SchemaDocIncludesAndImportsMixin.getImportsOrIncludes(SchemaDocIncludesAndImportsMixin.scala:143)
at 
org.apache.daffodil.dsom.SchemaDocIncludesAndImportsMixin.getImportsOrIncludes$(SchemaDocIncludesAndImportsMixin.scala:139)
at 
org.apache.daffodil.dsom.XMLSchemaDocument.getImportsOrIncludes(SchemaDocument.scala:64)
at 
org.apache.daffodil.dsom.SchemaDocIncludesAndImportsMixin.$anonfun$sali_$1(SchemaDocIncludesAndImportsMixin.scala:165