Java File.renameTo (File) no funciona

Estoy tratando de listar el contenido de un directorio y renombrar ciertos archivos.

public void run(String dirName) {
    try {
        File parDir = new File(dirName);
        File[] dirContents = parDir.listFiles();

        // Rename if necessary
        for(File f : dirContents) {
            System.out.println("f is:\n" + f.toString());
            String name = f.getName();
            String subbedName = name.replaceAll("\uFFFD", "_");

            System.out.println("\n" + "name = " + name + ", subbedName = " + subbedName + "\n");

            if(!name.equals(subbedName)) {
                File newFile = new File(f.getParentFile(), subbedName);
                System.out.println("newFile is:\n" + newFile.toString());
                if(!f.renameTo(newFile))
                    System.out.println("Tried to change file name but couldn't.");
            }
        }
    }
    catch(Exception exc1) {
        System.out.println("Something happened while listing and renaming directory contents: " + exc1.getMessage());
    }
}

Cuando corro esto, me sale "Tried to change file name but couldn't." Yo nocreer que Java considera que estos archivos están "abiertos", así que no creo que esa sea la razón. Incluso he corridochmod 777 myDir dóndemyDir es el valor de ladirName cadena pasó a larun método.

¿Que me estoy perdiendo aqui? ¿Por qué Java no cambiará el nombre de estos archivos? Estas son máquinas CentOS.

Editar: Se agregaron impresiones para ambosf ynewFile, que es el siguiente:

f is:
/root/path/to/mydir/test�.txt

newFile is:
/root/path/to/mydir/test_.txt

Respuestas a la pregunta(3)

Su respuesta a la pregunta