Object key2 = new Object();
Set unshared = new HashSet();
ccm.pushMetaAwareObject(key1, unshared);
try
{
TestConnection c = null;
ut.begin();
try
{
ccm.pushMetaAwareObject(key2, unshared);
try
{
c = (TestConnection)cm.allocateConnection(mcf, cri);
assertTrue("Connection not enlisted in tx!", c.isInTx());
}
finally
{
ccm.popMetaAwareObject(unshared);//key2
}
}
finally
{
if (TxUtils.isActive(ut))
ut.commit();
else
ut.rollback();
}
ut.begin();
try
{
ccm.pushMetaAwareObject(key2, unshared);
try
{
assertTrue("Connection not enlisted in tx!", c.isInTx());
}
finally
{
ccm.popMetaAwareObject(unshared);//key2
}
}
finally
{
if (TxUtils.isActive(ut))
ut.commit();
else
ut.rollback();
}
assertTrue("Connection still enlisted in tx!", !c.isInTx());
ccm.pushMetaAwareObject(key2, unshared);
try
{
if (c != null)
c.close();
}
finally
{
ccm.popMetaAwareObject(unshared);//key2
}