@Test
  public void nestedTxn() throws Exception {
    Account acct = Provisioning.getInstance().getAccount("*****@*****.**");
    Mailbox mbox = MailboxManager.getInstance().getMailboxByAccount(acct);
    useMVCC(mbox);

    DeliveryOptions dopt = new DeliveryOptions().setFolderId(Mailbox.ID_FOLDER_INBOX);
    mbox.lock.lock();
    try {
      OperationContext octx = new OperationContext(acct);
      mbox.beginTransaction("outer", octx);
      mbox.beginTransaction("inner1", octx);
      mbox.addMessage(
          octx, new ParsedMessage("From: [email protected]".getBytes(), false), dopt, null);

      // nothing committed yet
      Assert.assertEquals(0, countInboxMessages(mbox));
      mbox.endTransaction(true); // inner 1

      // nothing committed yet
      Assert.assertEquals(0, countInboxMessages(mbox));

      mbox.beginTransaction("inner2", null);
      mbox.addMessage(
          null, new ParsedMessage("From: [email protected]".getBytes(), false), dopt, null);

      // nothing committed yet
      Assert.assertEquals(0, countInboxMessages(mbox));
      mbox.endTransaction(true); // inner 2

      // nothing committed yet
      Assert.assertEquals(0, countInboxMessages(mbox));

      mbox.endTransaction(true); // outer

      // committed
      Assert.assertEquals(2, countInboxMessages(mbox));
    } finally {
      mbox.lock.release();
    }
  }