https://issues.apache.org/bugzilla/show_bug.cgi?id=51088

--- Comment #3 from Konstantin Kolinko <knst.koli...@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-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to