8149450: LdapCtx.processReturnCode() throwing Null Pointer Exception
Reviewed-by: xuelei
--- a/jdk/src/java.naming/share/classes/com/sun/jndi/ldap/LdapCtx.java Mon Apr 11 12:27:48 2016 +0800
+++ b/jdk/src/java.naming/share/classes/com/sun/jndi/ldap/LdapCtx.java Mon Apr 11 08:00:21 2016 +0100
@@ -2978,7 +2978,8 @@
r = new LdapReferralException(resolvedName, resolvedObj, remainName,
msg, envprops, fullDN, handleReferrals, reqCtls);
// only one set of URLs is present
- r.setReferralInfo(res.referrals.elementAt(0), false);
+ r.setReferralInfo(res.referrals == null ? null :
+ res.referrals.elementAt(0), false);
if (hopCount > 1) {
r.setHopCount(hopCount);
@@ -3047,7 +3048,7 @@
* assume name resolution has not yet completed.
*/
if (((res.entries == null) || (res.entries.isEmpty())) &&
- (res.referrals.size() == 1)) {
+ ((res.referrals != null) && (res.referrals.size() == 1))) {
r.setReferralInfo(res.referrals, false);
--- a/jdk/src/java.naming/share/classes/com/sun/jndi/ldap/LdapReferralException.java Mon Apr 11 12:27:48 2016 +0800
+++ b/jdk/src/java.naming/share/classes/com/sun/jndi/ldap/LdapReferralException.java Mon Apr 11 08:00:21 2016 +0100
@@ -217,13 +217,15 @@
System.out.println("LdapReferralException.setReferralInfo");
this.referrals = referrals;
- if (referrals != null) {
- referralCount = referrals.size();
- }
+ referralCount = (referrals == null) ? 0 : referrals.size();
if (debug) {
- for (int i = 0; i < referralCount; i++) {
- System.out.println(" [" + i + "] " + referrals.elementAt(i));
+ if (referrals != null) {
+ for (int i = 0; i < referralCount; i++) {
+ System.out.println(" [" + i + "] " + referrals.elementAt(i));
+ }
+ } else {
+ System.out.println("setReferralInfo : referrals == null");
}
}
}