Spec-Zone.ru › OpenJDK 27

Class ReferralException

java.lang.Object
java.lang.Throwable
java.lang.Exception
javax.naming.NamingException
javax.naming.ReferralException
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
LdapReferralException
public abstract class ReferralException extends 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 declared in class NamingException

remainingName, resolvedName, resolvedObj, rootException
Modifier and Type Field Description
protected Name remainingName
Contains the remaining name that has not been resolved yet.
protected Name resolvedName
Contains the part of the name that has been successfully resolved.
protected Object resolvedObj
Contains the object to which resolution of the part of the name was successful.
protected Throwable rootException
Contains the original exception that caused this NamingException to be thrown.

Constructor Summary

ReferralException()
ReferralException(String explanation)
Modifier Constructor Description
protected
Constructs a new instance of ReferralException.
protected
Constructs a new instance of ReferralException using the explanation supplied.

Method Summary

Modifier and Type Method 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.

Methods declared in class NamingException

appendRemainingComponent, appendRemainingName, getCause, getExplanation, getRemainingName, getResolvedName, getResolvedObj, getRootCause, initCause, setRemainingName, setResolvedName, setResolvedObj, setRootCause, toString, toString
Modifier and Type Method Description
void appendRemainingComponent(String name)
Add name as the last component in remaining name.
void appendRemainingName(Name name)
Add components from 'name' as the last components in remaining name.
Throwable getCause()
Returns the cause of this exception.
String getExplanation()
Retrieves the explanation associated with this exception.
Name getRemainingName()
Retrieves the remaining unresolved portion of the name.
Name getResolvedName()
Retrieves the leading portion of the name that was resolved successfully.
Object getResolvedObj()
Retrieves the object to which resolution was successful.
Throwable getRootCause()
Retrieves the root cause of this NamingException, if any.
Throwable initCause(Throwable cause)
Initializes the cause of this exception to the specified value.
void setRemainingName(Name name)
Sets the remaining name field of this exception.
void setResolvedName(Name name)
Sets the resolved name field of this exception.
void setResolvedObj(Object obj)
Sets the resolved object field of this exception.
void setRootCause(Throwable e)
Records the root cause of this NamingException.
String toString()
Generates the string representation of this exception.
String toString(boolean detail)
Generates the string representation in more detail.

Methods declared in class Throwable

addSuppressed, fillInStackTrace, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, printStackTrace, printStackTrace, printStackTrace, setStackTrace
Modifier and Type Method Description
final void addSuppressed(Throwable exception)
Appends the specified exception to the exceptions that were suppressed in order to deliver this exception.
Throwable fillInStackTrace()
Fills in the execution stack trace.
String getLocalizedMessage()
Creates a localized description of this throwable.
String getMessage()
Returns the detail message string of this throwable.
StackTraceElement[] getStackTrace()
Provides programmatic access to the stack trace information printed by Throwable.printStackTrace().
final Throwable[] getSuppressed()
Returns an array containing all of the exceptions that were suppressed, typically by the try-with-resources statement, in order to deliver this exception.
void printStackTrace()
Prints this throwable and its backtrace to the standard error stream.
void printStackTrace(PrintStream s)
Prints this throwable and its backtrace to the specified print stream.
void printStackTrace(PrintWriter s)
Prints this throwable and its backtrace to the specified print writer.
void setStackTrace(StackTraceElement[] stackTrace)
Sets the stack trace elements that will be returned by Throwable.getStackTrace() and printed by Throwable.printStackTrace() and related methods.

Methods declared in class Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Modifier and Type Method Description
protected Object clone()
Creates and returns a copy of this object.
boolean equals(Object obj)
Indicates whether some other object is "equal to" this one.
protected void finalize()
Deprecated, for removal: This API element is subject to removal in a future version.
Finalization is deprecated and subject to removal in a future release.
final Class<?> getClass()
Returns the runtime class of this Object.
int hashCode()
Returns a hash code value for this object.
final void notify()
Wakes up a single thread that is waiting on this object's monitor.
final void notifyAll()
Wakes up all threads that are waiting on this object's monitor.
final void wait()
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
final void wait(long timeoutMillis)
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
final void wait(long timeoutMillis, int nanos)
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

Constructor Details

ReferralException

protected ReferralException(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()

ReferralException

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

Method Details

getReferralInfo

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:
Non-null referral information related to this referral.

getReferralContext

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:
The non-null context at which to continue the method.
Throws:
NamingException - If a naming exception was encountered. Call either retryReferral() or skipReferral() to continue processing referrals.

getReferralContext

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 - 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 either retryReferral() or skipReferral() 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 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

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();
         }
     }
 }

Report a bug or suggest an enhancement
For further API reference and developer documentation see the Java SE Documentation, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples. Other versions.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2026, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
All rights reserved. Use is subject to license terms and the documentation redistribution policy.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API