public abstract class ReferralException extends NamingException
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.
remainingName, resolvedName, resolvedObj, rootException
Modifier | Constructor and Description |
---|---|
protected |
ReferralException()
Constructs a new instance of ReferralException.
|
protected |
ReferralException(String explanation)
Constructs a new instance of ReferralException using the
explanation supplied.
|
Modifier and Type | Method and Description |
---|---|
abstract Context |
getReferralContext()
Retrieves the context at which to continue the method.
|
abstract Context |
getReferralContext(Hashtable<?,?> env)
Retrieves the context at which to continue the method using
environment properties.
|
abstract Object |
getReferralInfo()
Retrieves information (such as URLs) related to this referral.
|
abstract void |
retryReferral()
Retries the referral currently being processed.
|
abstract boolean |
skipReferral()
Discards the referral about to be processed.
|
appendRemainingComponent, appendRemainingName, getCause, getExplanation, getRemainingName, getResolvedName, getResolvedObj, getRootCause, initCause, setRemainingName, setResolvedName, setResolvedObj, setRootCause, toString, toString
addSuppressed, fillInStackTrace, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, printStackTrace, printStackTrace, printStackTrace, setStackTrace
protected ReferralException(String explanation)
explanation
- Additional detail about this exception. Can be null.Throwable.getMessage()
protected ReferralException()
public abstract Object getReferralInfo()
public abstract Context getReferralContext() throws NamingException
To continue the operation, the client program should re-invoke the method using the same arguments as the original invocation.
NamingException
- If a naming exception was encountered.
Call either retryReferral() or skipReferral()
to continue processing referrals.public abstract Context getReferralContext(Hashtable<?,?> env) throws NamingException
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.
env
- The possibly null environment to use when retrieving the
referral context. If null, no environment properties will be used.NamingException
- If a naming exception was encountered.
Call either retryReferral() or skipReferral()
to continue processing referrals.public abstract boolean skipReferral()
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(); }
public abstract void retryReferral()
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(); } } }
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2022, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.