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

2022-03-18 Thread Steve Lawrence
Yeah, it looks like FileDocumentPart had this same behavior of returning 
-1 for files in jars as far back as I can find. So likely at somepoint 
we just started requiring a length. That's a bit harder to find where we 
did that, but ideally we can get rid of this -1 thing and get lengths of 
files in jars so code paths are exactly the same, regardless of jar vs file.


I created DAFFODIL-2679 for this issue.

On 3/18/22 3:00 PM, Mike Beckerle wrote:

This means when using IntelliJ IDEA, running tests, the TDML  runner is NOT
doing the jar export and then looking inside them.

Ok. I guess I believe that.

A TDML runner change must have happened between 3.0.0 and 3.1.0 creating
this vulnerability, because it doesn't happen in 3.0.0.

There are a few changes to the TDML runner in 3.1.0 so this is plausible.


On Fri, Mar 18, 2022 at 2:53 PM Steve Lawrence  wrote:


Hmm, I think this is just a bug in the Daffodil TDML runner related to
documentPart's with type="file":


https://github.com/apache/daffodil/blob/main/daffodil-tdml-lib/src/main/scala/org/apache/daffodil/tdml/TDMLRunner.scala#L2249-L2262

When exportJars is true, findTDMLResource for the file document part is
going be found inside a jar with the "jar" protocol. In that case, we
just say the length is -1L. So that's where our -1 is coming from, and
clearly we don't like that. Ideally we could fix this to get the length
of the resource from the jar.

So I think exportJars := true and documentPart type="file" are
incompatible with the current TDML Runner. I'll open a ticket.

- Steve

On 3/18/22 2:30 PM, Olabusayo Kilo wrote:

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<

jad...@owlcyberdefense.com>

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





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

2022-03-18 Thread Mike Beckerle
This means when using IntelliJ IDEA, running tests, the TDML  runner is NOT
doing the jar export and then looking inside them.

Ok. I guess I believe that.

A TDML runner change must have happened between 3.0.0 and 3.1.0 creating
this vulnerability, because it doesn't happen in 3.0.0.

There are a few changes to the TDML runner in 3.1.0 so this is plausible.


On Fri, Mar 18, 2022 at 2:53 PM Steve Lawrence  wrote:

> Hmm, I think this is just a bug in the Daffodil TDML runner related to
> documentPart's with type="file":
>
>
> https://github.com/apache/daffodil/blob/main/daffodil-tdml-lib/src/main/scala/org/apache/daffodil/tdml/TDMLRunner.scala#L2249-L2262
>
> When exportJars is true, findTDMLResource for the file document part is
> going be found inside a jar with the "jar" protocol. In that case, we
> just say the length is -1L. So that's where our -1 is coming from, and
> clearly we don't like that. Ideally we could fix this to get the length
> of the resource from the jar.
>
> So I think exportJars := true and documentPart type="file" are
> incompatible with the current TDML Runner. I'll open a ticket.
>
> - Steve
>
> On 3/18/22 2:30 PM, Olabusayo Kilo wrote:
> > 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<
> jad...@owlcyberdefense.com>
> >> 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
> 
> >>>
> 

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

2022-03-18 Thread Mike Beckerle
Using EDIFACT, modifying the build.sbt to have exportJars := true.

Java 17, sbt 1.6.2,

Using daffodil 2.6.0
sbt clean test - all works

Using daffodil 3.0.0
sbt clean test - all works

Using daffodil 3.1.0 (or seemingly anything newer)
sbt clean test - fails Abort: Usage error: lengthLimitInBits.>=(0)

So 3.1.0 introduced the sensitivity to this exportJars thing.



On Fri, Mar 18, 2022 at 2:30 PM Olabusayo Kilo 
wrote:

> 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
> >>>
> >>
> 

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

2022-03-18 Thread Steve Lawrence
Hmm, I think this is just a bug in the Daffodil TDML runner related to 
documentPart's with type="file":


https://github.com/apache/daffodil/blob/main/daffodil-tdml-lib/src/main/scala/org/apache/daffodil/tdml/TDMLRunner.scala#L2249-L2262

When exportJars is true, findTDMLResource for the file document part is 
going be found inside a jar with the "jar" protocol. In that case, we 
just say the length is -1L. So that's where our -1 is coming from, and 
clearly we don't like that. Ideally we could fix this to get the length 
of the resource from the jar.


So I think exportJars := true and documentPart type="file" are 
incompatible with the current TDML Runner. I'll open a ticket.


- Steve

On 3/18/22 2:30 PM, Olabusayo Kilo wrote:
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

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)



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

2022-03-18 Thread Mike Beckerle
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)
> >
>
>


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

2022-03-18 Thread Adams, Joshua
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)
>



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

2022-03-18 Thread Steve Lawrence
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)