public void notifyTransactionCompleted(Transaction transaction, boolean successful, InvocationContext ctx)
{
if (!transactionCompletedListeners.isEmpty())
{
boolean isOriginLocal = ctx.isOriginLocal();
InvocationContext backup = resetInvocationContext(ctx);
EventImpl e = new EventImpl();
e.setCache(cache);
e.setOriginLocal(isOriginLocal);
e.setTransaction(transaction);
e.setSuccessful(successful);