From 50328bbce015296c7bca4c32ddb0381ba3f3990b Mon Sep 17 00:00:00 2001 From: antoine777 Date: Sun, 29 Mar 2020 19:21:09 +0200 Subject: [PATCH] fix NamingEnumeration not closed --- .../pool/validation/DefaultDirContextValidator.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/springframework/ldap/pool/validation/DefaultDirContextValidator.java b/core/src/main/java/org/springframework/ldap/pool/validation/DefaultDirContextValidator.java index 22f31f99f0..e80279eda7 100644 --- a/core/src/main/java/org/springframework/ldap/pool/validation/DefaultDirContextValidator.java +++ b/core/src/main/java/org/springframework/ldap/pool/validation/DefaultDirContextValidator.java @@ -22,6 +22,7 @@ import org.springframework.util.Assert; import javax.naming.NamingEnumeration; +import javax.naming.NamingException; import javax.naming.directory.DirContext; import javax.naming.directory.SearchControls; import javax.naming.directory.SearchResult; @@ -166,8 +167,9 @@ public boolean validateDirContext(DirContextType contextType, DirContext dirCont Assert.notNull(contextType, "contextType may not be null"); Assert.notNull(dirContext, "dirContext may not be null"); + NamingEnumeration searchResults = null; try { - final NamingEnumeration searchResults = dirContext.search(this.base, this.filter, this.searchControls); + searchResults = dirContext.search(this.base, this.filter, this.searchControls); if (searchResults.hasMore()) { this.logger.debug("DirContext '{}' passed validation.", dirContext); @@ -179,6 +181,15 @@ public boolean validateDirContext(DirContextType contextType, DirContext dirCont this.logger.debug("DirContext '{}' failed validation with an exception.", dirContext, e); return false; } + finally { + if (searchResults != null) { + try { + searchResults.close(); + } + catch (NamingException e) { + } + } + } this.logger.debug("DirContext '{}' failed validation.", dirContext); return false;