- final DOMStoreWriteTransaction writeTx = dataStore.newWriteOnlyTransaction();
- assertNotNull("newReadWriteTransaction returned null", writeTx);
-
- // Do some modifications and ready the Tx on a separate thread.
-
- final AtomicReference<DOMStoreThreePhaseCommitCohort> txCohort = new AtomicReference<>();
- final AtomicReference<Exception> caughtEx = new AtomicReference<>();
- final CountDownLatch txReady = new CountDownLatch(1);
- Thread txThread = new Thread() {
- @Override
- public void run() {
- try {
- writeTx.write(TestModel.TEST_PATH,
- ImmutableNodes.containerNode(TestModel.TEST_QNAME));
-
- txCohort.set(writeTx.ready());
- } catch(Exception e) {
- caughtEx.set(e);
- return;
- } finally {
- txReady.countDown();
- }
- }
- };
-
- txThread.start();
-
- // Wait for the Tx operations to complete.
-
- boolean done = Uninterruptibles.awaitUninterruptibly(txReady, 5, TimeUnit.SECONDS);
- if(caughtEx.get() != null) {
- throw caughtEx.get();
- }
-
- assertEquals("Tx ready", true, done);
-
- // Wait for the commit to complete. Since the shard never initialized, the Tx should
- // have timed out and throw an appropriate exception cause.
+ // Create the write Tx
+ final DOMStoreWriteTransaction writeTx = dataStore.newWriteOnlyTransaction();
+ assertNotNull("newReadWriteTransaction returned null", writeTx);