/* * Copyright 2007-2010 Sun Microsystems, Inc. * * This file is part of Project Darkstar Server. * * Project Darkstar Server is free software: you can redistribute it * and/or modify it under the terms of the GNU General Public License * version 2 as published by the Free Software Foundation and * distributed hereunder to you. * * Project Darkstar Server is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * * Sun designates this particular file as subject to the "Classpath" * exception as provided by Sun in the LICENSE file that accompanied * this code. * * -- */ package com.sun.sgs.app; /** * Thrown when an operation fails because there is no current, active * transaction. */ public class TransactionNotActiveException extends TransactionException implements ExceptionRetryStatus { /** The version of the serialized form. */ private static final long serialVersionUID = 1; /** * Creates an instance of this class with the specified detail message. * * @param message the detail message or <code>null</code> */ public TransactionNotActiveException(String message) { super(message); } /** * Creates an instance of this class with the specified detail message and * cause. If {@code cause} implements {@code ExceptionRetryStatus} then its * {@code shouldRetry} method will be called when deciding if this * exception should be retried. * * @param message the detail message or <code>null</code> * @param cause the cause or <code>null</code> */ public TransactionNotActiveException(String message, Throwable cause) { super(message, cause); } /** * {@inheritDoc} * <p> * If a {@code cause} was provided for this exception and it implements * {@code ExceptionRetryStatus}, then it will be called to determine if * the exception should request to be retried. Otherwise, this will * return {@code false}. */ public boolean shouldRetry() { Throwable t = getCause(); if (t == null) { return false; } return (t instanceof ExceptionRetryStatus) && ((ExceptionRetryStatus) t).shouldRetry(); } }