Author: markt Date: Wed Apr 5 13:12:04 2017 New Revision: 1790237 URL: http://svn.apache.org/viewvc?rev=1790237&view=rev Log: Partial fix for https://bz.apache.org/bugzilla/show_bug.cgi?id=47214 Replace explicitly referenced anonymous inner classes in ResponseFacade with named inner classes.
Modified: tomcat/trunk/java/org/apache/catalina/connector/ResponseFacade.java tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java Modified: tomcat/trunk/java/org/apache/catalina/connector/ResponseFacade.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/ResponseFacade.java?rev=1790237&r1=1790236&r2=1790237&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/ResponseFacade.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/ResponseFacade.java Wed Apr 5 13:12:04 2017 @@ -40,9 +40,7 @@ import org.apache.tomcat.util.res.String * @author Remy Maucherat */ @SuppressWarnings("deprecation") -public class ResponseFacade - implements HttpServletResponse { - +public class ResponseFacade implements HttpServletResponse { // ----------------------------------------------------------- DoPrivileged @@ -86,8 +84,24 @@ public class ResponseFacade } } - // ----------------------------------------------------------- Constructors + 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 /** * Construct a wrapper for the specified response. @@ -276,40 +290,25 @@ public class ResponseFacade @Override - public void flushBuffer() - throws IOException { + public void flushBuffer() throws IOException { if (isFinished()) { - // throw new IllegalStateException - // (/*sm.getString("responseFacade.finished")*/); 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; } } } else { response.setAppCommitted(true); - response.flushBuffer(); } - } Modified: tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java?rev=1790237&r1=1790236&r2=1790237&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java (original) +++ tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java Wed Apr 5 13:12:04 2017 @@ -230,7 +230,7 @@ public final class SecurityClassLoad { "RequestFacade$GetSessionPrivilegedAction"); loader.loadClass (basePackage + - "ResponseFacade$1"); + "ResponseFacade$FlushBufferPrivilegedAction"); loader.loadClass (basePackage + "OutputBuffer$1"); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org