protected ValidationResult doValidateAccess(File toFile, ValidationResult.Action action, boolean checkWriteable) {
    if (!toFile.exists() || toFile.isDirectory()) return null;
    ValidationResult result = validateProcessLock(toFile, action);
    if (result != null) return result;
    if (checkWriteable) {
      String problem = isWritable(toFile.toPath());
      if (problem != null) {
        ValidationResult.Option[] options = {myPatch.isStrict() ? ValidationResult.Option.NONE : ValidationResult.Option.IGNORE};
        return new ValidationResult(ValidationResult.Kind.ERROR, getReportPath(), action, UpdaterUI.message("access.denied"), problem, options);
      }
    }
    return null;
  }
protected ValidationResult doValidateAccess(File toFile, ValidationResult.Action action, boolean checkWriteable)