E ae galera!
Bem...estou fazendo uma aplicação para enviar imagens a um servidor (é uma aplicação WEB, com JSF e RichFaces, mas o erro em sí não é com um dos frameworks em sí e sim com a classe File em sí). O problema é que algumas vezes quando eu tento deletar as imagens acontece um bug estranho.
primeiro eu vou postar o código do método em questão:
public void deleteUploadedFile(ActionEvent event) throws Throwable {
UIComponent link = event.getComponent();
UIParameter param = (UIParameter) link.findComponent("fileId");
TheFile file = this.uploadedFiles.get((Integer) param.getValue());
try {
File f = new File(file.getPath(), file.getName());
if ((f.exists()) && (f.canRead()) && (f.canWrite())) {
if(f.delete()){
for(int i=0; i<file.getThumbs().size(); i++){
File t1 = new File(file.getPath(), file.getThumbs().get(i).getThumbName());
t1.delete();
}
setDeleted(true);
}
else{
setDeleteLog("Arquivo não pode ser excluido");
setDeleted(false);
}
} else {
setDeleteLog("Erro ao tentar excluir o arquivo");
setDeleted(false);
}
this.finalize();
} catch (Exception ex) {
setDeleteLog("Deu erro: " + ex);
} finally {
if (this.deleted) {
if (this.uploadedFiles.remove(file)) {
setDeleteLog("Conseguiu remover");
} else {
setDeleteLog("Deu erro");
}
}
}
}
f(f.delete())
E pior, uma vez que acontece este bug, em todas as próximas tentativas de deleção acontece o mesmo bug.
Minha pergunta é...o que isto pode ser (o porque disto estar acontecendo) e como eu poderia resolver isto?! :?