/* * 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; import java.io.IOException; /** * Thrown when an operation fails because of an I/O failure when attempting to * access a managed object. Typically the exception returned by the * {@link Throwable#getCause getCause} method will be the {@link IOException} * that caused the failure. */ public class ObjectIOException extends RuntimeException implements ExceptionRetryStatus { /** The version of the serialized form. */ private static final long serialVersionUID = 1; /** * Whether an operation that throws this exception should * be retried. * * @serial */ private final boolean shouldRetry; /** * Creates an instance of this class with the specified detail message and * whether an operation that throws this exception should be retried. * * @param message the detail message or <code>null</code> * @param shouldRetry whether an operation that throws this exception * should be retried */ public ObjectIOException(String message, boolean shouldRetry) { super(message); this.shouldRetry = shouldRetry; } /** * Creates an instance of this class with the specified detail message, the * cause, and whether an operation that throws this exception should be * retried. * * @param message the detail message or <code>null</code> * @param cause the cause or <code>null</code> * @param shouldRetry whether an operation that throws this exception * should be retried */ public ObjectIOException( String message, Throwable cause, boolean shouldRetry) { super(message, cause); this.shouldRetry = shouldRetry; } /* -- Implement ExceptionRetryStatus -- */ /** * {@inheritDoc} <p> * * This implementation returns the value that was specified for the * <code>shouldRetry</code> parameter in the constructor. */ public boolean shouldRetry() { return shouldRetry; } }