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: 2.0-M1, 1.6.0
         Environment: N/A
            Reporter: Christopher Hunt


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