Claus Ibsen created CAMEL-26198:
-----------------------------------

             Summary: camel-ldap - a DirContext bean is closed after the first 
exchange so the second fails, and a missing dirContextName bean gives an NPE
                 Key: CAMEL-26198
                 URL: https://issues.apache.org/jira/browse/CAMEL-26198
             Project: Camel
          Issue Type: Bug
          Components: camel-ldap
            Reporter: Claus Ibsen
             Fix For: 4.24.0


Found while adding the catalog body types of ldap (CAMEL-24961, PR #28416).

h4. 1. A DirContext bean is closed after the first exchange

{{LdapProducer.process}} (main 2a465aa4814c, line 89 to 92) always closes the 
DirContext in a finally block. When the bean in the registry is a DirContext 
(not a Hashtable or Map), the javadoc of {{dirContextName}} ({{LdapEndpoint}} 
line 77 to 82) says "the bean is used as given", but the second exchange fails 
with NoInitialContextException because the bean was closed. Checked on 
4.24.0-SNAPSHOT with a local OpenLDAP container (osixia/openldap 1.5.0).

Proposed: close only the contexts the producer created from a Hashtable or Map; 
leave a DirContext bean open (or document that it must be prototype scoped).

h4. 2. No bean for dirContextName gives an NPE

When no bean is found, {{LdapProducer.getDirContext}} (line 106 to 120) returns 
null, and the search fails with the NullPointerException "ldapContext is null" 
instead of a clear error. Checked on 4.24.0-SNAPSHOT with a route with a 
dirContextName that is not in the registry.

Proposed: throw NoSuchBeanException naming the bean when the lookup returns 
null.

h4. 3. The embedded ApacheDS setup of the module ITs does not start

The embedded ApacheDS of {{LdapRouteManualIT}} (and {{LdapRouteTwoManualIT}}) 
fails in beforeAll with "ERR_277 Attribute publicKey not declared", so the 
module ITs cannot run. Checked on 4.24.0-SNAPSHOT with the module ITs on 
4.24.0-SNAPSHOT.

Proposed: fix the schema of the embedded server (or move the ITs to the 
openldap test-infra service).

_Claude Code on behalf of davsclaus_



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to