[zanata-bugs] [Bug 1098397] New: Unhandled exception in TMX export - invalid character in PCDATA

bugzilla at redhat.com bugzilla at redhat.com
Fri May 16 04:44:09 UTC 2014


https://bugzilla.redhat.com/show_bug.cgi?id=1098397

            Bug ID: 1098397
           Summary: Unhandled exception in TMX export - invalid character
                    in PCDATA
           Product: Zanata
           Version: development
         Component: Component-Logic
          Assignee: djansen at redhat.com
          Reporter: djansen at redhat.com
        QA Contact: zanata-qa at redhat.com
                CC: zanata-bugs at redhat.com



Created attachment 896163
  --> https://bugzilla.redhat.com/attachment.cgi?id=896163&action=edit
Test content file

Description of problem:
Control characters (e.g. \014 aka ^L aka form feed) are recognised by the
transunit parser and result in invalid characters added to the translatable
sources
This breaks things like export to TMX which use XML - that can't handle those
characters

Version-Release number of selected component (if applicable):
dev

How reproducible:
Moderate always

Steps to Reproduce:
1. create a project, version and upload a file containing a ^L character
(attached)
2. click "Export to TMX" in the menu

Actual results:
Exception error page

Expected results:
This shouldn't happen!

Additional info:
14:27:23,351 INFO  [org.zanata.rest.service.TMXStreamingOutput]
(http-/127.0.0.1:8080-4) streaming output started for:
getProjectIterationTranslationMemory-zanata-the-hunger-games-th-hunger-games-allLocales.tmx
14:27:23,550 INFO  [org.zanata.rest.service.TMXStreamingOutput]
(http-/127.0.0.1:8080-4) streaming output stopped for:
getProjectIterationTranslationMemory-zanata-the-hunger-games-th-hunger-games-allLocales.tmx,
TU count=739
14:27:23,550 WARN  [org.jboss.resteasy.core.SynchronousDispatcher]
(http-/127.0.0.1:8080-4) Failed executing GET
/tm/projects/the-hunger-games/iterations/th-hunger-games:
org.jboss.resteasy.spi.WriterException: nu.xom.IllegalCharacterDataException:
0xc is not allowed in XML content
    at org.jboss.resteasy.core.ServerResponse.writeTo(ServerResponse.java:262)
[resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
    at
org.jboss.resteasy.core.SynchronousDispatcher.writeJaxrsResponse(SynchronousDispatcher.java:602)
[resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
    at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:528)
[resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
    at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)
[resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
    at
org.zanata.rest.RestLimitingSynchronousDispatcher.access$001(RestLimitingSynchronousDispatcher.java:30)
[classes:]
    at
org.zanata.rest.RestLimitingSynchronousDispatcher$1.run(RestLimitingSynchronousDispatcher.java:67)
[classes:]
    at
org.zanata.limits.RestCallLimiter.acquireActivePermit(RestCallLimiter.java:91)
[classes:]
    at
org.zanata.limits.RestCallLimiter.tryAcquireAndRun(RestCallLimiter.java:66)
[classes:]
    at
org.zanata.limits.RateLimitingProcessor.process(RateLimitingProcessor.java:45)
[classes:]
    at
org.zanata.limits.RateLimitingProcessor.processApiKey(RateLimitingProcessor.java:36)
[classes:]
    at
org.zanata.rest.RestLimitingSynchronousDispatcher.invoke(RestLimitingSynchronousDispatcher.java:75)
[classes:]
    at
org.jboss.seam.resteasy.ResteasyResourceAdapter$1.process(ResteasyResourceAdapter.java:145)
[jboss-seam-resteasy-2.3.1.Final.jar:2.3.1.Final]
    at
org.jboss.seam.servlet.ContextualHttpServletRequest.run(ContextualHttpServletRequest.java:65)
[jboss-seam-2.3.1.Final.jar:2.3.1.Final]
    at
org.jboss.seam.resteasy.ResteasyResourceAdapter.getResource(ResteasyResourceAdapter.java:120)
[jboss-seam-resteasy-2.3.1.Final.jar:2.3.1.Final]
    at
org.jboss.seam.servlet.SeamResourceServlet.service(SeamResourceServlet.java:80)
[jboss-seam-2.3.1.Final.jar:2.3.1.Final]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
[jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:832)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:620)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:553)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:482)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:213)
[urlrewritefilter-4.0.4.jar:4.0.4]
    at
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171)
[urlrewritefilter-4.0.4.jar:4.0.4]
    at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
[urlrewritefilter-4.0.4.jar:4.0.4]
    at
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
[urlrewritefilter-4.0.4.jar:4.0.4]
    at
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:389)
[urlrewritefilter-4.0.4.jar:4.0.4]
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
[jboss-seam-2.3.1.Final.jar:2.3.1.Final]
    at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60)
[jboss-seam-2.3.1.Final.jar:2.3.1.Final]
    at
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
[jboss-seam-2.3.1.Final.jar:2.3.1.Final]
    at
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73)
[jboss-seam-2.3.1.Final.jar:2.3.1.Final]
    at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
[jboss-seam-2.3.1.Final.jar:2.3.1.Final]
    at
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
[jboss-seam-2.3.1.Final.jar:2.3.1.Final]
    at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
[jboss-seam-2.3.1.Final.jar:2.3.1.Final]
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.zanata.seam.interceptor.MonitoringWrapper.doFilter(MonitoringWrapper.java:68)
[classes:]
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.zanata.servlet.GWTCacheControlFilter.doFilter(GWTCacheControlFilter.java:61)
[classes:]
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.zanata.servlet.MDCInsertingServletFilter.doFilter(MDCInsertingServletFilter.java:58)
[classes:]
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
[jboss-as-jpa-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
    at
org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
[jboss-as-jpa-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
    at
org.jboss.security.negotiation.NegotiationAuthenticator$WrapperValve.invoke(NegotiationAuthenticator.java:336)
[jboss-negotiation-common-2.2.5.Final-redhat-1.jar:2.2.5.Final-redhat-1]
    at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:389)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
[jboss-as-web-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
    at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
    at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_55]
Caused by: nu.xom.IllegalCharacterDataException: 0xc is not allowed in XML
content
    at nu.xom.Verifier.throwIllegalCharacterDataException(Unknown Source)
[xom-1.2.5.jar:1.2.5]
    at nu.xom.Verifier.checkPCDATA(Unknown Source) [xom-1.2.5.jar:1.2.5]
    at nu.xom.Text._setValue(Unknown Source) [xom-1.2.5.jar:1.2.5]
    at nu.xom.Text.<init>(Unknown Source) [xom-1.2.5.jar:1.2.5]
    at nu.xom.Element.appendChild(Unknown Source) [xom-1.2.5.jar:1.2.5]
    at
org.zanata.rest.service.TranslationsTMXExportStrategy.buildSourceTUV(TranslationsTMXExportStrategy.java:156)
[classes:]
    at
org.zanata.rest.service.TranslationsTMXExportStrategy.buildTUVs(TranslationsTMXExportStrategy.java:121)
[classes:]
    at
org.zanata.rest.service.TranslationsTMXExportStrategy.buildTU(TranslationsTMXExportStrategy.java:100)
[classes:]
    at
org.zanata.rest.service.TranslationsTMXExportStrategy.buildTU(TranslationsTMXExportStrategy.java:51)
[classes:]
    at
org.zanata.rest.service.TMXStreamingOutput.writeIfComplete(TMXStreamingOutput.java:195)
[classes:]
    at
org.zanata.rest.service.TMXStreamingOutput.write(TMXStreamingOutput.java:157)
[classes:]
    at
org.jboss.resteasy.plugins.providers.StreamingOutputProvider.writeTo(StreamingOutputProvider.java:32)
[resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
    at
org.jboss.resteasy.plugins.providers.StreamingOutputProvider.writeTo(StreamingOutputProvider.java:17)
[resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
    at
org.jboss.resteasy.core.interception.MessageBodyWriterContextImpl.proceed(MessageBodyWriterContextImpl.java:117)
[resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
    at
org.zanata.rest.JsonPWriterInterceptor.write(JsonPWriterInterceptor.java:31)
[classes:]
    at
org.jboss.resteasy.core.interception.MessageBodyWriterContextImpl.proceed(MessageBodyWriterContextImpl.java:123)
[resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
    at
org.jboss.resteasy.plugins.providers.jackson.JacksonJsonpInterceptor.write(JacksonJsonpInterceptor.java:112)
[resteasy-jackson-provider-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
    at
org.jboss.resteasy.core.interception.MessageBodyWriterContextImpl.proceed(MessageBodyWriterContextImpl.java:123)
[resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
    at
org.jboss.resteasy.plugins.interceptors.encoding.GZIPEncodingInterceptor.write(GZIPEncodingInterceptor.java:104)
[resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
    at
org.jboss.resteasy.core.interception.MessageBodyWriterContextImpl.proceed(MessageBodyWriterContextImpl.java:123)
[resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
    at org.jboss.resteasy.core.ServerResponse.writeTo(ServerResponse.java:250)
[resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
    ... 61 more

-- 
You are receiving this mail because:
You are on the CC list for the bug.
Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=RIAbfxO58a&a=cc_unsubscribe




More information about the zanata-bugs mailing list