8149450: LdapCtx.processReturnCode() throwing Null Pointer Exception
authorcoffeys
Mon, 11 Apr 2016 08:00:21 +0100
changeset 36969 3176f6c55af1
parent 36968 4ddff5909b4f
child 36970 ae857479b5a8
8149450: LdapCtx.processReturnCode() throwing Null Pointer Exception Reviewed-by: xuelei
jdk/src/java.naming/share/classes/com/sun/jndi/ldap/LdapCtx.java
jdk/src/java.naming/share/classes/com/sun/jndi/ldap/LdapReferralException.java
--- 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");
             }
         }
     }