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 2021/06/03 16:47:38 UTC

[tomcat] branch main updated: No need for these internal classes to be package visible.

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

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


The following commit(s) were added to refs/heads/main by this push:
     new 13f85a8  No need for these internal classes to be package visible.
13f85a8 is described below

commit 13f85a87233564c1d1e8cb017bfc2415caab62b0
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu Jun 3 17:41:53 2021 +0100

    No need for these internal classes to be package visible.
    
    While the (removed in this commit) comments indicate that
    NoBodyOutputStream and NoBodyResponse were intended to be private to
    HttpServlet, there were implemented as package private. Refactor so they
    are private to HttpServlet.
---
 java/jakarta/servlet/http/HttpServlet.java | 245 ++++++++++++++---------------
 1 file changed, 118 insertions(+), 127 deletions(-)

diff --git a/java/jakarta/servlet/http/HttpServlet.java b/java/jakarta/servlet/http/HttpServlet.java
index 9c001b6..77e8c62 100644
--- a/java/jakarta/servlet/http/HttpServlet.java
+++ b/java/jakarta/servlet/http/HttpServlet.java
@@ -800,167 +800,158 @@ public abstract class HttpServlet extends GenericServlet {
             return true;
         }
     }
-}
 
 
-/*
- * A response wrapper for use in (dumb) "HEAD" support.
- * This just swallows that body, counting the bytes in order to set
- * the content length appropriately.  All other methods delegate to the
- * wrapped HTTP Servlet Response object.
- */
-// file private
-class NoBodyResponse extends HttpServletResponseWrapper {
-    private final NoBodyOutputStream noBody;
-    private PrintWriter writer;
-    private boolean didSetContentLength;
-
-    // file private
-    NoBodyResponse(HttpServletResponse r) {
-        super(r);
-        noBody = new NoBodyOutputStream(this);
-    }
+    /*
+     * A response wrapper for use in (dumb) "HEAD" support.
+     * This just swallows that body, counting the bytes in order to set
+     * the content length appropriately.  All other methods delegate to the
+     * wrapped HTTP Servlet Response object.
+     */
+    private static class NoBodyResponse extends HttpServletResponseWrapper {
+        private final NoBodyOutputStream noBody;
+        private PrintWriter writer;
+        private boolean didSetContentLength;
+
+        private NoBodyResponse(HttpServletResponse r) {
+            super(r);
+            noBody = new NoBodyOutputStream(this);
+        }
 
-    // file private
-    void setContentLength() {
-        if (!didSetContentLength) {
-            if (writer != null) {
-                writer.flush();
+        private void setContentLength() {
+            if (!didSetContentLength) {
+                if (writer != null) {
+                    writer.flush();
+                }
+                super.setContentLength(noBody.getContentLength());
             }
-            super.setContentLength(noBody.getContentLength());
         }
-    }
 
 
-    // SERVLET RESPONSE interface methods
-
-    @Override
-    public void setContentLength(int len) {
-        super.setContentLength(len);
-        didSetContentLength = true;
-    }
+        @Override
+        public void setContentLength(int len) {
+            super.setContentLength(len);
+            didSetContentLength = true;
+        }
 
-    @Override
-    public void setContentLengthLong(long len) {
-        super.setContentLengthLong(len);
-        didSetContentLength = true;
-    }
+        @Override
+        public void setContentLengthLong(long len) {
+            super.setContentLengthLong(len);
+            didSetContentLength = true;
+        }
 
-    @Override
-    public void setHeader(String name, String value) {
-        super.setHeader(name, value);
-        checkHeader(name);
-    }
+        @Override
+        public void setHeader(String name, String value) {
+            super.setHeader(name, value);
+            checkHeader(name);
+        }
 
-    @Override
-    public void addHeader(String name, String value) {
-        super.addHeader(name, value);
-        checkHeader(name);
-    }
+        @Override
+        public void addHeader(String name, String value) {
+            super.addHeader(name, value);
+            checkHeader(name);
+        }
 
-    @Override
-    public void setIntHeader(String name, int value) {
-        super.setIntHeader(name, value);
-        checkHeader(name);
-    }
+        @Override
+        public void setIntHeader(String name, int value) {
+            super.setIntHeader(name, value);
+            checkHeader(name);
+        }
 
-    @Override
-    public void addIntHeader(String name, int value) {
-        super.addIntHeader(name, value);
-        checkHeader(name);
-    }
+        @Override
+        public void addIntHeader(String name, int value) {
+            super.addIntHeader(name, value);
+            checkHeader(name);
+        }
 
-    private void checkHeader(String name) {
-        if ("content-length".equalsIgnoreCase(name)) {
-            didSetContentLength = true;
+        private void checkHeader(String name) {
+            if ("content-length".equalsIgnoreCase(name)) {
+                didSetContentLength = true;
+            }
         }
-    }
 
-    @Override
-    public ServletOutputStream getOutputStream() throws IOException {
-        return noBody;
-    }
+        @Override
+        public ServletOutputStream getOutputStream() throws IOException {
+            return noBody;
+        }
 
-    @Override
-    public PrintWriter getWriter() throws UnsupportedEncodingException {
+        @Override
+        public PrintWriter getWriter() throws UnsupportedEncodingException {
 
-        if (writer == null) {
-            OutputStreamWriter w;
+            if (writer == null) {
+                OutputStreamWriter w;
 
-            w = new OutputStreamWriter(noBody, getCharacterEncoding());
-            writer = new PrintWriter(w);
+                w = new OutputStreamWriter(noBody, getCharacterEncoding());
+                writer = new PrintWriter(w);
+            }
+            return writer;
         }
-        return writer;
     }
-}
 
 
-/*
- * Servlet output stream that gobbles up all its data.
- */
+    /*
+     * Servlet output stream that gobbles up all its data.
+     */
+    private static class NoBodyOutputStream extends ServletOutputStream {
 
-// file private
-class NoBodyOutputStream extends ServletOutputStream {
+        private static final String LSTRING_FILE = "jakarta.servlet.http.LocalStrings";
+        private static final ResourceBundle lStrings = ResourceBundle.getBundle(LSTRING_FILE);
 
-    private static final String LSTRING_FILE = "jakarta.servlet.http.LocalStrings";
-    private static final ResourceBundle lStrings = ResourceBundle.getBundle(LSTRING_FILE);
+        private final HttpServletResponse response;
+        private boolean flushed = false;
+        private int contentLength = 0;
 
-    private final HttpServletResponse response;
-    private boolean flushed = false;
-    private int contentLength = 0;
+        private NoBodyOutputStream(HttpServletResponse response) {
+            this.response = response;
+        }
 
-    // file private
-    NoBodyOutputStream(HttpServletResponse response) {
-        this.response = response;
-    }
+        private int getContentLength() {
+            return contentLength;
+        }
 
-    // file private
-    int getContentLength() {
-        return contentLength;
-    }
+        @Override
+        public void write(int b) throws IOException {
+            contentLength++;
+            checkCommit();
+        }
 
-    @Override
-    public void write(int b) throws IOException {
-        contentLength++;
-        checkCommit();
-    }
+        @Override
+        public void write(byte buf[], int offset, int len) throws IOException {
+            if (buf == null) {
+                throw new NullPointerException(
+                        lStrings.getString("err.io.nullArray"));
+            }
 
-    @Override
-    public void write(byte buf[], int offset, int len) throws IOException {
-        if (buf == null) {
-            throw new NullPointerException(
-                    lStrings.getString("err.io.nullArray"));
-        }
+            if (offset < 0 || len < 0 || offset+len > buf.length) {
+                String msg = lStrings.getString("err.io.indexOutOfBounds");
+                Object[] msgArgs = new Object[3];
+                msgArgs[0] = Integer.valueOf(offset);
+                msgArgs[1] = Integer.valueOf(len);
+                msgArgs[2] = Integer.valueOf(buf.length);
+                msg = MessageFormat.format(msg, msgArgs);
+                throw new IndexOutOfBoundsException(msg);
+            }
 
-        if (offset < 0 || len < 0 || offset+len > buf.length) {
-            String msg = lStrings.getString("err.io.indexOutOfBounds");
-            Object[] msgArgs = new Object[3];
-            msgArgs[0] = Integer.valueOf(offset);
-            msgArgs[1] = Integer.valueOf(len);
-            msgArgs[2] = Integer.valueOf(buf.length);
-            msg = MessageFormat.format(msg, msgArgs);
-            throw new IndexOutOfBoundsException(msg);
+            contentLength += len;
+            checkCommit();
         }
 
-        contentLength += len;
-        checkCommit();
-    }
-
-    @Override
-    public boolean isReady() {
-        // TODO SERVLET 3.1
-        return false;
-    }
+        @Override
+        public boolean isReady() {
+            // TODO SERVLET 3.1
+            return false;
+        }
 
-    @Override
-    public void setWriteListener(jakarta.servlet.WriteListener listener) {
-        // TODO SERVLET 3.1
-    }
+        @Override
+        public void setWriteListener(jakarta.servlet.WriteListener listener) {
+            // TODO SERVLET 3.1
+        }
 
-    private void checkCommit() throws IOException {
-        if (!flushed && contentLength > response.getBufferSize()) {
-            response.flushBuffer();
-            flushed = true;
+        private void checkCommit() throws IOException {
+            if (!flushed && contentLength > response.getBufferSize()) {
+                response.flushBuffer();
+                flushed = true;
+            }
         }
     }
 }

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