GenericClusteringException.java |
/* * JBoss, the OpenSource J2EE webOS * * Distributable under LGPL license. * See terms of license at gnu.org. */ package org.jboss.ha.framework.interfaces; import org.jboss.util.NestedException; /** * Generic clustering exception that can be used to replace other exceptions * that occur on the server. Thus, only this class is needed on the client side * and some specific server side exceptions class are not needed on the client side * (such as JMX exceptions for example). * Furhtermore, it has support for "COMPLETED" status flag a la IIOP. * * @author <a href="mailto:sacha.labourey@cogito-info.ch">Sacha Labourey</a>. * @version $Revision: 1.4 $ * * <p><b>Revisions:</b> * * <p><b>8 avril 2002 Sacha Labourey:</b> * <ul> * <li> First implementation </li> * </ul> */ public class GenericClusteringException extends NestedException { // When an invocation reaches a node, it may be invoked on the actual // target or not (or not completely). If COMPLETED_NO and working in // a clustered environment, the client proxy is allowed to invoke // the same invocation on a different node. Otherwise, it will depend // if the target method is idempotent: this is no more the problem of // this class but rather the meta-data of the business environment // that can give this information // public final static int COMPLETED_YES = 0; public final static int COMPLETED_NO = 1; public final static int COMPLETED_MAYBE = 2; public boolean isDefinitive = true; // if yes, then the invocation may be retried against another node // because the state has not been modified by the current invocation // public int completed; public GenericClusteringException () { this.completed = this.COMPLETED_MAYBE; } public GenericClusteringException (int CompletionStatus) { this.completed = CompletionStatus; } public GenericClusteringException (int CompletionStatus, String s) { super(s); this.completed = CompletionStatus; } public GenericClusteringException (int CompletionStatus, String s, boolean isDefinitive) { super(s); this.completed = CompletionStatus; this.isDefinitive = isDefinitive; } public GenericClusteringException (int CompletionStatus, Throwable nested, boolean isDefinitive) { super(nested); this.completed = CompletionStatus; this.isDefinitive = isDefinitive; } public GenericClusteringException (int CompletionStatus, Throwable nested) { super(nested); this.completed = CompletionStatus; } public int getCompletionStatus () { return this.completed; } public void setCompletionStatus (int completionStatus) { this.completed = completionStatus; } // Indicates if the exception will most probably be repetitive (definitive) // or if it is just a temporary failure and new attempts should be tried // public boolean isDefinitive () { return this.isDefinitive; } public void setIsDefinitive (boolean definitive) { this.isDefinitive = definitive; } }
GenericClusteringException.java |