Index: topia/src/java/org/codelutin/topia/persistence/jdo/JDOPersistenceHelper.java diff -u topia/src/java/org/codelutin/topia/persistence/jdo/JDOPersistenceHelper.java:1.11 topia/src/java/org/codelutin/topia/persistence/jdo/JDOPersistenceHelper.java:1.12 --- topia/src/java/org/codelutin/topia/persistence/jdo/JDOPersistenceHelper.java:1.11 Sat Feb 5 10:47:09 2005 +++ topia/src/java/org/codelutin/topia/persistence/jdo/JDOPersistenceHelper.java Fri May 20 17:51:10 2005 @@ -23,9 +23,9 @@ * * @author Benjamin Poussin Copyright Code Lutin * - * @version $Revision: 1.11 $ + * @version $Revision: 1.12 $ * - * Mise a jour: $Date: 2005/02/05 10:47:09 $ par : $Author: pineau $ + * Mise a jour: $Date: 2005/05/20 17:51:10 $ par : $Author: thimel $ */ package org.codelutin.topia.persistence.jdo; @@ -169,9 +169,12 @@ getContext().getListeners().addCategory(this, entity); transaction.commit(); } catch (Exception eee) { - transaction.rollback(); throw new TopiaException("Can't persist entity " + entity, eee); } + finally { + if (transaction.isActive()) + transaction.rollback(); + } return entity; } @@ -193,9 +196,12 @@ getContext().getListeners().addCategory(this, entity); transaction.commit(); } catch (Exception eee) { - transaction.rollback(); throw new TopiaException("Can't update entity " + entity, eee); } + finally { + if (transaction.isActive()) + transaction.rollback(); + } return entity; } @@ -214,12 +220,15 @@ pm.deletePersistent(findDO(id, pm)); transaction.commit(); } catch (Exception eee) { - transaction.rollback(); + eee.printStackTrace(); throw new TopiaException("Can't delete entity " + entity, eee); } + finally { + if (transaction.isActive()) + transaction.rollback(); + } } - /** * Permet de récupéré une liste d'objet par rapport a une requete. * @@ -231,7 +240,7 @@ List result = new ArrayList(); PersistenceManager pm = pmf.getPersistenceManager(); pm.setUserObject(this); -System.out.println("Find start"); // TODO remove this +//System.out.println("Find start"); // TODO remove this Transaction transaction = pm.currentTransaction(); transaction.begin(); Collection qc = execute(query, pm); @@ -240,7 +249,7 @@ TopiaEntity entity = jdoEntity.convertToEntity(); result.add(entity); } - System.out.println("Find end"); // TODO remove this +//System.out.println("Find end"); // TODO remove this transaction.rollback(); return result; }