/* * Copyright 2002-2006 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.springframework.transaction; /** * Exception to be thrown when a transaction has timed out. * * <p>Thrown by Spring's local transaction strategies if the deadline * for a transaction has been reached when an operation is attempted, * according to the timeout specified for the given transaction. * * <p>Beyond such checks before each transactional operation, Spring's * local transaction strategies will also pass appropriate timeout values * to resource operations (for example to JDBC Statements, letting the JDBC * driver respect the timeout). Such operations will usually throw native * resource exceptions (for example, JDBC SQLExceptions) if their operation * timeout has been exceeded, to be converted to Spring's DataAccessException * in the respective DAO (which might use Spring's JdbcTemplate, for example). * * <p>In a JTA environment, it is up to the JTA transaction coordinator * to apply transaction timeouts. Usually, the corresponding JTA-aware * connection pool will perform timeout checks and throw corresponding * native resource exceptions (for example, JDBC SQLExceptions). * * @author Juergen Hoeller * @since 1.1.5 * @see org.springframework.transaction.support.ResourceHolderSupport#getTimeToLiveInMillis * @see java.sql.Statement#setQueryTimeout * @see java.sql.SQLException */ public class TransactionTimedOutException extends TransactionException { /** * Constructor for TransactionTimedOutException. * @param msg the detail message */ public TransactionTimedOutException(String msg) { super(msg); } /** * Constructor for TransactionTimedOutException. * @param msg the detail message * @param cause the root cause from the transaction API in use */ public TransactionTimedOutException(String msg, Throwable cause) { super(msg, cause); } }