[hibernate-commits] Hibernate SVN: r10330 - trunk/HibernateExt/ejb/src/java/org/hibernate/ejb

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Thu Aug 24 00:43:47 EDT 2006


Author: epbernard
Date: 2006-08-24 00:43:46 -0400 (Thu, 24 Aug 2006)
New Revision: 10330

Modified:
   trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/AbstractEntityManagerImpl.java
Log:
EJB-218 throw the original exception and log the subsequent one

Modified: trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/AbstractEntityManagerImpl.java
===================================================================
--- trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/AbstractEntityManagerImpl.java	2006-08-24 04:21:26 UTC (rev 10329)
+++ trunk/HibernateExt/ejb/src/java/org/hibernate/ejb/AbstractEntityManagerImpl.java	2006-08-24 04:43:46 UTC (rev 10330)
@@ -582,7 +582,15 @@
 	}
 
 	public void throwPersistenceException(PersistenceException e) {
-		if ( ! ( e instanceof NoResultException || ( e instanceof NonUniqueResultException ) ) ) markAsRollback();
+		if ( ! ( e instanceof NoResultException || ( e instanceof NonUniqueResultException ) ) ) {
+			try {
+				markAsRollback();
+			}
+			catch (Exception ne) {
+				//we do not want the subsequent exception to swallow the original one
+				log.error( "Unable to mark for rollback on PersistenceException: ", ne);
+			}
+		}
 		throw e;
 	}
 
@@ -620,7 +628,13 @@
 			throw new IllegalArgumentException( e );
 		}
 		else if ( e instanceof TransientObjectException ) {
-			markAsRollback();
+			try {
+				markAsRollback();
+			}
+			catch (Exception ne) {
+				//we do not want the subsequent exception to swallow the original one
+				log.error( "Unable to mark for rollback on TransientObjectException: ", ne);
+			}
 			throw new IllegalStateException( e ); //Spec 3.2.3 Synchronization rules
 		}
 		else {




More information about the hibernate-commits mailing list