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