javax.naming
Class ReferralException

java.lang.Object sample code for java.lang.Object definition code for java.lang.Object 
  extended by java.lang.Throwable sample code for java.lang.Throwable definition code for java.lang.Throwable 
      extended by java.lang.Exception sample code for java.lang.Exception definition code for java.lang.Exception 
          extended by javax.naming.NamingException sample code for javax.naming.NamingException definition code for javax.naming.NamingException 
              extended by javax.naming.ReferralException
All Implemented Interfaces:
Serializable sample code for java.io.Serializable definition code for java.io.Serializable
Direct Known Subclasses:
LdapReferralException sample code for javax.naming.ldap.LdapReferralException definition code for javax.naming.ldap.LdapReferralException

public abstract class ReferralException
extends NamingException sample code for javax.naming.NamingException definition code for javax.naming.NamingException

This abstract class is used to represent a referral exception, which is generated in response to a referral such as that returned by LDAP v3 servers.

A service provider provides a subclass of ReferralException by providing implementations for getReferralInfo() and getReferralContext() (and appropriate constructors and/or corresponding "set" methods).

The following code sample shows how ReferralException can be used.

        while (true) {
            try {
                bindings = ctx.listBindings(name);
                while (bindings.hasMore()) {
                    b = bindings.next();
                    ...
                }
                break;
            } catch (ReferralException e) {
                ctx = e.getReferralContext();
            }
        }
 

ReferralException is an abstract class. Concrete implementations determine its synchronization and serialization properties.

An environment parameter passed to the getReferralContext() method is owned by the caller. The service provider will not modify the object or keep a reference to it, but may keep a reference to a clone of it.

Since:
1.3
See Also:
Serialized Form

Field Summary
 
Fields inherited from class javax.naming.NamingException sample code for javax.naming.NamingException definition code for javax.naming.NamingException
remainingName sample code for javax.naming.NamingException.remainingName definition code for javax.naming.NamingException.remainingName , resolvedName sample code for javax.naming.NamingException.resolvedName definition code for javax.naming.NamingException.resolvedName , resolvedObj sample code for javax.naming.NamingException.resolvedObj definition code for javax.naming.NamingException.resolvedObj , rootException sample code for javax.naming.NamingException.rootException definition code for javax.naming.NamingException.rootException
 
Constructor Summary
protected ReferralException sample code for javax.naming.ReferralException.ReferralException() definition code for javax.naming.ReferralException.ReferralException() ()
          Constructs a new instance of ReferralException.
protected ReferralException sample code for javax.naming.ReferralException.ReferralException(java.lang.String) definition code for javax.naming.ReferralException.ReferralException(java.lang.String) (String sample code for java.lang.String definition code for java.lang.String  explanation)
          Constructs a new instance of ReferralException using the explanation supplied.
 
Method Summary
abstract  Context sample code for javax.naming.Context definition code for javax.naming.Context getReferralContext sample code for javax.naming.ReferralException.getReferralContext() definition code for javax.naming.ReferralException.getReferralContext() ()
          Retrieves the context at which to continue the method.
abstract  Context sample code for javax.naming.Context definition code for javax.naming.Context getReferralContext sample code for javax.naming.ReferralException.getReferralContext(java.util.Hashtable) definition code for javax.naming.ReferralException.getReferralContext(java.util.Hashtable) (Hashtable sample code for java.util.Hashtable definition code for java.util.Hashtable <?,?> env)
          Retrieves the context at which to continue the method using environment properties.
abstract  Object sample code for java.lang.Object definition code for java.lang.Object getReferralInfo sample code for javax.naming.ReferralException.getReferralInfo() definition code for javax.naming.ReferralException.getReferralInfo() ()
          Retrieves information (such as URLs) related to this referral.
abstract  void retryReferral sample code for javax.naming.ReferralException.retryReferral() definition code for javax.naming.ReferralException.retryReferral() ()
          Retries the referral currently being processed.
abstract  boolean skipReferral sample code for javax.naming.ReferralException.skipReferral() definition code for javax.naming.ReferralException.skipReferral() ()
          Discards the referral about to be processed.
 
Methods inherited from class javax.naming.NamingException sample code for javax.naming.NamingException definition code for javax.naming.NamingException
appendRemainingComponent sample code for javax.naming.NamingException.appendRemainingComponent(java.lang.String) definition code for javax.naming.NamingException.appendRemainingComponent(java.lang.String) , appendRemainingName sample code for javax.naming.NamingException.appendRemainingName(javax.naming.Name) definition code for javax.naming.NamingException.appendRemainingName(javax.naming.Name) , getCause sample code for javax.naming.NamingException.getCause() definition code for javax.naming.NamingException.getCause() , getExplanation sample code for javax.naming.NamingException.getExplanation() definition code for javax.naming.NamingException.getExplanation() , getRemainingName sample code for javax.naming.NamingException.getRemainingName() definition code for javax.naming.NamingException.getRemainingName() , getResolvedName sample code for javax.naming.NamingException.getResolvedName() definition code for javax.naming.NamingException.getResolvedName() , getResolvedObj sample code for javax.naming.NamingException.getResolvedObj() definition code for javax.naming.NamingException.getResolvedObj() , getRootCause sample code for javax.naming.NamingException.getRootCause() definition code for javax.naming.NamingException.getRootCause() , initCause sample code for javax.naming.NamingException.initCause(java.lang.Throwable) definition code for javax.naming.NamingException.initCause(java.lang.Throwable) , setRemainingName sample code for javax.naming.NamingException.setRemainingName(javax.naming.Name) definition code for javax.naming.NamingException.setRemainingName(javax.naming.Name) , setResolvedName sample code for javax.naming.NamingException.setResolvedName(javax.naming.Name) definition code for javax.naming.NamingException.setResolvedName(javax.naming.Name) , setResolvedObj sample code for javax.naming.NamingException.setResolvedObj(java.lang.Object) definition code for javax.naming.NamingException.setResolvedObj(java.lang.Object) , setRootCause sample code for javax.naming.NamingException.setRootCause(java.lang.Throwable) definition code for javax.naming.NamingException.setRootCause(java.lang.Throwable) , toString sample code for javax.naming.NamingException.toString() definition code for javax.naming.NamingException.toString() , toString sample code for javax.naming.NamingException.toString(boolean) definition code for javax.naming.NamingException.toString(boolean)
 
Methods inherited from class java.lang.Throwable sample code for java.lang.Throwable definition code for java.lang.Throwable
fillInStackTrace sample code for java.lang.Throwable.fillInStackTrace() definition code for java.lang.Throwable.fillInStackTrace() , getLocalizedMessage sample code for java.lang.Throwable.getLocalizedMessage() definition code for java.lang.Throwable.getLocalizedMessage() , getMessage sample code for java.lang.Throwable.getMessage() definition code for java.lang.Throwable.getMessage() , getStackTrace sample code for java.lang.Throwable.getStackTrace() definition code for java.lang.Throwable.getStackTrace() , printStackTrace sample code for java.lang.Throwable.printStackTrace() definition code for java.lang.Throwable.printStackTrace() , printStackTrace sample code for java.lang.Throwable.printStackTrace(java.io.PrintStream) definition code for java.lang.Throwable.printStackTrace(java.io.PrintStream) , printStackTrace sample code for java.lang.Throwable.printStackTrace(java.io.PrintWriter) definition code for java.lang.Throwable.printStackTrace(java.io.PrintWriter) , setStackTrace sample code for java.lang.Throwable.setStackTrace(java.lang.StackTraceElement[]) definition code for java.lang.Throwable.setStackTrace(java.lang.StackTraceElement[])
 
Methods inherited from class java.lang.Object sample code for java.lang.Object definition code for java.lang.Object
clone sample code for java.lang.Object.clone() definition code for java.lang.Object.clone() , equals sample code for java.lang.Object.equals(java.lang.Object) definition code for java.lang.Object.equals(java.lang.Object) , finalize sample code for java.lang.Object.finalize() definition code for java.lang.Object.finalize() , getClass sample code for java.lang.Object.getClass() definition code for java.lang.Object.getClass() , hashCode sample code for java.lang.Object.hashCode() definition code for java.lang.Object.hashCode() , notify sample code for java.lang.Object.notify() definition code for java.lang.Object.notify() , notifyAll sample code for java.lang.Object.notifyAll() definition code for java.lang.Object.notifyAll() , wait sample code for java.lang.Object.wait() definition code for java.lang.Object.wait() , wait sample code for java.lang.Object.wait(long) definition code for java.lang.Object.wait(long) , wait sample code for java.lang.Object.wait(long, int) definition code for java.lang.Object.wait(long, int)
 

Constructor Detail

ReferralException sample code for javax.naming.ReferralException(java.lang.String) definition code for javax.naming.ReferralException(java.lang.String)

protected ReferralException(String sample code for java.lang.String definition code for java.lang.String  explanation)
Constructs a new instance of ReferralException using the explanation supplied. All other fields are set to null.

Parameters:
explanation - Additional detail about this exception. Can be null.
See Also:
Throwable.getMessage() sample code for java.lang.Throwable.getMessage() definition code for java.lang.Throwable.getMessage()

ReferralException sample code for javax.naming.ReferralException() definition code for javax.naming.ReferralException()

protected ReferralException()
Constructs a new instance of ReferralException. All fields are set to null.

Method Detail

getReferralInfo sample code for javax.naming.ReferralException.getReferralInfo() definition code for javax.naming.ReferralException.getReferralInfo()

public abstract Object sample code for java.lang.Object definition code for java.lang.Object  getReferralInfo()
Retrieves information (such as URLs) related to this referral. The program may examine or display this information to the user to determine whether to continue with the referral, or to determine additional information needs to be supplied in order to continue with the referral.

Returns:
Non-null referral information related to this referral.

getReferralContext sample code for javax.naming.ReferralException.getReferralContext() definition code for javax.naming.ReferralException.getReferralContext()

public abstract Context sample code for javax.naming.Context definition code for javax.naming.Context  getReferralContext()
                                    throws NamingException sample code for javax.naming.NamingException definition code for javax.naming.NamingException 
Retrieves the context at which to continue the method. Regardless of whether a referral is encountered directly during a context operation, or indirectly, for example, during a search enumeration, the referral exception should provide a context at which to continue the operation. The referral context is created using the environment properties of the context that threw the ReferralException.

To continue the operation, the client program should re-invoke the method using the same arguments as the original invocation.

Returns:
The non-null context at which to continue the method.
Throws:
NamingException sample code for javax.naming.NamingException definition code for javax.naming.NamingException - If a naming exception was encountered. Call either retryReferral() or skipReferral() to continue processing referrals.

getReferralContext sample code for javax.naming.ReferralException.getReferralContext(java.util.Hashtable<?, ?>) definition code for javax.naming.ReferralException.getReferralContext(java.util.Hashtable<?, ?>)

public abstract Context sample code for javax.naming.Context definition code for javax.naming.Context  getReferralContext(Hashtable sample code for java.util.Hashtable definition code for java.util.Hashtable <?,?> env)
                                    throws NamingException sample code for javax.naming.NamingException definition code for javax.naming.NamingException 
Retrieves the context at which to continue the method using environment properties. Regardless of whether a referral is encountered directly during a context operation, or indirectly, for example, during a search enumeration, the referral exception should provide a context at which to continue the operation.

The referral context is created using env as its environment properties. This method should be used instead of the no-arg overloaded form when the caller needs to use different environment properties for the referral context. It might need to do this, for example, when it needs to supply different authentication information to the referred server in order to create the referral context.

To continue the operation, the client program should re-invoke the method using the same arguments as the original invocation.

Parameters:
env - The possibly null environment to use when retrieving the referral context. If null, no environment properties will be used.
Returns:
The non-null context at which to continue the method.
Throws:
NamingException sample code for javax.naming.NamingException definition code for javax.naming.NamingException - If a naming exception was encountered. Call either retryReferral() or skipReferral() to continue processing referrals.

skipReferral sample code for javax.naming.ReferralException.skipReferral() definition code for javax.naming.ReferralException.skipReferral()

public abstract boolean skipReferral()
Discards the referral about to be processed. A call to this method should be followed by a call to getReferralContext to allow the processing of other referrals to continue. The following code fragment shows a typical usage pattern.

        } catch (ReferralException e) {
            if (!shallIFollow(e.getReferralInfo())) {
                if (!e.skipReferral()) {
                    return;
                }
            }
            ctx = e.getReferralContext();
        }
 

Returns:
true If more referral processing is pending; false otherwise.

retryReferral sample code for javax.naming.ReferralException.retryReferral() definition code for javax.naming.ReferralException.retryReferral()

public abstract void retryReferral()
Retries the referral currently being processed. A call to this method should be followed by a call to getReferralContext to allow the current referral to be retried. The following code fragment shows a typical usage pattern.

        } catch (ReferralException e) {
            while (true) {
                try {
                    ctx = e.getReferralContext(env);
                    break;
                } catch (NamingException ne) {
                    if (! shallIRetry()) {
                        return;
                    }
                    // modify environment properties (env), if necessary
                    e.retryReferral();
                }
            }
        }