[MAGNOLIA-603] Export fails due to "invalid XML character" found in content Created: 29/Nov/05  Updated: 23/Jan/13  Resolved: 12/Jul/06

Status: Closed
Project: Magnolia
Component/s: core
Affects Version/s: 2.1.3
Fix Version/s: 3.0 RC3

Type: Bug Priority: Minor
Reporter: Thomas Duffey Assignee: Fabrizio Giustina
Resolution: Fixed Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Bug DoR:
[ ]* Steps to reproduce, expected, and actual results filled
[ ]* Affected version filled
Date of First Response:

 Description   

Magnolia's XML export feature fails to work when a content author adds "invalid XML characters" to a paragraph. I'm not sure which characters are invalid, yet, but will work on a test. The export feature needs to handle this more gracefully and in the worst case should simply remove characters it does not understand.

org.apache.commons.lang.exception.NestableRuntimeException: javax.jcr.RepositoryException: java.io.IOException: The character '\' is an invalid XML character: java.io.IOException: The character '\' is an invalid XML character
info.magnolia.cms.servlets.ImportExportServlet.executeExport(ImportExportServlet.java:405)
info.magnolia.cms.servlets.ImportExportServlet.doGet(ImportExportServlet.java:141)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
info.magnolia.cms.filters.SecurityFilter.doFilter(SecurityFilter.java:73)
info.magnolia.cms.filters.MultipartRequestFilter.doFilter(MultipartRequestFilter.java:80)
info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:65)



 Comments   
Comment by Sameer Charles [ 16/May/06 ]

we use export/import provided by jcr implementation.
perhaps we can use a ContentFilter to escape any invalid char

Comment by Yves-Marie DANIEL [ 10/Jul/06 ]

I have the same problem :when exporting :

org.apache.commons.lang.exception.NestableRuntimeException: javax.jcr.RepositoryException: java.io.IOException:
The character ' ' is an invalid XML character

It is strange, since this exception appears when I want to export even things i have not modified, and the character ' ' (I think its "space") is pretty hard to remove...

Comment by Yves-Marie DANIEL [ 10/Jul/06 ]

In fact, the character ' ' is not space, its a character i can't copy, so i put space to show you. It must be some kind of special character, but where did it come from ??? I didn't write it, and with the defaut magnolia 3RC, export works...

Thank you !

Comment by Yves-Marie DANIEL [ 10/Jul/06 ]

Found which character it is : its "�" a character who doesn"t exist i think, so there is an exception. Someone know from where it could come ?
Thanks

Comment by Fabrizio Giustina [ 10/Jul/06 ]

could you post a FULL stacktrace (till the root exception)?
I need to find out which parser is complaining about that char (if it's in the magnolia or jackrabbit code)

Comment by Yves-Marie DANIEL [ 10/Jul/06 ]

I use magnolia in french (maybe problems with french characters).

2006-07-10 10:01:25 StandardWrapperValve[ImportExportServlet]: "Servlet.service()" pour la servlet ImportExportServlet a généré une exception
org.apache.commons.lang.exception.NestableRuntimeException: javax.jcr.RepositoryException: java.io.IOException: The character ' ' is an invalid XML character: java.io.IOException: The character ' ' is an invalid XML character
at info.magnolia.cms.core.ie.DataTransporter.executeExport(DataTransporter.java:246)
at info.magnolia.cms.servlets.ImportExportServlet.executeExport(ImportExportServlet.java:388)
at info.magnolia.cms.servlets.ImportExportServlet.doGet(ImportExportServlet.java:121)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at info.magnolia.cms.filters.UnsetContextFilter.doFilter(UnsetContextFilter.java:44)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at info.magnolia.cms.security.SecurityFilter.doFilter(SecurityFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at info.magnolia.cms.filters.MultipartRequestFilter.doFilter(MultipartRequestFilter.java:80)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:66)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:536)
Caused by: javax.jcr.RepositoryException: java.io.IOException: The character ' ' is an invalid XML character: java.io.IOException: The character ' ' is an invalid XML character
at org.apache.jackrabbit.core.SessionImpl.exportSystemView(SessionImpl.java:1147)
at info.magnolia.cms.core.ie.DataTransporter.parseAndFormat(DataTransporter.java:280)
at info.magnolia.cms.core.ie.DataTransporter.executeExport(DataTransporter.java:242)
... 40 more
Caused by: java.io.IOException: java.io.IOException: The character ' ' is an invalid XML character
at org.apache.jackrabbit.core.xml.SysViewSAXEventGenerator.entering(SysViewSAXEventGenerator.java:206)
at org.apache.jackrabbit.core.xml.AbstractSAXEventGenerator.process(AbstractSAXEventGenerator.java:267)
at org.apache.jackrabbit.core.xml.AbstractSAXEventGenerator.process(AbstractSAXEventGenerator.java:238)
at org.apache.jackrabbit.core.xml.AbstractSAXEventGenerator.process(AbstractSAXEventGenerator.java:250)
at org.apache.jackrabbit.core.xml.AbstractSAXEventGenerator.process(AbstractSAXEventGenerator.java:250)
at org.apache.jackrabbit.core.xml.AbstractSAXEventGenerator.process(AbstractSAXEventGenerator.java:250)
at org.apache.jackrabbit.core.xml.AbstractSAXEventGenerator.process(AbstractSAXEventGenerator.java:250)
at org.apache.jackrabbit.core.xml.AbstractSAXEventGenerator.process(AbstractSAXEventGenerator.java:250)
at org.apache.jackrabbit.core.xml.AbstractSAXEventGenerator.process(AbstractSAXEventGenerator.java:250)
at org.apache.jackrabbit.core.xml.AbstractSAXEventGenerator.process(AbstractSAXEventGenerator.java:250)
at org.apache.jackrabbit.core.xml.AbstractSAXEventGenerator.process(AbstractSAXEventGenerator.java:250)
at org.apache.jackrabbit.core.xml.AbstractSAXEventGenerator.serialize(AbstractSAXEventGenerator.java:150)
at org.apache.jackrabbit.core.SessionImpl.exportSystemView(SessionImpl.java:1130)
at org.apache.jackrabbit.core.SessionImpl.exportSystemView(SessionImpl.java:1144)
... 42 more

Comment by Yves-Marie DANIEL [ 11/Jul/06 ]

In fact, the exception was on the beta version on magnolia3. I am restarting configuration on a magnolia 3 RC, i've remade maybe 1/3 of the configuration, but there is no exception yet. I'll tell you if the problem was only on the beta.

Comment by Yves-Marie DANIEL [ 12/Jul/06 ]

I've reconfigured the whole website with the same templates, styles, javascripts than the old one (on the beta version on magnolia)... and the export works on RC3 ! Don't understant what was the problem, but i had to reconfigured every dialog, paragraph, templates, users... That was very long ! Maybe there is a way to export anyway ?

Comment by Philipp Bracher [ 12/Jul/06 ]

As I understood this bug is fixed.

Comment by Sami Honkonen [ 26/Jul/06 ]

Nope, the bug is still exists in 3.0 RC3 (Snapshot: 24.07.2006 11:02:14).

Generated at Mon Feb 12 03:19:04 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.