Bug #13364
ferméIl arrive parfois que le contenu d'une newsletter ne s'affiche plus en édition, voire en prévisualisation
Ajouté par Yohann Chastagnier il y a environ 2 ans. Mis à jour il y a environ 2 ans.
100%
Description
Prérequis
- une newsletter en cours d'édition OK, avec beaucoup de données HTML (400ko par exemple)
- un réseau avec des latences (peut être simulé facilement avec le navigateur WEB)
- en réseau normal
- se diriger vers l'édition de la newsletter
- passer en réseau dégradé (
Fast 3G
par exemple) - entrer en édition d'un champ texte (l'éditeur peut mettre un peu de temps à s'afficher)
- modification du texte
- clic sur le bouton Valider sans avoir quitté le champ texte
- une alerte indique un risque choisir Quitter le plus rapidement possible
Résultat obtenu
Selon les latences du réseau, il est possible que les données enregistrées ne soient pas complètes.
Résultat attendu
Quelles que soient le latences réseaux, les données doivent être enregistrées dans leur intégralité.
Mis à jour par Yohann Chastagnier il y a environ 2 ans
- Lié à Feature #12713: Gestion et applications de modèles ajouté
Mis à jour par Yohann Chastagnier il y a environ 2 ans
- Statut changé de In progress... à Resolved
- % réalisé changé de 0 à 100
Des contrôles ont été ajoutés au niveau de l'enregistrement automatique du contenu d'une newsletter.
Les données sont dans un premier temps enregistrées dans un fichier temporaire.
Si les traitements de contrôle ne détectent pas de problème, le contenu de ce fichier est enregistré dans la persistance.
Si des problèmes sont détectés, une erreur est retournée au navigateur WEB. Dans ce dernier cas, le fichier temporaire n'est pas supprimé, ce qui laisse des informations supplémentaires quant à l'analyse d'un éventuel problème.
Au niveau de l'interface graphique, le clic sur le bouton Valider, le bouton Annuler ou sur un lien du fil d’Ariane est contrôlé plus finement de sorte de réaliser l'action une fois qu'il est certain que l'opération de sauvegarde automatique est terminée.
PR : https://github.com/Silverpeas/Silverpeas-Core/pull/1247
Mis à jour par Miguel Moquillon il y a environ 2 ans
- Statut changé de Resolved à Integration in progress...
Mis à jour par Miguel Moquillon il y a environ 2 ans
Premier retour. Une newsletter a été créé avec du contenu pure HTML (récupéré d'un long article sur le Web). J'ai pu observé le soucis en 6.3.1-SNAPSHOT. Toutefois, avec le bogue, le contenu de la newletter peut se retrouver dans un état instable. Cet état se manifeste lorsque le contenu existe bien : on peut voir sa prévisualisation et en vignette de newsletter mais lorsque l'on accède à l'édition de celle-ci, une page blanche apparaît avec une exception dans les journaux de Silverpeas. Le soucis est que la correction ne traite pas ce cas passé, au sens de récupérer un contenu vérolé.
L'exception :
2022-12-09 16:07:38,703 SEVERE [silverpeas.core.wbe] (default task-6) null: org.silverpeas.core.SilverpeasRuntimeException
at deployment.silverpeas.war//org.silverpeas.core.contribution.content.ddwe.model.DragAndDropWebEditorStore$Container.loadFrom(DragAndDropWebEditorStore.java:326)
at deployment.silverpeas.war//org.silverpeas.core.contribution.content.ddwe.model.DragAndDropWebEditorStore$File.getContainer(DragAndDropWebEditorStore.java:249)
at deployment.silverpeas.war//org.silverpeas.core.contribution.content.ddwe.DragAndDropWbeFile.resetTemporaryContent(DragAndDropWbeFile.java:144)
at deployment.silverpeas.war//org.silverpeas.web.ddwe.DragAndDropWebEditorController.lambda$resetTemporaryContent$2(DragAndDropWebEditorController.java:139)
at deployment.silverpeas.war//org.silverpeas.web.ddwe.DragAndDropWebEditorController.process(DragAndDropWebEditorController.java:314)
at deployment.silverpeas.war//org.silverpeas.web.ddwe.DragAndDropWebEditorController.resetTemporaryContent(DragAndDropWebEditorController.java:138)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at deployment.silverpeas.war//org.silverpeas.core.web.mvc.webcomponent.ResponseContentProducer.invoke(ResponseContentProducer.java:82)
at deployment.silverpeas.war//org.silverpeas.core.web.mvc.webcomponent.ResponseContentProducer.handleJson(ResponseContentProducer.java:64)
at deployment.silverpeas.war//org.silverpeas.core.web.mvc.webcomponent.ResponseContentProducer.produce(ResponseContentProducer.java:56)
at deployment.silverpeas.war//org.silverpeas.core.web.mvc.webcomponent.WebComponentManager.executePath(WebComponentManager.java:437)
at deployment.silverpeas.war//org.silverpeas.core.web.mvc.webcomponent.WebComponentManager.perform(WebComponentManager.java:350)
at deployment.silverpeas.war//org.silverpeas.core.web.mvc.webcomponent.WebComponentRequestRouter.getDestination(WebComponentRequestRouter.java:133)
at deployment.silverpeas.war//org.silverpeas.core.web.mvc.webcomponent.WebComponentRequestRouter.getDestination(WebComponentRequestRouter.java:47)
at deployment.silverpeas.war//org.silverpeas.core.web.mvc.route.ComponentRequestRouter.computeNextDestination(ComponentRequestRouter.java:263)
at deployment.silverpeas.war//org.silverpeas.core.web.mvc.route.ComponentRequestRouter.computeDestination(ComponentRequestRouter.java:228)
at deployment.silverpeas.war//org.silverpeas.core.web.mvc.route.ComponentRequestRouter.doPost(ComponentRequestRouter.java:161)
at deployment.silverpeas.war//org.silverpeas.core.web.mvc.webcomponent.WebComponentRequestRouter.doPost(WebComponentRequestRouter.java:118)
at javax.servlet.api@2.0.0.Final//javax.servlet.http.HttpServlet.service(HttpServlet.java:523)
at deployment.silverpeas.war//org.silverpeas.core.web.mvc.webcomponent.SilverpeasHttpServlet.service(SilverpeasHttpServlet.java:58)
at deployment.silverpeas.war//org.silverpeas.core.web.mvc.webcomponent.SilverpeasAuthenticatedHttpServlet.service(SilverpeasAuthenticatedHttpServlet.java:79)
at javax.servlet.api@2.0.0.Final//javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
at io.undertow.websocket@2.2.19.Final//io.undertow.websockets.jsr.JsrWebSocketFilter.doFilter(JsrWebSocketFilter.java:173)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at deployment.silverpeas.war//org.silverpeas.components.whitepages.filters.ComponentRequestRouterFilter.doFilter(ComponentRequestRouterFilter.java:71)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at deployment.silverpeas.war//org.silverpeas.core.web.filter.MassiveWebSecurityFilter.doFilter(MassiveWebSecurityFilter.java:135)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at deployment.silverpeas.war//org.silverpeas.core.web.filter.WebCORSFilter.doFilter(WebCORSFilter.java:81)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at deployment.silverpeas.war//org.silverpeas.web.filter.InternetExplorerAntiCompatibilityFilter.doFilter(InternetExplorerAntiCompatibilityFilter.java:50)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at deployment.silverpeas.war//org.silverpeas.web.token.SessionSynchronizerTokenValidator.doFilter(SessionSynchronizerTokenValidator.java:104)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at deployment.silverpeas.war//org.silverpeas.core.web.filter.MessageFilter.doFilter(MessageFilter.java:73)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at deployment.silverpeas.war//org.silverpeas.web.filter.SilverpeasExceptionLoggingFilter.doFilter(SilverpeasExceptionLoggingFilter.java:49)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at deployment.silverpeas.war//org.silverpeas.web.filter.ResourceCacheFilter.doFilter(ResourceCacheFilter.java:55)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at deployment.silverpeas.war//org.silverpeas.web.filter.HttpServletRequestDecoration.doFilter(HttpServletRequestDecoration.java:59)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at deployment.silverpeas.war//org.silverpeas.web.filter.CharsetFilter.doFilter(CharsetFilter.java:73)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at org.wildfly.security.elytron-web.undertow-server@1.10.1.Final//org.wildfly.elytron.web.undertow.server.ElytronRunAsHandler.lambda$handleRequest$1(ElytronRunAsHandler.java:68)
at org.wildfly.security.elytron-base@1.19.1.Final//org.wildfly.security.auth.server.FlexibleIdentityAssociation.runAsFunctionEx(FlexibleIdentityAssociation.java:103)
at org.wildfly.security.elytron-base@1.19.1.Final//org.wildfly.security.auth.server.Scoped.runAsFunctionEx(Scoped.java:161)
at org.wildfly.security.elytron-base@1.19.1.Final//org.wildfly.security.auth.server.Scoped.runAs(Scoped.java:73)
at org.wildfly.security.elytron-web.undertow-server@1.10.1.Final//org.wildfly.elytron.web.undertow.server.ElytronRunAsHandler.handleRequest(ElytronRunAsHandler.java:67)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.core@2.2.19.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.core@2.2.19.Final//io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:53)
at io.undertow.core@2.2.19.Final//io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:59)
at io.undertow.core@2.2.19.Final//io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
at org.wildfly.security.elytron-web.undertow-server-servlet@1.10.1.Final//org.wildfly.elytron.web.undertow.server.servlet.CleanUpHandler.handleRequest(CleanUpHandler.java:38)
at io.undertow.core@2.2.19.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.extension.undertow@26.1.2.Final//org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
at io.undertow.core@2.2.19.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.extension.undertow@26.1.2.Final//org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
at io.undertow.core@2.2.19.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at org.wildfly.extension.undertow@26.1.2.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1544)
at org.wildfly.extension.undertow@26.1.2.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1544)
at org.wildfly.extension.undertow@26.1.2.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1544)
at org.wildfly.extension.undertow@26.1.2.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1544)
at org.wildfly.extension.undertow@26.1.2.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1544)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
at io.undertow.servlet@2.2.19.Final//io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
at io.undertow.core@2.2.19.Final//io.undertow.server.Connectors.executeRootHandler(Connectors.java:387)
at io.undertow.core@2.2.19.Final//io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
at org.jboss.xnio@3.8.7.Final//org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: javax.xml.bind.UnmarshalException
- with linked exception:
[org.xml.sax.SAXParseException; lineNumber: 23; columnNumber: 753; An invalid XML character (Unicode: 0x0) was found in the element content of the document.]
at javax.xml.bind.api@2.3.3//javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(AbstractUnmarshallerImpl.java:310)
at com.sun.xml.bind@2.3.3-b02//com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(UnmarshallerImpl.java:548)
at com.sun.xml.bind@2.3.3-b02//com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:234)
at com.sun.xml.bind@2.3.3-b02//com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:199)
at javax.xml.bind.api@2.3.3//javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:140)
at javax.xml.bind.api@2.3.3//javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:179)
at deployment.silverpeas.war//org.silverpeas.core.contribution.content.ddwe.model.DragAndDropWebEditorStore$Container.loadFrom(DragAndDropWebEditorStore.java:324)
... 106 more
Caused by: org.xml.sax.SAXParseException; lineNumber: 23; columnNumber: 753; An invalid XML character (Unicode: 0x0) was found in the element content of the document.
at org.apache.xerces@2.12.0.SP03//org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:201)
at org.apache.xerces@2.12.0.SP03//org.apache.xerces.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:175)
at org.apache.xerces@2.12.0.SP03//org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:398)
at org.apache.xerces@2.12.0.SP03//org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325)
at org.apache.xerces@2.12.0.SP03//org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:282)
at org.apache.xerces@2.12.0.SP03//org.apache.xerces.impl.XMLScanner.reportFatalError(XMLScanner.java:1496)
at org.apache.xerces@2.12.0.SP03//org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1632)
at org.apache.xerces@2.12.0.SP03//org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:324)
at org.apache.xerces@2.12.0.SP03//org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:875)
at org.apache.xerces@2.12.0.SP03//org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:798)
at org.apache.xerces@2.12.0.SP03//org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:108)
at org.apache.xerces@2.12.0.SP03//org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1198)
at org.apache.xerces@2.12.0.SP03//org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:564)
at com.sun.xml.bind@2.3.3-b02//com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:228)
... 110 more
Mis à jour par Miguel Moquillon il y a environ 2 ans
A savoir que dans les tests, je suis en mode réseau pourri
Mis à jour par Yohann Chastagnier il y a environ 2 ans
Oui, ce n'est pas possible de récupérer les cas vérolés.
Mis à jour par Miguel Moquillon il y a environ 2 ans
- Statut changé de Integration in progress... à Closed
Intégré dans les branches 6.3.x et master.