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

Felix Meschberger updated FELIX-338:
------------------------------------

    Attachment: FilterImpl_rewrite.patch

Here is a patch with what I had in mind. It expectes the following changes in 
the ldap package:

   Parser.getProgram returns Operator[] to not use a cast on each access. I 
assume the parser creates
   a "pure" list anyway, so the getProgram might as well create the proper array

   The Unknown class must be public for the FilterImpl.evaluate (copied from 
Evaluator) to see it

Finally, the evaluate and toStringInfix method are copied from the Evaluator to 
FilterImpl.

I just saw after finishing the patch, that in fact the FilterImpl class is the 
only LDAP related class not in the ldap package - so the separation of 
FilterImpl and Evaluator might make sense.... Don't know for sure.

> Framework FilterImpl is not thread safe on execution
> ----------------------------------------------------
>
>                 Key: FELIX-338
>                 URL: https://issues.apache.org/jira/browse/FELIX-338
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: 0.8.0, 1.0.0
>            Reporter: Felix Meschberger
>         Attachments: filter.patch, FilterImpl_rewrite.patch
>
>
> Executing a Filter implemented by the Felix Framework FilterImpl class is not 
> thread safe, as the Filter.Implmatch() methods are not synchronized but use a 
> Mapper and Evaluator instance fields which are modified while matching the 
> filter.
> Two options seem to exist:
>    1. Make the match() methods synchronized
>    2. Create Mapper and Evaluator instances on each match() call
> My assumption is that the second method tends to be better because of the 
> synchronization needed with the first approach.
> Reported by Tom Remoleur, thanks. The full mail thread leading to this issue 
> may be found at [1].
> [1] http://www.mail-archive.com/[EMAIL PROTECTED]/msg00145.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to