From 5941d67eccf1b355a16a97146f3f1ceef6331f1d Mon Sep 17 00:00:00 2001 From: coffeys Date: Mon, 11 Apr 2016 08:00:21 +0100 Subject: [PATCH] 8149450: LdapCtx.processReturnCode() throwing Null Pointer Exception Reviewed-by: xuelei --- src/share/classes/com/sun/jndi/ldap/LdapCtx.java | 5 +++-- .../com/sun/jndi/ldap/LdapReferralException.java | 12 +++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/share/classes/com/sun/jndi/ldap/LdapCtx.java b/src/share/classes/com/sun/jndi/ldap/LdapCtx.java index e5821adea..79630f53e 100644 --- a/src/share/classes/com/sun/jndi/ldap/LdapCtx.java +++ b/src/share/classes/com/sun/jndi/ldap/LdapCtx.java @@ -2975,7 +2975,8 @@ final public class LdapCtx extends ComponentDirContext 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); @@ -3044,7 +3045,7 @@ final public class LdapCtx extends ComponentDirContext * 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); diff --git a/src/share/classes/com/sun/jndi/ldap/LdapReferralException.java b/src/share/classes/com/sun/jndi/ldap/LdapReferralException.java index 53783adac..1058d9dd9 100644 --- a/src/share/classes/com/sun/jndi/ldap/LdapReferralException.java +++ b/src/share/classes/com/sun/jndi/ldap/LdapReferralException.java @@ -217,13 +217,15 @@ final public class LdapReferralException extends 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"); } } } -- GitLab