You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2023/06/01 20:10:40 UTC

[tomcat] branch 9.0.x updated: Align with 11.0.x and 10.1.x

This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/9.0.x by this push:
     new 5eca4adace Align with 11.0.x and 10.1.x
5eca4adace is described below

commit 5eca4adace93e7e009ddc74e7b0f0c88298ba24e
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu Jun 1 21:10:33 2023 +0100

    Align with 11.0.x and 10.1.x
---
 java/org/apache/catalina/connector/CoyoteAdapter.java  |  5 ++++-
 .../apache/catalina/connector/CoyoteInputStream.java   |  2 ++
 .../apache/catalina/connector/CoyoteOutputStream.java  |  2 ++
 java/org/apache/catalina/connector/Response.java       | 18 +++++-------------
 java/org/apache/catalina/connector/ResponseFacade.java |  5 ++---
 5 files changed, 15 insertions(+), 17 deletions(-)

diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java b/java/org/apache/catalina/connector/CoyoteAdapter.java
index 6693d9cee7..c0eb3307cd 100644
--- a/java/org/apache/catalina/connector/CoyoteAdapter.java
+++ b/java/org/apache/catalina/connector/CoyoteAdapter.java
@@ -890,7 +890,10 @@ public class CoyoteAdapter implements Adapter {
         req.decodedURI().toBytes();
 
         ByteChunk uriBC = req.decodedURI().getByteChunk();
-        int semicolon = uriBC.indexOf(';', 0);
+        // The first character must always be '/' so start search at position 1.
+        // If the first character is ';' the URI will be rejected at the
+        // normalization stage
+        int semicolon = uriBC.indexOf(';', 1);
         // Performance optimisation. Return as soon as it is known there are no
         // path parameters;
         if (semicolon == -1) {
diff --git a/java/org/apache/catalina/connector/CoyoteInputStream.java b/java/org/apache/catalina/connector/CoyoteInputStream.java
index 4432eb5a89..c24ccab8ca 100644
--- a/java/org/apache/catalina/connector/CoyoteInputStream.java
+++ b/java/org/apache/catalina/connector/CoyoteInputStream.java
@@ -21,6 +21,7 @@ import java.nio.ByteBuffer;
 import java.security.AccessController;
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
+import java.util.Objects;
 
 import javax.servlet.ReadListener;
 import javax.servlet.ServletInputStream;
@@ -145,6 +146,7 @@ public class CoyoteInputStream extends ServletInputStream {
      * @throws IOException if an input or output exception has occurred
      */
     public int read(final ByteBuffer b) throws IOException {
+        Objects.requireNonNull(b);
         checkNonBlockingRead();
 
         if (SecurityUtil.isPackageProtectionEnabled()) {
diff --git a/java/org/apache/catalina/connector/CoyoteOutputStream.java b/java/org/apache/catalina/connector/CoyoteOutputStream.java
index 71fbe7d18f..a6cb729b9e 100644
--- a/java/org/apache/catalina/connector/CoyoteOutputStream.java
+++ b/java/org/apache/catalina/connector/CoyoteOutputStream.java
@@ -18,6 +18,7 @@ package org.apache.catalina.connector;
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
+import java.util.Objects;
 
 import javax.servlet.ServletOutputStream;
 import javax.servlet.WriteListener;
@@ -101,6 +102,7 @@ public class CoyoteOutputStream extends ServletOutputStream {
 
 
     public void write(ByteBuffer from) throws IOException {
+        Objects.requireNonNull(from);
         boolean nonBlocking = checkNonBlockingWrite();
         ob.write(from);
         if (nonBlocking) {
diff --git a/java/org/apache/catalina/connector/Response.java b/java/org/apache/catalina/connector/Response.java
index eea0919c8d..3f5e2a0b45 100644
--- a/java/org/apache/catalina/connector/Response.java
+++ b/java/org/apache/catalina/connector/Response.java
@@ -769,10 +769,10 @@ public class Response implements HttpServletResponse {
      * Overrides the name of the character encoding used in the body of the request. This method must be called prior to
      * reading request parameters or reading input using getReader().
      *
-     * @param charset String containing the name of the character encoding.
+     * @param encoding String containing the name of the character encoding.
      */
     @Override
-    public void setCharacterEncoding(String charset) {
+    public void setCharacterEncoding(String encoding) {
 
         if (isCommitted()) {
             return;
@@ -790,12 +790,12 @@ public class Response implements HttpServletResponse {
         }
 
         try {
-            getCoyoteResponse().setCharacterEncoding(charset);
+            getCoyoteResponse().setCharacterEncoding(encoding);
         } catch (UnsupportedEncodingException e) {
-            log.warn(sm.getString("coyoteResponse.encoding.invalid", charset), e);
+            log.warn(sm.getString("coyoteResponse.encoding.invalid", encoding), e);
             return;
         }
-        if (charset == null) {
+        if (encoding == null) {
             isCharacterEncodingSet = false;
         } else {
             isCharacterEncodingSet = true;
@@ -1284,14 +1284,6 @@ public class Response implements HttpServletResponse {
     }
 
 
-    /**
-     * Send a temporary redirect to the specified redirect location URL.
-     *
-     * @param location Location URL to redirect to
-     *
-     * @exception IllegalStateException if this response has already been committed
-     * @exception IOException           if an input/output error occurs
-     */
     @Override
     public void sendRedirect(String location) throws IOException {
         sendRedirect(location, SC_FOUND);
diff --git a/java/org/apache/catalina/connector/ResponseFacade.java b/java/org/apache/catalina/connector/ResponseFacade.java
index 5965979f56..ba6abba030 100644
--- a/java/org/apache/catalina/connector/ResponseFacade.java
+++ b/java/org/apache/catalina/connector/ResponseFacade.java
@@ -114,7 +114,6 @@ public class ResponseFacade implements HttpServletResponse {
 
     // ----------------------------------------------- Class/Instance Variables
 
-
     /**
      * The string manager for this package.
      */
@@ -473,9 +472,9 @@ public class ResponseFacade implements HttpServletResponse {
 
 
     @Override
-    public void setCharacterEncoding(String arg0) {
+    public void setCharacterEncoding(String encoding) {
         checkFacade();
-        response.setCharacterEncoding(arg0);
+        response.setCharacterEncoding(encoding);
     }
 
     @Override


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org