commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Henri Biestro (JIRA)" <>
Subject [jira] [Updated] (JEXL-255) Ability to continue interrupted scripts
Date Sun, 04 Mar 2018 21:03:00 GMT


Henri Biestro updated JEXL-255:
    Fix Version/s: 3.2

> Ability to continue interrupted scripts
> ---------------------------------------
>                 Key: JEXL-255
>                 URL:
>             Project: Commons JEXL
>          Issue Type: Improvement
>    Affects Versions: 3.1
>            Reporter: Dmitri Blinov
>            Assignee: Henri Biestro
>            Priority: Major
>             Fix For: 3.2
> I'm trying to implement the {{@timeout}} annotation that should work like the following
> {code:java}
> @timeout(15000) { return longrunningcall(); }
>  {code}
> The idea is to protect part of the script code from being executed indefinitely or more
than allowed by business rules. The script should continue its evaluation after the {{@timeout}}
annotation regardless of whether the timeout has taken place or not.
> There is a straightforward implementation that starts guarding thread which should invoke
{{Thread.interrupt()}} for the thread executing the script. The {{InterruptedException | JexlException.Cancel}}
is then caught and swallowed inside the {{processAnnotation()}} method, and if the guard thread
has fired, which means the timeout occured, the {{null}} value is returned.
> I expected the script to continue its evaluation after the exception is processed inside
{{processAnnotation()}} code, but the script nevertheless throwed {{JexlException.Cancel}}
as a result. The suggestion is to allow script to continue its evaluation once {{InterruptedException}}
or {{JexlException.Cancel}} is processed. 

This message was sent by Atlassian JIRA

View raw message