Bonjour,

J'ai actuellement un problème bizarre et très dérangeant.

J'ai une méthode de test qui fait ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
addFile("file.txt");
 
FileUtils.downloadFile("http://baptiste-wicht.developpez.com/dl.txt", getPath("file.txt"));
getPath() donne juste l'adresse absolue du fichier tempoaire, ici /tmp/unit/file.txt

addFile("file.txt") fait ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
file = new File(System.getProperty("java.io.tmpdir") + "/unit/", "file.txt")
 
try {
     if(!file.createNewFile()){
          fail("Unable to create the file {" + file.getAbsolutePath() + " }");
     }
} catch (IOException e) {
     fail("Unable to create the file {" + file.getAbsolutePath() + " } due to " + e.getMessage());
}
et downloadFile() va télécharger un fichier et l'écrire sur le disque. L'opération d'écriture est faite ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
FileOutputStream destinationFile = null;
try {
     destinationFile = new FileOutputStream(destination);
 
     destinationFile.write(data);
 
     destinationFile.flush();
} finally {
      close(destinationFile);
}
Sous Windows, ça fonction à merveille, mais sous Linux (Debian Stable) ou se trouve mon serveur d'intégration continue, impossible...

J'ai une exception sur cette ligne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
destinationFile = new FileOutputStream(destination);
L'existe indique :

java.io.FileNotFoundException: /tmp/unit/file.txt (Is a directory)
C'est comme s'il m'avait créé un dossier alors que j'ai bien spécifié createNewFile et que c'est /tmp/unit/file.txt...

Je vois pas pourquoi c'est un dossier

Si quelqu'un avait une idée, ça m'arrangerait vraiment beaucoup