-
Demande d'amélioration
-
Résolution: Non résolu
-
Mineur
-
1.02.08
-
Aucune
Lorsqu'on valide un formulaire avec pièces jointes et que le dossier de stockage ne peut pas être créé à cause d'un pb de permission, une erreur est remontée à l'utilisateur :
java.io.IOException: Destination '/var/wwxxx/forms/1459849873770' directory cannot be created
Mais malgré les apparences, les données du formulaire ont bien été enregistrées (visibles en bdd) !
Par ailleurs, aucune trace de la cause de l'erreur io n'est disponible. Exemple de trace :
java.io.IOException: Destination '/var/wwwxxx/forms/1459849873770' directory cannot be created at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1085) ~[commons-io-2.4.jar:2.4] at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1038) ~[commons-io-2.4.jar:2.4] at com.kosmos.formulaire.SaisieFormulaireImpl.traiterSaisieFormulaire(SaisieFormulaireImpl.java:291) ~[formulaire-1.02.07.jar:na] at com.kosmos.formulaire.processus.TraitementFormulaire.traiterSaisieFormulaire(TraitementFormulaire.java:698) ~[formulaire-1.02.07.jar:na] at com.kosmos.formulaire.processus.TraitementFormulaire.traiterAction(TraitementFormulaire.java:737) ~[formulaire-1.02.07.jar:na] at com.jsbsoft.jtf.core.ProcessusManager.traiterAction(ProcessusManager.java:253) [core-6.02.24.jar:na] at com.jsbsoft.jtf.core.ProcedureBean.descriptifFluxProcessus(ProcedureBean.java:497) [core-6.02.24.jar:na] at com.jsbsoft.jtf.core.ProcedureBean.descriptifFluxRetour(ProcedureBean.java:207) [core-6.02.24.jar:na] at com.jsbsoft.jtf.core.ProcedureBean.descriptifFluxRetour(ProcedureBean.java:235) [core-6.02.24.jar:na] at com.jsbsoft.jtf.core.TraitementRequeteHTTP.traiterRequeteHTTP(TraitementRequeteHTTP.java:485) [core-6.02.24.jar:na] at com.jsbsoft.jtf.core.SG.doGet(SG.java:53) [core-6.02.24.jar:na] at com.jsbsoft.jtf.core.SG.doPost(SG.java:71) [core-6.02.24.jar:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) [servlet-api.jar:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) [servlet-api.jar:na] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) [catalina.jar:7.0.59] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [catalina.jar:7.0.59] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) [tomcat7-websocket.jar:7.0.59] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [catalina.jar:7.0.59] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [catalina.jar:7.0.59] at com.jsbsoft.jtf.core.LogAppFilter.doFilter(LogAppFilter.java:137) [core-6.02.24.jar:na] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [catalina.jar:7.0.59] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [catalina.jar:7.0.59] at ro.isdc.wro.http.WroContextFilter.doFilter(WroContextFilter.java:64) [wro4j-core-1.7.7.jar:1.7.7] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [catalina.jar:7.0.59] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [catalina.jar:7.0.59] at com.univ.utils.filter.ContexteFilter.doFilter(ContexteFilter.java:52) [core-6.02.24.jar:na] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [catalina.jar:7.0.59] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [catalina.jar:7.0.59] at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) [catalina.jar:7.0.59] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [catalina.jar:7.0.59] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [catalina.jar:7.0.59] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) [catalina.jar:7.0.59] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) [catalina.jar:7.0.59] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) [catalina.jar:7.0.59] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) [catalina.jar:7.0.59] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) [catalina.jar:7.0.59] at org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:334) [catalina.jar:7.0.59] at org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:119) [catalina.jar:7.0.59] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) [catalina.jar:7.0.59] at org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:188) [tomcat-coyote.jar:7.0.59] at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) [tomcat-coyote.jar:7.0.59] at org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:2403) [tomcat-coyote.jar:7.0.59] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_76] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_76] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-coyote.jar:7.0.59] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_76]
Du coup, est-il possible :
- d'afficher un message moins barbare à l'utilisateur ?
- de remonter la cause de l'erreur d'écriture dans les logs (permission denied, autre raison) ?
- soit de faire un rollback et ne pas enregistrer le formulaire, soit de prévenir l'utilisateur que son formulaire a été enregistré (mais cela n'est que partiellement vrai puisque sa pièce jointe est au mieux envoyée par mail, et au pire pas du tout prise en compte)