summaryrefslogtreecommitdiffstats
path: root/pki/base/common/src/com/netscape/cmscore/ldapconn/LdapAnonConnFactory.java
diff options
context:
space:
mode:
authorjmagne <jmagne@c9f7a03b-bd48-0410-a16d-cbbf54688b0b>2010-10-16 00:53:08 +0000
committerjmagne <jmagne@c9f7a03b-bd48-0410-a16d-cbbf54688b0b>2010-10-16 00:53:08 +0000
commit708d7d542f90ca553c181f2a0c42fa434f76fc8a (patch)
tree3905cea936ea8dd3cee7a9bf63e1d529a0212cb4 /pki/base/common/src/com/netscape/cmscore/ldapconn/LdapAnonConnFactory.java
parent2fed6fe25f418750faa853577eb8c64d217fc9f0 (diff)
downloadpki-708d7d542f90ca553c181f2a0c42fa434f76fc8a.tar.gz
pki-708d7d542f90ca553c181f2a0c42fa434f76fc8a.tar.xz
pki-708d7d542f90ca553c181f2a0c42fa434f76fc8a.zip
Fix Bugzilla Bug 630176 - Improve reliability of the LdapAnonConnFactory
git-svn-id: svn+ssh://svn.fedorahosted.org/svn/pki/trunk@1357 c9f7a03b-bd48-0410-a16d-cbbf54688b0b
Diffstat (limited to 'pki/base/common/src/com/netscape/cmscore/ldapconn/LdapAnonConnFactory.java')
-rw-r--r--pki/base/common/src/com/netscape/cmscore/ldapconn/LdapAnonConnFactory.java22
1 files changed, 21 insertions, 1 deletions
diff --git a/pki/base/common/src/com/netscape/cmscore/ldapconn/LdapAnonConnFactory.java b/pki/base/common/src/com/netscape/cmscore/ldapconn/LdapAnonConnFactory.java
index aae290ca4..fbc99608a 100644
--- a/pki/base/common/src/com/netscape/cmscore/ldapconn/LdapAnonConnFactory.java
+++ b/pki/base/common/src/com/netscape/cmscore/ldapconn/LdapAnonConnFactory.java
@@ -257,6 +257,7 @@ public class LdapAnonConnFactory implements ILdapConnFactory {
throws ELdapException {
boolean waited = false;
+ CMS.debug("LdapAnonConnFactory::getConn");
if (mNumConns == 0)
makeMinimum(true);
if (mNumConns == 0) {
@@ -288,7 +289,26 @@ public class LdapAnonConnFactory implements ILdapConnFactory {
"Ldap connections are available again in ldap connection pool " +
"to " + mConnInfo.getHost() + ":" + mConnInfo.getPort());
}
- CMS.debug("getConn(): num avail conns now " + mNumConns);
+ CMS.debug("LdapAnonConnFactory.getConn(): num avail conns now " + mNumConns);
+ //Beginning of fix for Bugzilla #630176
+ boolean isConnected = false;
+ if(conn != null) {
+ isConnected = conn.isConnected();
+ }
+
+ if(!isConnected) {
+ CMS.debug("LdapAnonConnFactory.getConn(): selected conn is down, try to reconnect...");
+ conn = null;
+ try {
+ conn = new AnonConnection(mConnInfo);
+ } catch (LDAPException e) {
+ CMS.debug("LdapAnonConnFactory.getConn(): error when trying to bring back a down connection.");
+ throw new ELdapException(
+ CMS.getUserMessage("CMS_LDAP_CONNECT_TO_LDAP_SERVER_FAILED",
+ mConnInfo.getHost(), "" + (Integer.valueOf(mConnInfo.getPort())), e.toString()));
+ }
+ }
+ //This is the end of the fix for Bugzilla #630176
return conn;
}