Filter mutated by optimizer passed to other partitions
------------------------------------------------------

                 Key: DIRSERVER-1121
                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1121
             Project: Directory ApacheDS
          Issue Type: Bug
          Components: core
    Affects Versions: 1.5.1
            Reporter: Shon Vella
            Priority: Minor


org.apache.directory.server.core.authz.GroupCache.initialize() creates a filter 
and subsequently performs a search using the same filter object on different 
suffixes. When passed to a JDBMPartition, 
org.apache.directory.server.core.partition.impl.btree.DefaultOptimizer.annotate()
 adds annotations to nodes in the filter. The same filter is then passed with 
all the annotations to subsequent searches on other parititions. When passing 
to an alternate custom partition implementation, these annotations get in the 
way because the printToBuffer() functionality of each filter node includes 
annotation information in the serialized form of the filter making it unusable.

Providing a way to recursively remove annotations would provide a workable 
bandaid for this specific problem, though it is probably a bad idea to reuse a 
filter that has been previously annotated, so either the partition should make 
a copy before annotating or GroupCache (and any other code that uses the same 
filter reuse paradigm) shouldn't be reusing the filter.

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