Skip to content

Commit 3a1b085

Browse files
perry2of5jzheaux
authored andcommitted
Close searchResults so LDAP context can close.
Fixes #489
1 parent feab7a8 commit 3a1b085

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

Diff for: core/src/main/java/org/springframework/ldap/pool/validation/DefaultDirContextValidator.java

+12-2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.springframework.util.Assert;
2323

2424
import javax.naming.NamingEnumeration;
25+
import javax.naming.NamingException;
2526
import javax.naming.directory.DirContext;
2627
import javax.naming.directory.SearchControls;
2728
import javax.naming.directory.SearchResult;
@@ -165,9 +166,10 @@ public void setSearchControls(SearchControls searchControls) {
165166
public boolean validateDirContext(DirContextType contextType, DirContext dirContext) {
166167
Assert.notNull(contextType, "contextType may not be null");
167168
Assert.notNull(dirContext, "dirContext may not be null");
168-
169+
170+
NamingEnumeration<SearchResult> searchResults = null;
169171
try {
170-
final NamingEnumeration<SearchResult> searchResults = dirContext.search(this.base, this.filter, this.searchControls);
172+
searchResults = dirContext.search(this.base, this.filter, this.searchControls);
171173

172174
if (searchResults.hasMore()) {
173175
this.logger.debug("DirContext '{}' passed validation.", dirContext);
@@ -179,6 +181,14 @@ public boolean validateDirContext(DirContextType contextType, DirContext dirCont
179181
this.logger.debug("DirContext '{}' failed validation with an exception.", dirContext, e);
180182
return false;
181183
}
184+
finally {
185+
if (searchResults != null) {
186+
try {
187+
searchResults.close();
188+
} catch (NamingException namingException) {
189+
}
190+
}
191+
}
182192

183193
this.logger.debug("DirContext '{}' failed validation.", dirContext);
184194
return false;

Diff for: core/src/main/java/org/springframework/ldap/pool2/validation/DefaultDirContextValidator.java

+12-2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.springframework.util.Assert;
2323

2424
import javax.naming.NamingEnumeration;
25+
import javax.naming.NamingException;
2526
import javax.naming.directory.DirContext;
2627
import javax.naming.directory.SearchControls;
2728
import javax.naming.directory.SearchResult;
@@ -166,19 +167,28 @@ public boolean validateDirContext(DirContextType contextType, DirContext dirCont
166167
Assert.notNull(contextType, "contextType may not be null");
167168
Assert.notNull(dirContext, "dirContext may not be null");
168169

170+
NamingEnumeration<SearchResult> searchResults = null;
169171
try {
170-
final NamingEnumeration<SearchResult> searchResults = dirContext.search(this.base, this.filter, this.searchControls);
172+
searchResults = dirContext.search(this.base, this.filter, this.searchControls);
171173

172174
if (searchResults.hasMore()) {
173175
this.logger.debug("DirContext '{}' passed validation.", dirContext);
174-
176+
175177
return true;
176178
}
177179
}
178180
catch (Exception e) {
179181
this.logger.debug("DirContext '{}' failed validation with an exception.", dirContext, e);
180182
return false;
181183
}
184+
finally {
185+
if (searchResults != null) {
186+
try {
187+
searchResults.close();
188+
} catch (NamingException namingException) {
189+
}
190+
}
191+
}
182192

183193
this.logger.debug("DirContext '{}' failed validation.", dirContext);
184194
return false;

0 commit comments

Comments
 (0)