Update of /cvsroot/springframework/spring/tiger/src/org/springframework/orm/jpa
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25461/tiger/src/org/springframework/orm/jpa
Modified Files:
JpaTransactionManager.java
Log Message:
only attempt to roll back if transaction is still active
Index: JpaTransactionManager.java
===================================================================
RCS file: /cvsroot/springframework/spring/tiger/src/org/springframework/orm/jpa/JpaTransactionManager.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** JpaTransactionManager.java 15 Mar 2006 21:05:48 -0000 1.5
--- JpaTransactionManager.java 19 Apr 2006 21:16:03 -0000 1.6
***************
*** 19,22 ****
--- 19,23 ----
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
+ import javax.persistence.EntityTransaction;
import javax.persistence.PersistenceException;
import javax.sql.DataSource;
***************
*** 330,337 ****
}
try {
! txObject.getEntityManagerHolder().getEntityManager().getTransaction().commit();
}
catch (PersistenceException ex) {
! // assumably failed to flush changes to database
throw convertJpaAccessException(ex);
}
--- 331,339 ----
}
try {
! EntityTransaction tx = txObject.getEntityManagerHolder().getEntityManager().getTransaction();
! tx.commit();
}
catch (PersistenceException ex) {
! // Assumably failed to flush changes to database.
throw convertJpaAccessException(ex);
}
***************
*** 345,349 ****
}
try {
! txObject.getEntityManagerHolder().getEntityManager().getTransaction().rollback();
}
catch (PersistenceException ex) {
--- 347,354 ----
}
try {
! EntityTransaction tx = txObject.getEntityManagerHolder().getEntityManager().getTransaction();
! if (tx.isActive()) {
! tx.rollback();
! }
}
catch (PersistenceException ex) {
|