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