Uploaded image for project: 'Magnolia'
  1. Magnolia
  2. MAGNOLIA-9284

Unicode character cannot be encoded as it is outside the permitted range

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Neutral
    • None
    • 6.2.42
    • None
    • None

    Description

      There are certain situations which characters sets, such as asian sets, where we are seeing a stack trace in the log (catalina.out) originating from tomcat.

      Reproduce

      • Enable UTF-8 in magnolia property file.
         magnolia.utf8.enabled=true 
      • Upload a image with Chinese name. For example:
      • Try to request the image using a direct link --> http://localhost:8080/magnoliaAuthor/test/银色表带.png
      • Check the catalina.out. Note: this trace cannot be seen from Log Tools app or any of the log files in MAGNOLIA_HOME/logs.

      Actual
      Stack Trace produce in catalina.out.

      31-Jan-2024 14:14:21.219 WARNING [http-nio-8080-exec-6] org.apache.coyote.http11.Http11Processor.prepareResponse The HTTP response header [Content-Disposition] with value [attachment; filename="银色表带.png"] has been removed from the response because it is invalid
      	java.lang.IllegalArgumentException: The Unicode character [银] at code point [38,134] cannot be encoded as it is outside the permitted range of 0 to 255
      		at org.apache.tomcat.util.buf.MessageBytes.toBytesSimple(MessageBytes.java:310)
      		at org.apache.tomcat.util.buf.MessageBytes.toBytes(MessageBytes.java:283)
      		at org.apache.coyote.http11.Http11OutputBuffer.write(Http11OutputBuffer.java:389)
      		at org.apache.coyote.http11.Http11OutputBuffer.sendHeader(Http11OutputBuffer.java:368)
      		at org.apache.coyote.http11.Http11Processor.prepareResponse(Http11Processor.java:1048)
      		at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:376)
      		at org.apache.coyote.Response.action(Response.java:207)
      		at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:187)
      		at org.apache.coyote.Response.doWrite(Response.java:606)
      		at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:335)
      		at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:777)
      		at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:680)
      		at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:383)
      		at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:361)
      		at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:97)
      		at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1488)
      		at org.apache.commons.io.IOUtils.copy(IOUtils.java:1107)
      		at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1460)
      		at info.magnolia.dam.core.download.DamDownloadServlet.handleResourceRequest(DamDownloadServlet.java:188)
      		at info.magnolia.dam.core.download.DamDownloadServlet.process(DamDownloadServlet.java:131)
      		at info.magnolia.dam.core.download.DamDownloadServlet.doGet(DamDownloadServlet.java:106)
      		at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)
      		at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
      		at info.magnolia.cms.filters.ServletDispatchingFilter.doFilter(ServletDispatchingFilter.java:148)
      		at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:75)
      		at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:58)
      		at info.magnolia.module.cache.executor.CompositeExecutor.processCacheRequest(CompositeExecutor.java:66)
      		at info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:164)
      		at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:85)
      		at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.virtualuri.VirtualUriFilter.doFilter(VirtualUriFilter.java:108)
      		at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.cms.filters.RangeSupportFilter.doFilter(RangeSupportFilter.java:80)
      		at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:57)
      		at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.multisite.filters.CrossSiteSecurityFilter.doFilter(CrossSiteSecurityFilter.java:104)
      		at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.cors.AbstractCorsFilter.doFilter(AbstractCorsFilter.java:77)
      		at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
      		at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:79)
      		at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
      		at info.magnolia.cms.security.SecurityCallbackFilter.doFilter(SecurityCallbackFilter.java:86)
      		at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:94)
      		at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.module.site.filters.SiteMergeFilter.doFilter(SiteMergeFilter.java:115)
      		at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.multisite.filters.MultiSiteFilter.doFilter(MultiSiteFilter.java:120)
      		at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.cms.filters.MultiChannelFilter.doFilter(MultiChannelFilter.java:83)
      		at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
      		at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:128)
      		at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.enterprise.registration.RegistrationFilter.doFilter(RegistrationFilter.java:92)
      		at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
      		at info.magnolia.cms.filters.UnicodeNormalizationFilter.doFilter(UnicodeNormalizationFilter.java:89)
      		at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.cms.filters.MultipartRequestFilter.doFilter(MultipartRequestFilter.java:164)
      		at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
      		at info.magnolia.personalization.preview.filter.PreviewFilter.doFilter(PreviewFilter.java:90)
      		at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81)
      		at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:155)
      		at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:128)
      		at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      		at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79)
      		at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:75)
      		at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85)
      		at info.magnolia.cms.filters.SafeDestroyMgnlFilterWrapper.doFilter(SafeDestroyMgnlFilterWrapper.java:107)
      		at info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:67)
      		at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:110)
      		at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:96)
      		at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
      		at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
      		at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
      		at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
      		at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
      		at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
      		at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
      		at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:670)
      		at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
      		at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
      		at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
      		at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
      		at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)
      		at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)
      		at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
      		at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
      		at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
      		at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      		at java.base/java.lang.Thread.run(Thread.java:834)
      

      Expected
      No stack trace from the request.

      Checklists

        Acceptance criteria

        Attachments

          Activity

            People

              Unassigned Unassigned
              dwei David Wei
              Nucleus
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:

                Checklists

                  Bug DoR
                  Task DoD