commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Henri Biestro (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (JEXL-216) Improve parsing concurrency in multithreaded environment
Date Fri, 10 Mar 2017 14:42:04 GMT

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

Mime
View raw message