* If none exists, will be created first.
*/
public LocalTransaction getOrCreateLocalTransaction(Transaction transaction, InvocationContext ctx) {
LocalTransaction current = localTransactions.get(transaction);
if (current == null) {
Address localAddress = rpcManager != null ? rpcManager.getTransport().getAddress() : null;
GlobalTransaction tx = gtf.newGlobalTransaction(localAddress, false);
if (trace) log.trace("Created a new GlobalTransaction {0}", tx);
current = new LocalTransaction(transaction, tx);
localTransactions.put(transaction, current);
notifier.notifyTransactionRegistered(tx, ctx);