public void testConflictWithModifiedObject() throws Exception { { msg("Open session & local transaction"); CDOSession session = openSession(); CDOTransaction transaction = session.openTransaction(); CDOPushTransaction pushTransaction = openPushTransaction(transaction); file = pushTransaction.getFile(); CDOResource resource = transaction.getOrCreateResource(getResourcePath(resourcePath)); msg("Make a diff in existing element"); Supplier supplier = (Supplier) resource.getContents().get(0); supplier.setName("" + System.currentTimeMillis()); msg("Commit"); pushTransaction.commit(); session.close(); } { msg("Open transaction & commit changes to repo"); CDOSession session = openSession(); CDOTransaction transaction = session.openTransaction(); CDOResource resource = transaction.getOrCreateResource(getResourcePath(resourcePath)); Supplier supplier = (Supplier) resource.getContents().get(0); supplier.setName("" + System.currentTimeMillis()); transaction.commit(); session.close(); } msg("Reload previous local session"); CDOSession session = openSession(); CDOTransaction transaction = session.openTransaction(); CDOPushTransaction pushTransaction = openPushTransaction(transaction, file); assertEquals(true, transaction.hasConflict()); try { pushTransaction.push(); fail("CommitException expected"); } catch (CommitException expected) { // SUCCESS } }
protected void push(CDOTransaction transaction, CDOPushTransaction pushTransaction) throws CommitException { msg("Publish previous modifications"); pushTransaction.push(); assertEquals(false, transaction.isDirty()); }