[ 
https://issues.apache.org/activemq/browse/CAMEL-1583?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=51494#action_51494
 ] 

Christopher Hunt commented on CAMEL-1583:
-----------------------------------------

I forgot to mention that I ran the ldap unit tests and all was well. In 
addition I used the modified class within my application and confiirmed (using 
the debugger) that a new context instance was being used each time.

> ldap component is not thread safe
> ---------------------------------
>
>                 Key: CAMEL-1583
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1583
>             Project: Apache Camel
>          Issue Type: Bug
>          Components: camel-ldap
>    Affects Versions: 1.6.0, 2.0-M1
>         Environment: N/A
>            Reporter: Christopher Hunt
>         Attachments: LdapProducer.java.diff
>
>
> JNDI context objects are not thread-safe. The LDAP component shares a 
> directory context across all threads that use the component. This is not safe.
> In addition the LDAP component will attempt to establish a connection on 
> instantiation of the component, and not when the component is required to 
> process requests. If the LDAP server is not ready e.g. temporarily 
> unavailable then the entire Camel application will stop.
> JNDI directory contexts should be established when a consuming thread needs 
> it and should be released when the thread is finished with the component i.e.:
> {code}
> ctx = new InitialDirContext(env);
> try {
>   ...
> } finally {
>   ctx.close();
> }
> {code}
> The above will release the connection with the LDAP server as soon as 
> possible. The existing component relies on JNDI to release the socket in its 
> own time (several seconds later).

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