[stringtemplate-interest] [ST4-Beta3] Endless loop and OutOfMemoryError when processing invalid template
Udo Borkowski
ub at abego-software.de
Sun Jan 30 06:49:55 PST 2011
Hi,
given this (invalid) template definition (using '$', '$' delimiter):
main() ::= <<
$t()>
>>
results in these errors:
sketchpad.stg 2:17: invalid character '>'
sketchpad.stg 2:17: invalid character '<EOF>'
sketchpad.stg 2:17: invalid character '<EOF>'
sketchpad.stg 2:17: invalid character '<EOF>'
sketchpad.stg 2:17: invalid character '<EOF>'
sketchpad.stg 2:17: invalid character '<EOF>'
.
.
.
endlessly repeat the EOF error and finally ends with an
java.lang.OutOfMemoryError: Java heap space
To work around this issue I added a check for EOF at the end of STLexer#inside():
errMgr.lexerError(input.getSourceName(), "invalid character '"+str(c)+"'", templateToken, re);
if (c==EOF) {
return newToken(EOF_TYPE);
}
consume();
Udo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/stringtemplate-interest/attachments/20110130/57764d81/attachment.html
More information about the stringtemplate-interest
mailing list