[ 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)