/* * This file is part of the HyperGraphDB source distribution. This is copyrighted * software. For permitted uses, licensing options and redistribution, please see * the LicensingInformation file at the root level of the distribution. * * Copyright (c) 2005-2010 Kobrix Software, Inc. All rights reserved. */ package org.hypergraphdb.transaction; /** * * <p> * A <code>HGTransactionException</code> is thrown from within the transaction * handling of HyperGraph. When such an exception is thrown during an operation * on a particular transaction, that transaction must be assumed invalid. Thus, * when <code>HGTransactionException</code> is caught, this means that the current * transaction has become invalid and cannot not be aborted. Similarly, when * caught a <code>HGTransactionException</code> should never be rethrown which * could prevent the freeing of parent transaction up the call stack. If you need * to propagate a <code>HGTransactionException</code>, you must wrap it in some * other exception (e.g. <code>RuntimeException</code>). * </p> * * <p> * <code>HGTransactionException</code>s mean one of two things: * <ol> * <li>A bug in the client * code that's attempting to commit/abort an unexisting or an already completed * transaction.</li> * <li>A low-level problem in the underlying storage mechanism (e.g. BerkeleyDB) * that should also be investigated separately, possibly after running a DB recovery. * </li> * </ol> * </p> * * @author Borislav Iordanov * */ public class HGTransactionException extends Exception { static final long serialVersionUID = -1; public HGTransactionException(String msg) { super(msg); } public HGTransactionException(String msg, Throwable cause) { super(msg, cause); } public HGTransactionException(Throwable cause) { super(cause); } }