[ 
https://issues.apache.org/jira/browse/JEXL-216?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henri Biestro resolved JEXL-216.
--------------------------------
       Resolution: Fixed
    Fix Version/s: 3.1

Added reader/writer lock to cache held by soft reference;
Added logic to create temporary parser when main one is already busy (since 
parser is not reentrant)

src/main/java/org/apache/commons/jexl3/internal/Engine.java
src/main/java/org/apache/commons/jexl3/internal/InterpreterBase.java
src/main/java/org/apache/commons/jexl3/internal/SoftCache.java
src/main/java/org/apache/commons/jexl3/internal/TemplateEngine.java

Revision: 1786352

> Improve parsing concurrency in multithreaded environment
> --------------------------------------------------------
>
>                 Key: JEXL-216
>                 URL: https://issues.apache.org/jira/browse/JEXL-216
>             Project: Commons JEXL
>          Issue Type: Improvement
>    Affects Versions: 3.0
>            Reporter: Dmitri Blinov
>            Assignee: Henri Biestro
>            Priority: Minor
>             Fix For: 3.1
>
>
> At the moment the {{Engine.parse()}} method synchronizes on {{parser}} member 
> even if the caching is enabled and the actual parsing is not required, in 
> case of cache hit. This effectively serializes processing of scripts and 
> expressions in multithreaded scenario. The suggestion is to separate 
> synchronization on cache from synchronization on parser, with the latter only 
> being performed if actual parsing is required.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to