[jboss-cvs] jboss-seam/src/main/org/jboss/seam/util ...
Gavin King
gavin.king at jboss.com
Sun Oct 15 12:30:45 EDT 2006
User: gavin
Date: 06/10/15 12:30:45
Added: src/main/org/jboss/seam/util Work.java
Log:
fix JBSEAM-416
Revision Changes Path
1.1 date: 2006/10/15 16:30:45; author: gavin; state: Exp;jboss-seam/src/main/org/jboss/seam/util/Work.java
Index: Work.java
===================================================================
package org.jboss.seam.util;
import javax.transaction.UserTransaction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public abstract class Work<T>
{
private static final Log log = LogFactory.getLog(Work.class);
protected abstract T work() throws Exception;
protected boolean isTransactional()
{
return true;
}
public final T workInTransaction() throws Exception
{
boolean begin = isTransactional() && !Transactions.isTransactionActiveOrMarkedRollback();
UserTransaction userTransaction = begin ? Transactions.getUserTransaction() : null;
if (begin)
{
log.debug("beginning transaction");
userTransaction.begin();
}
try
{
T result = work();
if (begin)
{
log.debug("committing transaction");
userTransaction.commit();
}
return result;
}
catch (Exception e)
{
if (begin)
{
log.debug("rolling back transaction");
userTransaction.rollback();
}
throw e;
}
}
}
More information about the jboss-cvs-commits
mailing list