public static void changeLocalFilePermission(String filePath, String perms) {
    try {
      Files.setPosixFilePermissions(Paths.get(filePath), PosixFilePermissions.fromString(perms));
    } catch (UnsupportedOperationException e) {
      throw new UnimplementedRuntimeException(e, ErrorType.External);
    } catch (ClassCastException e) {
      throw new InvalidArgumentRuntimeException(e);
    } catch (SecurityException e) {
      throw new PermissionDeniedRuntimeException(e);
    } catch (IOException e) {
      throw new UnknownRuntimeException(e);
    }
  }
@Test
  public void changeNonExistentFile() {
    File ghostFile = new File(mTestFolder.getRoot(), "ghost.txt");
    Assert.assertThrows(UnknownRuntimeException.class,
        () -> FileUtils.changeLocalFilePermission(ghostFile.getAbsolutePath(), "rwxrwxrwx"));
  }