/** * This implementation exposes the SavepointManager interface * of the underlying transaction object, if any. */ protected SavepointManager getSavepointManager() { if (!isTransactionSavepointManager()) { throw new NestedTransactionNotSupportedException( "Transaction object [" + getTransaction() + "] does not support savepoints"); } return (SavepointManager) getTransaction(); }