/** * Accessor for the object state. * @param obj Object * @return The state ("persistent-clean", "detached-dirty" etc) */ public String getObjectState(Object obj) { return JDOHelper.getObjectState(obj).toString(); }
/** * Accessor for the object state. * @param obj Object * @return The state ("persistent-clean", "detached-dirty" etc) */ public String getObjectState(Object obj) { if (obj == null) { return null; } return JDOHelper.getObjectState(obj).toString(); }
@SuppressWarnings("rawtypes") @Override public Set getManagedObjects(EnumSet<ObjectState> arg0) { DBTracer.logCall(this, arg0); checkOpen(); HashSet<Object> s = new HashSet<Object>(); for (Object o: getManagedObjects()) { if (arg0.contains(JDOHelper.getObjectState(o))) { s.add(o); } } return s; }
private void assertState(TestClass pc, ObjectState state) { assertEquals(state, JDOHelper.getObjectState(pc)); }
assertEquals(ObjectState.HOLLOW_PERSISTENT_NONTRANSACTIONAL, JDOHelper.getObjectState(tc1)); assertEquals(ObjectState.HOLLOW_PERSISTENT_NONTRANSACTIONAL, JDOHelper.getObjectState(tc1b)); assertEquals(ObjectState.PERSISTENT_CLEAN, JDOHelper.getObjectState(tc1)); assertEquals(ObjectState.PERSISTENT_CLEAN, JDOHelper.getObjectState(tc1b)); assertEquals(ObjectState.PERSISTENT_CLEAN, JDOHelper.getObjectState(tc1)); assertEquals(ObjectState.PERSISTENT_CLEAN, JDOHelper.getObjectState(tc1b)); assertEquals(ObjectState.PERSISTENT_CLEAN, JDOHelper.getObjectState(tc1)); assertEquals(ObjectState.PERSISTENT_CLEAN, JDOHelper.getObjectState(tc1b));
assertEquals(ObjectState.HOLLOW_PERSISTENT_NONTRANSACTIONAL, JDOHelper.getObjectState(tc)); pm.refresh(tc); assertEquals(ObjectState.PERSISTENT_CLEAN, JDOHelper.getObjectState(tc)); assertEquals(ObjectState.HOLLOW_PERSISTENT_NONTRANSACTIONAL, JDOHelper.getObjectState(tc)); assertEquals(ObjectState.PERSISTENT_CLEAN, JDOHelper.getObjectState(tc)); pm.evictAll(false, TestClass.class); assertEquals(ObjectState.HOLLOW_PERSISTENT_NONTRANSACTIONAL, JDOHelper.getObjectState(tc)); assertEquals(ObjectState.PERSISTENT_CLEAN, JDOHelper.getObjectState(tc)); pm.evictAll(true, TestClass.class); assertEquals(ObjectState.HOLLOW_PERSISTENT_NONTRANSACTIONAL, JDOHelper.getObjectState(tc));
@Test public void testTransitionToDetachedDirty() { PersistenceManager pm = TestTools.openPM(); pm.setDetachAllOnCommit(true); pm.currentTransaction().begin(); TestClass tc1 = new TestClass(); TestClass tc1b = new TestClass(); pm.makePersistent(tc1); pm.makePersistent(tc1b); tc1.setInt(5); tc1.setRef2(tc1b); tc1b.setInt(6); //detach pm.currentTransaction().commit(); TestTools.closePM(); assertEquals(ObjectState.DETACHED_CLEAN, JDOHelper.getObjectState(tc1)); assertEquals(ObjectState.DETACHED_CLEAN, JDOHelper.getObjectState(tc1b)); tc1.setRef2(null); tc1b.setInt(60); assertEquals(ObjectState.DETACHED_DIRTY, JDOHelper.getObjectState(tc1)); assertEquals(ObjectState.DETACHED_DIRTY, JDOHelper.getObjectState(tc1b)); }
assertEquals(ObjectState.PERSISTENT_DELETED, JDOHelper.getObjectState(tc1)); assertEquals(ObjectState.PERSISTENT_DELETED, JDOHelper.getObjectState(tc2)); assertEquals(ObjectState.PERSISTENT_DELETED, JDOHelper.getObjectState(tc1)); assertEquals(ObjectState.PERSISTENT_DELETED, JDOHelper.getObjectState(tc2)); assertEquals(ObjectState.PERSISTENT_DELETED, JDOHelper.getObjectState(tc1));
private void checkSerialization(TestClassSer tc1, ObjectState state) { TestClassSer x0 = clone(tc1); System.out.println(x0.toString()); JDOHelper.getObjectId(x0); assertEquals(state, JDOHelper.getObjectState(x0)); assertEquals(JDOHelper.getVersion(tc1), JDOHelper.getVersion(x0)); assertEquals(tc1.jdoZooGetTimestamp(), x0.jdoZooGetTimestamp()); assertEquals(tc1.jdoZooGetOid(), x0.jdoZooGetOid()); //TODO // assertEquals(JDOHelper.getObjectId(tc1), JDOHelper.getObjectId(x0)); assertEquals(5, x0.getMyInt()); }
@Test public void testDoubleDelete() { Properties props = new ZooJdoProperties(DB_NAME); pmf = JDOHelper.getPersistenceManagerFactory(props); pm = pmf.getPersistenceManager(); pm.currentTransaction().begin(); TestClass tc = new TestClass(); pm.makePersistent(tc); pm.currentTransaction().commit(); pm.currentTransaction().begin(); pm.deletePersistent(tc); assertEquals(ObjectState.PERSISTENT_DELETED, JDOHelper.getObjectState(tc)); try { pm.deletePersistent(tc); fail(); } catch (JDOUserException e) { //good } assertEquals(ObjectState.PERSISTENT_DELETED, JDOHelper.getObjectState(tc)); pm.refresh(tc); assertEquals(ObjectState.PERSISTENT_DELETED, JDOHelper.getObjectState(tc)); pm.currentTransaction().commit(); pm.close(); }
assertEquals(ObjectState.PERSISTENT_DIRTY, JDOHelper.getObjectState(tc1)); assertEquals(ObjectState.PERSISTENT_DIRTY, JDOHelper.getObjectState(tc1b)); assertEquals(ObjectState.PERSISTENT_CLEAN, JDOHelper.getObjectState(tc1)); assertEquals(ObjectState.PERSISTENT_CLEAN, JDOHelper.getObjectState(tc1b)); assertEquals(ObjectState.PERSISTENT_DELETED, JDOHelper.getObjectState(tc1)); assertEquals(ObjectState.PERSISTENT_DIRTY, JDOHelper.getObjectState(tc1b));
@Test public void testReattachDirty() { //Test that the dirty flag is preserved during reattach. PersistenceManager pm = TestTools.openPM(); pm.setDetachAllOnCommit(true); pm.currentTransaction().begin(); TestClass tc1 = new TestClass(); TestClass tc2 = new TestClass(); pm.makePersistent(tc1); pm.makePersistent(tc2); tc1.setInt(5); tc2.setInt(6); //detach pm.currentTransaction().commit(); pm.currentTransaction().begin(); //make dirty tc2.setInt(11); //reattach pm.makePersistent(tc1); pm.makePersistent(tc2); assertEquals(ObjectState.PERSISTENT_CLEAN, JDOHelper.getObjectState(tc1)); assertEquals(ObjectState.PERSISTENT_DIRTY, JDOHelper.getObjectState(tc2)); pm.currentTransaction().commit(); TestTools.closePM(); }
pm.currentTransaction().begin(); assertEquals(ObjectState.HOLLOW_PERSISTENT_NONTRANSACTIONAL, JDOHelper.getObjectState(t1)); t1.setInt(3); assertEquals(ObjectState.PERSISTENT_DIRTY, JDOHelper.getObjectState(t1)); pm.currentTransaction().begin(); assertEquals(ObjectState.PERSISTENT_CLEAN, JDOHelper.getObjectState(t1));
@Test public void testNonPersistentObject() { Properties props = new ZooJdoProperties(DB_NAME); pmf = JDOHelper.getPersistenceManagerFactory(props); pm = pmf.getPersistenceManager(); pm.currentTransaction().begin(); TestClass tc = new TestClass(); try { pm.deletePersistent(tc); fail(); } catch (JDOUserException e) { //good } pm.refresh(tc); assertEquals(ObjectState.TRANSIENT, JDOHelper.getObjectState(tc)); pm.currentTransaction().commit(); pm.close(); }
pm.currentTransaction().begin(); assertEquals(ObjectState.PERSISTENT_CLEAN, JDOHelper.getObjectState(t1)); t1.setInt(3); assertEquals(ObjectState.PERSISTENT_DIRTY, JDOHelper.getObjectState(t1)); pm.currentTransaction().begin(); assertEquals(ObjectState.HOLLOW_PERSISTENT_NONTRANSACTIONAL, JDOHelper.getObjectState(t1));
assertEquals(ObjectState.PERSISTENT_CLEAN, JDOHelper.getObjectState(tc1)); assertEquals(ObjectState.PERSISTENT_DIRTY, JDOHelper.getObjectState(tc1b));
@Test public void testSingleEvict() { PersistenceManager pm = TestTools.openPM(); pm.currentTransaction().begin(); TestClass tc = new TestClass(); tc.setInt(55); pm.makePersistent(tc); pm.currentTransaction().commit(); pm.currentTransaction().begin(); pm.evict(tc); assertEquals(ObjectState.HOLLOW_PERSISTENT_NONTRANSACTIONAL, JDOHelper.getObjectState(tc)); assertEquals(55, tc.getInt()); tc.setInt(555); assertEquals(555, tc.getInt()); assertTrue(JDOHelper.isPersistent(tc)); //does commit work? pm.deletePersistent(tc); pm.currentTransaction().commit(); pm.close(); }