FileUpload do RichFaces lançando IOException [RESOLVIDO]

Pessoal… to com um problema com o componente de fileUpload do richfaces 4.

Eu implemente um listener pro uploader e tudo funciona certinho… o upload vai, consigo processar… sem problemas.

O único detalhe é que sempre que eu carrego um arquivo é printado isso no meu console:


File delete failed: java.io.IOException: File delete failed
	at org.richfaces.request.FileUploadDiscResource.delete(FileUploadDiscResource.java:74) [richfaces-components-ui-4.1.0.Final.jar:4.1.0.Final]
	at org.richfaces.request.UploadedFile25.delete(UploadedFile25.java:54) [richfaces-components-ui-4.1.0.Final.jar:4.1.0.Final]
	at org.richfaces.request.MultipartRequest25.release(MultipartRequest25.java:163) [richfaces-components-ui-4.1.0.Final.jar:4.1.0.Final]
	at org.richfaces.context.FileUploadFacesContextFactory$FileUploadFacesContext.release(FileUploadFacesContextFactory.java:70) [richfaces-components-ui-4.1.0.Final.jar:4.1.0.Final]
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:612) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.13.Final.jar:]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
	at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.13.Final.jar:]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.13.Final.jar:]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.13.Final.jar:]
	at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.13.Final.jar:]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:]
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.13.Final.jar:]
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:]
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:]
	at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_25]

eu não sei o que é, aparentemente ele está tentando deletar o arquivo depois do processamento do listener, não sei…

Alguém sabe como resolver isso?

Informações importantes:

Estou usando JSF 2 + RichFaces 4 + Facelets + JBoss 7.1.1
não adicionei nada no meu web.xml pra usar o fileupload do richfaces (apesar de que ele funciona), talvez seja esse o problema.

meu componente está assim:

<rich:fileUpload id="fileUpload"
	maxFilesQuantity="1"
	clearAllLabel="Limpar Todos" clearLabel="Limpar"
	deleteLabel="Remover" doneLabel="Concluido" noDuplicate="true"
	uploadLabel="Carregar" addLabel="Novo"
	fileUploadListener="#{meuBean.arquivoListener}"
	acceptedTypes="txt" listHeight="10"
>
	<f:ajax event="uploadcomplete" execute="@none" render="btnUpload messages"/>
</rich:fileUpload>

fiz algumas alterações nos nomes, mas a estrutura é essa

Obrigado!

Só respondendo pro tópico subir denovo hehe…
talvez esteja logado agora alguém com a solução :slight_smile:

Estou passando pelo mesmo problema, alguém encontrou alguma solução para isto ?

Opa, já que tem mais gente com essa dúvida vou colocar aqui a resposta.

A solução é que não tem solução hehehe…

o componente do RichFaces cria um arquivo temporário durante o upload, depois que o FileUploadListener é executado, esse arquivo deixa de existir.

porém depois que esse arquivo deixa de existir uma outra classe tenta deletá-lo novamente, e como o arquivo não está mais lá, é lançada a exceção.

Então sempre é lançada essa exceção no console infelizmente, no meu caso não interfere em nada, são só umas linhas a mais de log.

Se alguém sabe de algo que eu não sei, por favor sinta-se livre para complementar a resposta, talvez exista uma solução de verdade.

Abraços!

Olá, passado esse tempo, você chegou a descobrir algo novo sobre esse problema? Eu estou passando pelo mesmo.

[]’