APIdia Launch Partner
Top Description Fields Constructors Methods
javax.naming

public abstract Class ReferralException

extends NamingException
Class Inheritance
Known Direct Subclasses
javax.naming.ldap.LdapReferralException
Imports
java.util.Hashtable

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.

Authors
Rosanna Lee, Scott Seligman
Since
1.3

Field Summary

Modifier and TypeField and Description
private static final long
serialVersionUID

Hides javax.naming.NamingException.serialVersionUID.

Use serialVersionUID from JNDI 1.1.1 for interoperability
Inherited from javax.naming.NamingException:
remainingNameresolvedNameresolvedObjrootException

Constructor Summary

AccessConstructor and Description
protected
ReferralException(String
Additional detail about this exception. Can be null.
explanation
)

Constructs a new instance of ReferralException using the explanation supplied.

protected
ReferralException()

Constructs a new instance of ReferralException.

Method Summary

Modifier and TypeMethod and Description
public abstract Context

Returns:

The non-null context at which to continue the method.
getReferralContext
()

Retrieves the context at which to continue the method.

public abstract Context

Returns:

The non-null context at which to continue the method.
getReferralContext
(Hashtable<?, ?>
The possibly null environment to use when retrieving the referral context. If null, no environment properties will be used.
env
)

Retrieves the context at which to continue the method using environment properties.

public abstract Object

Returns:

Non-null referral information related to this referral.
getReferralInfo
()

Retrieves information (such as URLs) related to this referral.

public abstract void
retryReferral()

Retries the referral currently being processed.

public abstract boolean

Returns:

true If more referral processing is pending; false otherwise.
skipReferral
()

Discards the referral about to be processed.

Inherited from javax.naming.NamingException:
appendRemainingComponentappendRemainingNamegetCausegetExplanationgetRemainingNamegetResolvedNamegetResolvedObjgetRootCauseinitCausesetRemainingNamesetResolvedNamesetResolvedObjsetRootCausetoStringtoString

Field Detail

serialVersionUIDback to summary
private static final long serialVersionUID

Hides javax.naming.NamingException.serialVersionUID.

Use serialVersionUID from JNDI 1.1.1 for interoperability

Constructor Detail

ReferralExceptionback to summary
protected ReferralException(String explanation)

Constructs a new instance of ReferralException using the explanation supplied. All other fields are set to null.

Parameters
explanation:String

Additional detail about this exception. Can be null.

See Also
java.lang.Throwable#getMessage
ReferralExceptionback to summary
protected ReferralException()

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

Method Detail

getReferralContextback to summary
public abstract Context getReferralContext() throws 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:Context

The non-null context at which to continue the method.

Exceptions
NamingException:
If a naming exception was encountered. Call either retryReferral() or skipReferral() to continue processing referrals.
getReferralContextback to summary
public abstract Context getReferralContext(Hashtable<?, ?> env) throws 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:Hashtable<?, ?>

The possibly null environment to use when retrieving the referral context. If null, no environment properties will be used.

Returns:Context

The non-null context at which to continue the method.

Exceptions
NamingException:
If a naming exception was encountered. Call either retryReferral() or skipReferral() to continue processing referrals.
getReferralInfoback to summary
public abstract 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:Object

Non-null referral information related to this referral.

retryReferralback to summary
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();
         }
     }
 }
skipReferralback to summary
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:boolean

true If more referral processing is pending; false otherwise.