Class ReferralException
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
LdapReferralException
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:
-
Field Summary
Fields declared in class NamingException
remainingName, resolvedName, resolvedObj, rootExceptionModifier and TypeFieldDescriptionprotected NameContains the remaining name that has not been resolved yet.protected NameContains the part of the name that has been successfully resolved.protected ObjectContains the object to which resolution of the part of the name was successful.protected ThrowableContains the original exception that caused this NamingException to be thrown. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedConstructs a new instance of ReferralException.protectedReferralException(String explanation) Constructs a new instance of ReferralException using the explanation supplied. -
Method Summary
Modifier and TypeMethodDescriptionabstract ContextRetrieves the context at which to continue the method.abstract ContextgetReferralContext(Hashtable<?, ?> env) Retrieves the context at which to continue the method using environment properties.abstract ObjectRetrieves information (such as URLs) related to this referral.abstract voidRetries the referral currently being processed.abstract booleanDiscards the referral about to be processed.Methods declared in class NamingException
appendRemainingComponent, appendRemainingName, getCause, getExplanation, getRemainingName, getResolvedName, getResolvedObj, getRootCause, initCause, setRemainingName, setResolvedName, setResolvedObj, setRootCause, toString, toStringModifier and TypeMethodDescriptionvoidAdd name as the last component in remaining name.voidappendRemainingName(Name name) Add components from 'name' as the last components in remaining name.getCause()Returns the cause of this exception.Retrieves the explanation associated with this exception.Retrieves the remaining unresolved portion of the name.Retrieves the leading portion of the name that was resolved successfully.Retrieves the object to which resolution was successful.Retrieves the root cause of this NamingException, if any.Initializes the cause of this exception to the specified value.voidsetRemainingName(Name name) Sets the remaining name field of this exception.voidsetResolvedName(Name name) Sets the resolved name field of this exception.voidsetResolvedObj(Object obj) Sets the resolved object field of this exception.voidRecords the root cause of this NamingException.toString()Generates the string representation of this exception.toString(boolean detail) Generates the string representation in more detail.Methods declared in class Throwable
addSuppressed, fillInStackTrace, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, printStackTrace, printStackTrace, printStackTrace, setStackTraceModifier and TypeMethodDescriptionfinal voidaddSuppressed(Throwable exception) The specified exception is going to be suppressed in order to give priority to this exception (primary exception) and to be appended to the list of suppressed exceptions.Record in the receiver a walkback from the point where this message was sent.Answers the extra information message which was provided when the throwable was created.Answers the extra information message which was provided when the throwable was created.Answers an array of StackTraceElement.final Throwable[]Returns an array of exceptions suppressed, typically by the automatically generated code from the try-with-resources statement, in order to give priority to this exception (primary exception).voidOutputs a printable representation of the receiver's walkback on the System.err stream.voidOutputs a printable representation of the receiver's walkback on the stream specified by the argument.voidOutputs a printable representation of the receiver's walkback on the writer specified by the argument.voidsetStackTrace(StackTraceElement[] trace) Sets the array of StackTraceElements.Methods declared in class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitModifier and TypeMethodDescriptionprotected Objectclone()Answers a new instance of the same class as the receiver, whose slots have been filled in with the values in the slots of the receiver.booleanCompares the argument to the receiver, and answers true if they represent the same object using a class specific comparison.protected voidfinalize()Deprecated, for removal: This API element is subject to removal in a future version.May cause performance issues, deadlocks and hangs.getClass()Answers the unique instance of java.lang.Class which represents the class of the receiver.inthashCode()Answers an integer hash code for the receiver.final voidnotify()Causes one thread which iswaiting on the receiver to be made ready to run.final voidCauses all threads which arewaiting on the receiver to be made ready to run.final voidwait()Causes the thread which sent this message to be made not ready to run pending some change in the receiver (as indicated bynotifyornotifyAll).final voidwait(long time) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.final voidwait(long time, int frac) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.
-
Constructor Details
-
ReferralException
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:
-
ReferralException
protected ReferralException()Constructs a new instance of ReferralException. All fields are set to null.
-
-
Method Details
-
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
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- If a naming exception was encountered. Call eitherretryReferral()orskipReferral()to continue processing referrals.
-
getReferralContext
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
envas 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- If a naming exception was encountered. Call eitherretryReferral()orskipReferral()to continue processing referrals.
-
skipReferral
public abstract boolean skipReferral()Discards the referral about to be processed. A call to this method should be followed by a call togetReferralContextto 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
public abstract void retryReferral()Retries the referral currently being processed. A call to this method should be followed by a call togetReferralContextto 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(); } } }
-