https://bz.apache.org/bugzilla/show_bug.cgi?id=65921

            Bug ID: 65921
           Summary: Null pointer exception if RewriteRule attempt to set
                    mime type
           Product: Tomcat 9
           Version: 9.0.55
          Hardware: PC
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Catalina
          Assignee: dev@tomcat.apache.org
          Reporter: richard.ev...@blueallegro.net
  Target Milestone: -----

A rewrite rule like:

RewriteRule ^/path/.*$ - [T=text/xml]

fails with a NullPointerException because the contentTypeMB field in the
Request object has not initialized.  Request.setContentType should initialize
contentTypeMB, or the rewrite valve should call getContentType first.  The
former is preferable in case there is no content type in the request.

This always happens with the HTTP/1.1 connector.  With the AJP connector the
exeception occurs if the request does not contain a Content-Type header.

Backtrace:

        java.lang.NullPointerException: Cannot invoke
"org.apache.tomcat.util.buf.MessageBytes.setString(String)" because
"this.contentTypeMB" is null
                at org.apache.coyote.Request.setContentType(Request.java:465)
                at
org.apache.catalina.connector.Request.setContentType(Request.java:1057)
                at
org.apache.catalina.valves.rewrite.RewriteValve.invoke(RewriteValve.java:448)
                at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
                at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
                at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)
                at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
                at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
                at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)
                at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)
                at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
                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:833)

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to