[ 
https://issues.apache.org/jira/browse/DIRSERVER-934?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12520941
 ] 

Emmanuel Lecharny commented on DIRSERVER-934:
---------------------------------------------

While looking at the code, I realized that there is a potential breakage in the 
way controls are handled : to transfer controls to the context, we are using a 
static EMPTY_CONTROLS array, which is not protected against concurrent access. 
During the Map -> Array transformation, there is a chance that the controls are 
totally losts if two requests are handled in parallel.

As a result, I have created an abstract class called LdapHandler, inherited by 
all the handler, containing a setControls( LdapContext, Message ) method, in 
charge to load the controls into the context, if any. We will create a real 
array from the Map without using a static member.

This method will be called in all handler, including Bind, except for 
AbandonRequest (I'm not sure we need to handle controls in AbandonRequest, but 
I may be wrong).

Thoughts ?

> Controls are not used into Bind request
> ---------------------------------------
>
>                 Key: DIRSERVER-934
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-934
>             Project: Directory ApacheDS
>          Issue Type: Bug
>    Affects Versions: 1.0.1, 1.5.0
>            Reporter: Emmanuel Lecharny
>            Assignee: Emmanuel Lecharny
>             Fix For: 1.5.1
>
>
> We don't inject controls into the server if we have one withing a BindRequest

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