jadams-tresys commented on a change in pull request #433:
URL: https://github.com/apache/incubator-daffodil/pull/433#discussion_r504628161
##########
File path:
daffodil-runtime1/src/main/scala/org/apache/daffodil/processors/parsers/SpecifiedLengthParsers.scala
##########
@@ -90,7 +90,9 @@ sealed abstract class SpecifiedLengthParserBase(
Assert.invariant(dis eq pState.dataInputStream)
val bitsToSkip = finalEndPos0b - dis.bitPos0b
Assert.invariant(bitsToSkip >= 0) // if this is < 0, then the parsing of
children went past the limit, which it isn't supposed to.
- if (bitsToSkip > 0) {
+ if (bitsToSkip > Int.MaxValue) {
+ PE(pState, "Data too large, consider using blobs instead:
https://cwiki.apache.org/confluence/display/DAFFODIL/Proposal%3A+Binary+Large+Objects")
+ } else if (bitsToSkip > 0) {
Review comment:
Hm, would a better fix be to modify the various get functions to use
Longs, but then throw a ParseError inside the get functions if the value ends
up being larger than Int.MaxValue?
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]