diff options
author | jmagne <jmagne@c9f7a03b-bd48-0410-a16d-cbbf54688b0b> | 2010-10-16 00:53:08 +0000 |
---|---|---|
committer | jmagne <jmagne@c9f7a03b-bd48-0410-a16d-cbbf54688b0b> | 2010-10-16 00:53:08 +0000 |
commit | 708d7d542f90ca553c181f2a0c42fa434f76fc8a (patch) | |
tree | 3905cea936ea8dd3cee7a9bf63e1d529a0212cb4 /pki/base/common/src/com/netscape/cmscore/ldapconn/LdapAnonConnFactory.java | |
parent | 2fed6fe25f418750faa853577eb8c64d217fc9f0 (diff) | |
download | pki-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.java | 22 |
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; } |