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