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

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 434d791c0a0263d883b356ce7800eeed37295bc9
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu May 20 13:23:55 2021 +0100

    Align with 10.0.x/9.0.x - avoid explicitly referenced anonymous classes
---
 .../apache/catalina/connector/ResponseFacade.java  | 34 +++++++++++++---------
 .../catalina/security/SecurityClassLoad.java       |  4 +--
 2 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/java/org/apache/catalina/connector/ResponseFacade.java 
b/java/org/apache/catalina/connector/ResponseFacade.java
index 252b990..4656076 100644
--- a/java/org/apache/catalina/connector/ResponseFacade.java
+++ b/java/org/apache/catalina/connector/ResponseFacade.java
@@ -84,6 +84,22 @@ public class ResponseFacade implements HttpServletResponse {
         }
     }
 
+    private static class FlushBufferPrivilegedAction implements 
PrivilegedExceptionAction<Void> {
+
+        private final Response response;
+
+        public FlushBufferPrivilegedAction(Response response) {
+            this.response = response;
+        }
+
+        @Override
+        public Void run() throws IOException {
+            response.setAppCommitted(true);
+            response.flushBuffer();
+            return null;
+        }
+    }
+
 
     // ----------------------------------------------------------- Constructors
 
@@ -280,22 +296,12 @@ public class ResponseFacade implements 
HttpServletResponse {
             return;
         }
 
-        if (SecurityUtil.isPackageProtectionEnabled()){
+        if (SecurityUtil.isPackageProtectionEnabled()) {
             try{
-                AccessController.doPrivileged(
-                        new PrivilegedExceptionAction<Void>(){
-
-                    @Override
-                    public Void run() throws IOException{
-                        response.setAppCommitted(true);
-
-                        response.flushBuffer();
-                        return null;
-                    }
-                });
-            } catch(PrivilegedActionException e){
+                AccessController.doPrivileged(new 
FlushBufferPrivilegedAction(response));
+            } catch(PrivilegedActionException e) {
                 Exception ex = e.getException();
-                if (ex instanceof IOException){
+                if (ex instanceof IOException) {
                     throw (IOException)ex;
                 }
             }
diff --git a/java/org/apache/catalina/security/SecurityClassLoad.java 
b/java/org/apache/catalina/security/SecurityClassLoad.java
index 57abb5d..144a869 100644
--- a/java/org/apache/catalina/security/SecurityClassLoad.java
+++ b/java/org/apache/catalina/security/SecurityClassLoad.java
@@ -127,7 +127,6 @@ public final class SecurityClassLoad {
 
     private static final void loadConnectorPackage(ClassLoader loader) throws 
Exception {
         final String basePackage = "org.apache.catalina.connector.";
-        loader.loadClass(basePackage + "CoyoteOutputStream");
         loader.loadClass(basePackage + 
"RequestFacade$GetAttributePrivilegedAction");
         loader.loadClass(basePackage + 
"RequestFacade$GetParameterMapPrivilegedAction");
         loader.loadClass(basePackage + 
"RequestFacade$GetRequestDispatcherPrivilegedAction");
@@ -143,9 +142,10 @@ public final class SecurityClassLoad {
         loader.loadClass(basePackage + 
"ResponseFacade$SetContentTypePrivilegedAction");
         loader.loadClass(basePackage + 
"ResponseFacade$DateHeaderPrivilegedAction");
         loader.loadClass(basePackage + 
"RequestFacade$GetSessionPrivilegedAction");
-        loadAnonymousInnerClasses(loader, basePackage + "ResponseFacade");
+        loader.loadClass(basePackage + 
"ResponseFacade$FlushBufferPrivilegedAction");
         loadAnonymousInnerClasses(loader, basePackage + "OutputBuffer");
         loadAnonymousInnerClasses(loader, basePackage + "CoyoteInputStream");
+        loader.loadClass(basePackage + "CoyoteOutputStream");
         loadAnonymousInnerClasses(loader, basePackage + "InputBuffer");
         loadAnonymousInnerClasses(loader, basePackage + "Response");
     }

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

Reply via email to