-
Notifications
You must be signed in to change notification settings - Fork 487
Closed
Description
DefaultDirContextValidator class doesn't close NamingEnumeration searchResults.
As a consequence, the LDAP connection associated with the DirContext can't be closed when requested by the pool.
It's conform to the documentation : https://docs.oracle.com/javase/tutorial/jndi/ldap/close.html
"If the Context instance is sharing a connection with other Context and unterminated NamingEnumeration instances, the connection will not be closed until close() has been invoked on all such Context and NamingEnumeration instances"
DefaultDirContextValidator should close the NamingEnumeration searchResults in a finally block :
NamingEnumeration<SearchResult> = null;
...
try {
searchResults = dirContext.search(this.base, this.filter, this.searchControls);
...
} finally {
if (searchResults != null) {
try {
searchResults.close();
} catch (Exception e) {
}
}
}