@Override public void close() { if (pm != null && !pm.isClosed()) pm.close(); }
@Override protected boolean shouldReleaseAfterCompletion(PersistenceManagerHolder resourceHolder) { return !resourceHolder.getPersistenceManager().isClosed(); }
public boolean isClosed() { return getPM().isClosed(); }
public PersistenceManager getPM() { if (pm.get() == null || pm.get().isClosed()) { pm.set(getPMF().getPersistenceManager()); } return pm.get(); }
public void rollbackTransaction(PersistenceManager pm) { if (pm == null || pm.isClosed()) { return; } Transaction currentTransaction = pm.currentTransaction(); if (currentTransaction.isActive()) { try { currentTransaction.rollback(); } finally { pm.close(); } } } /**
if (!pm.isClosed()) { pm.close(); } else {
private static void closePM(PersistenceManager pm) { if (!pm.isClosed()) { if (pm.currentTransaction().isActive()) { pm.currentTransaction().rollback(); } pm.close(); } }
@Test public void testCreateAndClosePMF_Issue48() { ZooJdoProperties props = new ZooJdoProperties(DB_NAME); PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory(props); PersistenceManager pm1 = pmf.getPersistenceManager(); PersistenceManager pm2 = pmf.getPersistenceManager(); pm1.currentTransaction().begin(); try { pmf.close(); fail(); } catch (JDOUserException e) { //good, it's still active! } //a failed close should close none of the associated transactions (JDO 3.0 11.4) assertFalse(pm1.isClosed()); assertFalse(pm2.isClosed()); pm1.currentTransaction().commit(); pmf.close(); //should close the pm assertTrue(pm1.isClosed()); assertTrue(pm2.isClosed()); }
@After public void after() { if (pm != null && !pm.isClosed() && pm.currentTransaction().isActive()) { pm.currentTransaction().rollback(); } TestTools.closePM(); pm = null; TestTools.removeDb(); }
public static void closePM(PersistenceManager pm) { PersistenceManagerFactory pmf = pm.getPersistenceManagerFactory(); if (!pm.isClosed()) { try { if (pm.currentTransaction().isActive()) { pm.currentTransaction().rollback(); } pm.close(); } catch (Exception e) { e.printStackTrace(); } } try { pmf.close(); } catch (Exception e) { e.printStackTrace(); } TestTools.pm = null; //close files that may still be open if (ZooDebug.isTesting()) { ZooDebug.closeOpenFiles(); //ZooDebug.setTesting(false); } }
@Test public void testCreateAndCloseSession() { ZooJdoProperties props = new ZooJdoProperties(DB_NAME); PersistenceManagerFactory pmf1 = JDOHelper.getPersistenceManagerFactory(props); PersistenceManager pm11 = pmf1.getPersistenceManager(); assertFalse(pm11.isClosed()); pm11.close(); assertTrue(pm11.isClosed()); pmf1.close(); try { pmf1.getPersistenceManager(); fail(); } catch (JDOUserException e) { //good, it's closed! } try { pmf1.setConnectionURL("xyz"); fail(); } catch (JDOUserException e) { //good, there are still open session! } }
@After public void afterTest() { if (pm != null && !pm.isClosed()) { if (pm.currentTransaction().isActive()) { pm.currentTransaction().rollback(); } pm.close(); } pm = null; if (pmf != null && !pmf.isClosed()) { pmf.close(); } pmf = null; }
@After public void afterTest() { if (pm != null && !pm.isClosed()) { if (pm.currentTransaction().isActive()) { pm.currentTransaction().rollback(); } pm.close(); } pm = null; if (pmf != null && !pmf.isClosed()) { pmf.close(); } pmf = null; }
assertTrue(pm1.isClosed());
assertTrue(pm1.isClosed());
assertTrue(pm1.isClosed());
assertTrue(pm1.isClosed());
assertTrue(pm1.isClosed());