private void releaseLocks() {
    if (lockElements != null) {
      Collection<LockElement> releaseFailures = null;
      Exception releaseException = null;
      for (LockElement lockElement : lockElements) {
        try {
          lockElement.releaseIfAcquired();
        } catch (Exception e) {
          releaseException = e;
          if (releaseFailures == null) {
            releaseFailures = new ArrayList<>();
          }
          releaseFailures.add(lockElement);
        }
      }

      if (releaseException != null) {
        log.warn(
            "Unable to release locks: "
                + releaseFailures
                + ". Example of exception:"
                + releaseException);
      }
    }
  }