[ 
https://issues.apache.org/jira/browse/JEXL-97?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12833085#action_12833085
 ] 

Henri Biestro commented on JEXL-97:
-----------------------------------

There is no "plan" in getting a new 1.1 out AFAIK ; 2.0 is supposed to replace 
it (hopefully with some added benefits).
You always have the choice of a local 1.1 fix / release if you are in an 
emergency situation.

May I suggest you have a closer look at 2.0 and assess how much you miss from 
1.1 ? The jexl-compat lib might give you a quick evaluation path.

If you can elaborate what you mean by "too much tied into it" in a post to the 
mailing list, you'll most likely get advice/help on migrating/reimplementing 
features .

> JEXL parses long expressions with lots of parenthesis slowly
> ------------------------------------------------------------
>
>                 Key: JEXL-97
>                 URL: https://issues.apache.org/jira/browse/JEXL-97
>             Project: Commons JEXL
>          Issue Type: Bug
>    Affects Versions: 1.1
>         Environment: Java
>            Reporter: Jeff Ichnowski
>            Priority: Minor
>             Fix For: 2.0
>
>         Attachments: proposed.patch
>
>
> JEXL's parser uses an unbounded JavaCC LOOKAHEAD to distinguish assignment 
> expressions from other expressions.  The result is certain expressions take 
> exponential time to parse.  The example snippet below demonstrates the 
> problem.  On my machine parsing the expression below takes ~120 seconds.  
> Changing the parser to remove the LOOKAHEAD can get this to parse in 
> milliseconds.  The lookahead appears to be in all versions of the parser 
> source.
> import org.apache.commons.jexl.Expression;
> import org.apache.commons.jexl.ExpressionFactory;
> public class SlowParse {
>     public static void main(String[] args) throws Exception {
>         String input = 
>             
> "(((((((((((((((((((((((((z+y)/x)*w)-v)*u)/t)-s)*r)/q)+p)-o)*n)-m)+l)*k)+j)/i)+h)*g)+f)/e)+d)-c)/b)+a)";
>         // Make sure everything is loaded...
>         Expression expr = ExpressionFactory.createExpression(input);
>         long start = System.nanoTime();
>         expr = ExpressionFactory.createExpression(input);
>         long end = System.nanoTime();
>         System.out.printf("Parse took %.1f seconds\n", (end-start)/1e+9);
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to