# Class CannotProceedException

java.lang.Object
java.lang.Throwable
java.lang.Exception
javax.naming.NamingException
javax.naming.CannotProceedException

All Implemented Interfaces:
  `Serializable`

public class CannotProceedException extends NamingException
This exception is thrown to indicate that the operation reached a point in the name where the operation cannot proceed any further. When performing an operation on a composite name, a naming service provider may reach a part of the name that does not belong to its namespace. At that point, it can construct a CannotProceedException and then invoke methods provided by javax.naming.spi.NamingManager (such as getContinuationContext()) to locate another provider to continue the operation. If this is not possible, this exception is raised to the caller of the context operation.

If the program wants to handle this exception in particular, it should catch CannotProceedException explicitly before attempting to catch NamingException.

A CannotProceedException instance is not synchronized against concurrent multithreaded access. Multiple threads trying to access and modify CannotProceedException should lock the object.

Since:
  1.3
See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected Name`
  `altName`
  Contains the name of the resolved object, relative to the context `altNameCtx`.
  `protected Context`
  `altNameCtx`
  Contains the context relative to which `altName` is specified.
  `protected Hashtable<?,?>`
  `environment`
  Contains the environment relevant for the Context or DirContext method that cannot proceed.
  `protected Name`
  `remainingNewName`
  Contains the remaining unresolved part of the second "name" argument to Context.rename().

  ### 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

  Constructors
  Constructor
  Description
  `CannotProceedException()`
  Constructs a new instance of CannotProceedException.
  `CannotProceedException(String explanation)`
  Constructs a new instance of CannotProceedException using an explanation.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Name`
  `getAltName()`
  Retrieves the `altName` field of this exception.
  `Context`
  `getAltNameCtx()`
  Retrieves the `altNameCtx` field of this exception.
  `Hashtable<?,?>`
  `getEnvironment()`
  Retrieves the environment that was in effect when this exception was created.
  `Name`
  `getRemainingNewName()`
  Retrieves the "remaining new name" field of this exception, which is used when this exception is thrown during a rename() operation.
  `void`
  `setAltName(Name altName)`
  Sets the `altName` field of this exception.
  `void`
  `setAltNameCtx(Context altNameCtx)`
  Sets the `altNameCtx` field of this exception.
  `void`
  `setEnvironment(Hashtable<?,?> environment)`
  Sets the environment that will be returned when getEnvironment() is called.
  `void`
  `setRemainingNewName(Name newName)`
  Sets the "remaining new name" field of this exception.

  ### 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.

- ## Field Details

  - ### remainingNewName

    protected Name remainingNewName
    Contains the remaining unresolved part of the second "name" argument to Context.rename(). This information is necessary for continuing the Context.rename() operation.

    This field is initialized to null. It should not be manipulated directly: it should be accessed and updated using getRemainingName() and setRemainingName().

    See Also:
      - `getRemainingNewName()`
      - `setRemainingNewName(Name)`

  - ### environment

    protected Hashtable<?,?> environment
    Contains the environment relevant for the Context or DirContext method that cannot proceed.

    This field is initialized to null. It should not be manipulated directly: it should be accessed and updated using getEnvironment() and setEnvironment().

    See Also:
      - `getEnvironment()`
      - `setEnvironment(Hashtable)`

  - ### altName

    protected Name altName
    Contains the name of the resolved object, relative to the context `altNameCtx`. It is a composite name. If null, then no name is specified. See the `javax.naming.spi.ObjectFactory.getObjectInstance` method for details on how this is used.

    This field is initialized to null. It should not be manipulated directly: it should be accessed and updated using getAltName() and setAltName().

    See Also:
      - `getAltName()`
      - `setAltName(Name)`
      - `altNameCtx`
      - `ObjectFactory.getObjectInstance(Object, Name, Context, Hashtable)`

  - ### altNameCtx

    protected Context altNameCtx
    Contains the context relative to which `altName` is specified. If null, then the default initial context is implied. See the `javax.naming.spi.ObjectFactory.getObjectInstance` method for details on how this is used.

    This field is initialized to null. It should not be manipulated directly: it should be accessed and updated using getAltNameCtx() and setAltNameCtx().

    See Also:
      - `getAltNameCtx()`
      - `setAltNameCtx(Context)`
      - `altName`
      - `ObjectFactory.getObjectInstance(Object, Name, Context, Hashtable)`

- ## Constructor Details

  - ### CannotProceedException

    public CannotProceedException(String explanation)
    Constructs a new instance of CannotProceedException using an explanation. All unspecified fields default to null.
    Parameters:
      `explanation` - A possibly null string containing additional detail about this exception. If null, this exception has no detail message.
    See Also:
      - `Throwable.getMessage()`

  - ### CannotProceedException

    public CannotProceedException()
    Constructs a new instance of CannotProceedException. All fields default to null.

- ## Method Details

  - ### getEnvironment

    public Hashtable<?,?> getEnvironment()
    Retrieves the environment that was in effect when this exception was created.
    Returns:
      Possibly null environment property set. null means no environment was recorded for this exception.
    See Also:
      - `setEnvironment(Hashtable)`

  - ### setEnvironment

    public void setEnvironment(Hashtable<?,?> environment)
    Sets the environment that will be returned when getEnvironment() is called.
    Parameters:
      `environment` - A possibly null environment property set. null means no environment is being recorded for this exception.
    See Also:
      - `getEnvironment()`

  - ### getRemainingNewName

    public Name getRemainingNewName()
    Retrieves the "remaining new name" field of this exception, which is used when this exception is thrown during a rename() operation.
    Returns:
      The possibly null part of the new name that has not been resolved. It is a composite name. It can be null, which means the remaining new name field has not been set.
    See Also:
      - `setRemainingNewName(Name)`

  - ### setRemainingNewName

    public void setRemainingNewName(Name newName)
    Sets the "remaining new name" field of this exception. This is the value returned by `getRemainingNewName()`.

    `newName` is a composite name. If the intent is to set this field using a compound name or string, you must "stringify" the compound name, and create a composite name with a single component using the string. You can then invoke this method using the resulting composite name.

    A copy of `newName` is made and stored. Subsequent changes to `name` does not affect the copy in this NamingException and vice versa.

    Parameters:
      `newName` - The possibly null name to set the "remaining new name" to. If null, it sets the remaining name field to null.
    See Also:
      - `getRemainingNewName()`

  - ### getAltName

    public Name getAltName()
    Retrieves the `altName` field of this exception. This is the name of the resolved object, relative to the context `altNameCtx`. It will be used during a subsequent call to the `javax.naming.spi.ObjectFactory.getObjectInstance` method.
    Returns:
      The name of the resolved object, relative to `altNameCtx`. It is a composite name. If null, then no name is specified.
    See Also:
      - `setAltName(Name)`
      - `getAltNameCtx()`
      - `ObjectFactory.getObjectInstance(Object, Name, Context, Hashtable)`

  - ### setAltName

    public void setAltName(Name altName)
    Sets the `altName` field of this exception.
    Parameters:
      `altName` - The name of the resolved object, relative to `altNameCtx`. It is a composite name. If null, then no name is specified.
    See Also:
      - `getAltName()`
      - `setAltNameCtx(Context)`

  - ### getAltNameCtx

    public Context getAltNameCtx()
    Retrieves the `altNameCtx` field of this exception. This is the context relative to which `altName` is named. It will be used during a subsequent call to the `javax.naming.spi.ObjectFactory.getObjectInstance` method.
    Returns:
      The context relative to which `altName` is named. If null, then the default initial context is implied.
    See Also:
      - `setAltNameCtx(Context)`
      - `getAltName()`
      - `ObjectFactory.getObjectInstance(Object, Name, Context, Hashtable)`

  - ### setAltNameCtx

    public void setAltNameCtx(Context altNameCtx)
    Sets the `altNameCtx` field of this exception.
    Parameters:
      `altNameCtx` - The context relative to which `altName` is named. If null, then the default initial context is implied.
    See Also:
      - `getAltNameCtx()`
      - `setAltName(Name)`