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

Henri Biestro commented on JEXL-193:
------------------------------------

Use a Future and a call get with a timeout to implement this behavior and 
everything is taken care of; you receive a TimeoutException if it took too 
long. Look at tests in ScriptCallableTest for some examples.

> InterruptedException is swallowed in function call in silent and non-strict 
> mode
> --------------------------------------------------------------------------------
>
>                 Key: JEXL-193
>                 URL: https://issues.apache.org/jira/browse/JEXL-193
>             Project: Commons JEXL
>          Issue Type: Bug
>    Affects Versions: 3.0
>            Reporter: Dmitri Blinov
>            Assignee: Henri Biestro
>             Fix For: 3.0.1
>
>
> The following test case fails with 
> {code}
> java.lang.AssertionError: Values should be different. Actual: 42
>       at org.junit.Assert.fail(Assert.java:88)
>       at org.junit.Assert.failEquals(Assert.java:185)
>       at org.junit.Assert.assertNotEquals(Assert.java:161)
> {code}
> {code}
>     public static class TestContext extends MapContext implements 
> JexlContext.NamespaceResolver {
>         public int interrupt() throws InterruptedException {
>             throw new InterruptedException();
>         }
>     }
>     @Test
>     public void testInterrupt() throws Exception {
>         JexlEngine jexl = new JexlBuilder().arithmetic(new 
> JexlArithmetic(false)).strict(false).silent(true).create();
>         JexlScript e = jexl.createScript("interrupt(); return 42");
>         Callable<Object> c = e.callable(new TestContext());
>         Object t = c.call();
>         Assert.assertNotEquals(42, t);
>     }
> {code}
> Expected behaviour is to cancel script execution



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to