/*
* @(#)CannotProceedException.java 1.12 05/11/17
*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package javax.naming;
import java.util.Hashtable;
/**
* 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.
*<p>
* If the program wants to handle this exception in particular, it
* should catch CannotProceedException explicitly before attempting to
* catch NamingException.
*<p>
* A CannotProceedException instance is not synchronized against concurrent
* multithreaded access. Multiple threads trying to access and modify
* CannotProceedException should lock the object.
*
* @author Rosanna Lee
* @author Scott Seligman
* @version 1.12 05/11/17
* @since 1.3
*/
/*
* The serialized form of a CannotProceedException object consists of
* the serialized fields of its NamingException superclass, the remaining new
* name (a Name object), the environment (a Hashtable), the altName field
* (a Name object), and the serialized form of the altNameCtx field.
*/
public class CannotProceedException extends NamingException {
/**
* Contains the remaining unresolved part of the second
* "name" argument to Context.rename().
* This information necessary for
* continuing the Context.rename() operation.
* <p>
* This field is initialized to null.
* It should not be manipulated directly: it should
* be accessed and updated using getRemainingName() and setRemainingName().
* @serial
*
* @see #getRemainingNewName
* @see #setRemainingNewName
*/
protected Name remainingNewName = null;
/**
* Contains the environment
* relevant for the Context or DirContext method that cannot proceed.
* <p>
* This field is initialized to null.
* It should not be manipulated directly: it should be accessed
* and updated using getEnvironment() and setEnvironment().
* @serial
*
* @see #getEnvironment
* @see #setEnvironment
*/
protected Hashtable<?,?> environment = null;
/**
* Contains the name of the resolved object, relative
* to the context <code>altNameCtx</code>. It is a composite name.
* If null, then no name is specified.
* See the <code>javax.naming.spi.ObjectFactory.getObjectInstance</code>
* method for details on how this is used.
* <p>
* This field is initialized to null.
* It should not be manipulated directly: it should
* be accessed and updated using getAltName() and setAltName().
* @serial
*
* @see #getAltName
* @see #setAltName
* @see #altNameCtx
* @see javax.naming.spi.ObjectFactory#getObjectInstance
*/
protected Name altName = null;
/**
* Contains the context relative to which
* <code>altName</code> is specified. If null, then the default initial
* context is implied.
* See the <code>javax.naming.spi.ObjectFactory.getObjectInstance</code>
=1= |