* @return the commit state <code>true</code> if committed, <code>false</code> if rolled back.
*/
public boolean runTransaction(Transaction<T> transaction) {
Utils.checkNull("Transaction callback", transaction);
if (Boolean.TRUE == this.isCommitting.get()) {
throw new MemoryException("Cannot run transaction within committed block.");
}
if (null == this.currentNode.get()) {
return execOuterTransaction(transaction);
} else {