src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java

Print this page

        

*** 26,36 **** package com.sun.jndi.ldap; import java.util.Hashtable; import java.util.Vector; import java.util.Enumeration; - import java.net.MalformedURLException; import javax.naming.*; import javax.naming.directory.*; import javax.naming.spi.ObjectFactory; import javax.naming.spi.InitialContextFactory; --- 26,35 ----
*** 117,129 **** private static String[] getURLs(Reference ref) throws NamingException { int size = 0; // number of URLs String[] urls = new String[ref.size()]; ! Enumeration addrs = ref.getAll(); while (addrs.hasMoreElements()) { ! RefAddr addr = (RefAddr)addrs.nextElement(); if ((addr instanceof StringRefAddr) && addr.getType().equals(ADDRESS_TYPE)) { urls[size++] = (String)addr.getContent(); --- 116,128 ---- private static String[] getURLs(Reference ref) throws NamingException { int size = 0; // number of URLs String[] urls = new String[ref.size()]; ! Enumeration<RefAddr> addrs = ref.getAll(); while (addrs.hasMoreElements()) { ! RefAddr addr = addrs.nextElement(); if ((addr instanceof StringRefAddr) && addr.getType().equals(ADDRESS_TYPE)) { urls[size++] = (String)addr.getContent();
*** 143,153 **** return urls2; } // ------------ Utilities used by other classes ---------------- ! public static DirContext getLdapCtxInstance(Object urlInfo, Hashtable env) throws NamingException { if (urlInfo instanceof String) { return getUsingURL((String)urlInfo, env); } else if (urlInfo instanceof String[]) { --- 142,152 ---- return urls2; } // ------------ Utilities used by other classes ---------------- ! public static DirContext getLdapCtxInstance(Object urlInfo, Hashtable<?,?> env) throws NamingException { if (urlInfo instanceof String) { return getUsingURL((String)urlInfo, env); } else if (urlInfo instanceof String[]) {
*** 156,166 **** throw new IllegalArgumentException( "argument must be an LDAP URL String or array of them"); } } ! private static DirContext getUsingURL(String url, Hashtable env) throws NamingException { DirContext ctx = null; LdapURL ldapUrl = new LdapURL(url); String dn = ldapUrl.getDN(); String host = ldapUrl.getHost(); --- 155,165 ---- throw new IllegalArgumentException( "argument must be an LDAP URL String or array of them"); } } ! private static DirContext getUsingURL(String url, Hashtable<?,?> env) throws NamingException { DirContext ctx = null; LdapURL ldapUrl = new LdapURL(url); String dn = ldapUrl.getDN(); String host = ldapUrl.getHost();
*** 200,210 **** /* * Try each URL until one of them succeeds. * If all URLs fail, throw one of the exceptions arbitrarily. * Not pretty, but potentially more informative than returning null. */ ! private static DirContext getUsingURLs(String[] urls, Hashtable env) throws NamingException { NamingException ne = null; DirContext ctx = null; for (int i = 0; i < urls.length; i++) { try { --- 199,209 ---- /* * Try each URL until one of them succeeds. * If all URLs fail, throw one of the exceptions arbitrarily. * Not pretty, but potentially more informative than returning null. */ ! private static DirContext getUsingURLs(String[] urls, Hashtable<?,?> env) throws NamingException { NamingException ne = null; DirContext ctx = null; for (int i = 0; i < urls.length; i++) { try {
*** 219,230 **** } /** * Used by Obj and obj/RemoteToAttrs too so must be public */ ! public static Attribute createTypeNameAttr(Class cl) { ! Vector v = new Vector(10); String[] types = getTypeNames(cl, v); if (types.length > 0) { BasicAttribute tAttr = new BasicAttribute(Obj.JAVA_ATTRIBUTES[Obj.TYPENAME]); for (int i = 0; i < types.length; i++) { --- 218,229 ---- } /** * Used by Obj and obj/RemoteToAttrs too so must be public */ ! public static Attribute createTypeNameAttr(Class<?> cl) { ! Vector<String> v = new Vector<>(10); String[] types = getTypeNames(cl, v); if (types.length > 0) { BasicAttribute tAttr = new BasicAttribute(Obj.JAVA_ATTRIBUTES[Obj.TYPENAME]); for (int i = 0; i < types.length; i++) {
*** 233,258 **** return tAttr; } return null; } ! private static String[] getTypeNames(Class currentClass, Vector v) { getClassesAux(currentClass, v); Class[] members = currentClass.getInterfaces(); for (int i = 0; i < members.length; i++) { getClassesAux(members[i], v); } String[] ret = new String[v.size()]; int i = 0; ! for (java.util.Enumeration e = v.elements(); e.hasMoreElements();) { ! ret[i++] = (String)e.nextElement(); } return ret; } ! private static void getClassesAux(Class currentClass, Vector v) { if (!v.contains(currentClass.getName())) { v.addElement(currentClass.getName()); } currentClass = currentClass.getSuperclass(); --- 232,258 ---- return tAttr; } return null; } ! private static String[] getTypeNames(Class<?> currentClass, Vector<String> v) { getClassesAux(currentClass, v); Class[] members = currentClass.getInterfaces(); for (int i = 0; i < members.length; i++) { getClassesAux(members[i], v); } String[] ret = new String[v.size()]; int i = 0; ! ! for (String name : v) { ! ret[i++] = name; } return ret; } ! private static void getClassesAux(Class<?> currentClass, Vector<String> v) { if (!v.contains(currentClass.getName())) { v.addElement(currentClass.getName()); } currentClass = currentClass.getSuperclass();