@Override
    public boolean tryLock(long timeout, TimeUnit unit) throws InterruptedException {
      boolean alreadyOwned = helper.logRequest();
      boolean result = super.tryLock(timeout, unit);
      helper.logRequestCompleted(alreadyOwned, result);
      return result;
    }
@param delegate the lock to profile
@param ticker is the source of time information, replaceable for testing purpose
@param label is included in log messages for easier identification of locks (optional, may be empty or null)
ambari-server/src/main/java/org/apache/ambari/server/logging/ProfiledReentrantReadWriteLock.java