tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 51088] ArrayIndexOutOfBoundsException from org.apache.el.parser.JJTELParserState
Date Fri, 13 May 2011 22:46:16 GMT
https://issues.apache.org/bugzilla/show_bug.cgi?id=51088

--- Comment #3 from Konstantin Kolinko <knst.kolinko@gmail.com> 2011-05-13 22:46:16
UTC ---
> Unfortunately it is not reproducible at all.

a) Some rarely executed if-branch in [/facelets/myview.xhtml]?

Rare things are not that rare. I do not see any other reports of such an issue
with JJTELParserState.

b) Concurrency? As Mark noted in Comment 1 this is unlikely.

ExpressionBuilder.java:115 is creating a new ELParser for a String and parsing
it. That parsing should be thread safe.

>                n = (new ELParser(new StringReader(expr)))
>                        .CompositeExpression();

c) Unexpected JVM Error? E.g. OutOfMemoryError.

The ELParser.java:74 is inside a finally{} block, so if this happened during
exception processing the original error might be lost. I think the following
cascade of errors is possible, where original error is masked by two others:

1. Exception at ELParser.java:74 (jjtree.closeNodeScope(jjtn000, true);) is
possible only if jjtc000 is true.
2. I think that before it at ELParser.java:60 (jjtree.clearNodeScope(jjtn000);)
call failed with a RuntimeException e.g. for the same wrong index reasons as 1.
and failed to set jjtc000 to false.
3. The 2. is inside a catch(Throwable) block and it might be triggered by an
OutOfMemoryError,  (or by another RuntimeException at the lower layer, because
the same catch(Throwable)+finally handling is everywhere in that generated
code).

I think c) is feasible.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message