Is there any reason this is using bitwise operator instead of an or?  I believe the or would be significantly faster when !localNodeIsLockOwner evaluates to true since it won't have to evaluate the method call isStateTransferInProgress().

Do you know if | is faster than || if both sides are already evaluated variables?