private boolean lock(InvocationContext ctx, Fqn fqn, LockType lockType, boolean createIfNotExists, long timeout,
boolean acquireWriteLockOnParent, boolean reverseRemoveCheck, List<NodeSPI> createdNodes, boolean skipNotification)
throws TimeoutException, LockingException, InterruptedException
{
Thread currentThread = Thread.currentThread();
GlobalTransaction gtx = ctx.getGlobalTransaction();
boolean created = false;
// if the tx associated with the current thread is rolling back, barf! JBCACHE-923
if (gtx != null) TransactionTable.assertTransactionValid(ctx);
Object owner = (gtx != null) ? gtx : currentThread;