Image du projet 'Formulaires' téléversée
  1. Formulaires
  2. FORMULAIRE-52

Gestion des erreurs lors de la manipulation des dossiers de stockage des pièces jointes

XMLWordImprimable

    • Icon: Demande d'amélioration Demande d'amélioration
    • Résolution: Non résolu
    • Icon: Mineur Mineur
    • master
    • 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)

            Non attribuée Non attribuée
            alice.ark Alice ARK [X] (Inactif)
            Votes:
            0 Voter pour ce ticket
            Gérer les observateurs:
            1 Démarre l'observation de ce ticket

              Création:
              Mise à jour: