Author: dwoods
Date: Wed Oct 13 15:56:51 2010
New Revision: 1022157

URL: http://svn.apache.org/viewvc?rev=1022157&view=rev
Log:
additional error handling when clear(EMF) is called

Modified:
    
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java

Modified: 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java?rev=1022157&r1=1022156&r2=1022157&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java
 Wed Oct 13 15:56:51 2010
@@ -313,17 +313,25 @@ public abstract class AbstractPersistenc
             return;
         }
         EntityManager em = emf.createEntityManager();
-        em.getTransaction().begin();
-        for (ClassMetaData meta : types) {
-            if (!meta.isMapped() || meta.isEmbeddedOnly()
-                || Modifier.isAbstract(meta.getDescribedType().getModifiers()) 
-                && !isBaseManagedInterface(meta, types)) {
-                continue;
+        try {
+            em.getTransaction().begin();
+            for (ClassMetaData meta : types) {
+                if (!meta.isMapped() || meta.isEmbeddedOnly()
+                    || 
Modifier.isAbstract(meta.getDescribedType().getModifiers()) 
+                    && !isBaseManagedInterface(meta, types)) {
+                    continue;
+                }
+                em.createQuery("DELETE FROM " + meta.getTypeAlias() + " 
o").executeUpdate();
+            }
+            em.getTransaction().commit();
+        } catch (Exception e) {
+            // ignore
+        } finally {
+            if (em.getTransaction().isActive()) {
+                em.getTransaction().rollback();
             }
-            em.createQuery("DELETE FROM " + meta.getTypeAlias() + " 
o").executeUpdate();
+            em.close();
         }
-        em.getTransaction().commit();
-        em.close();
     }
 
     /**


Reply via email to