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 2017/04/05 13:12:04 UTC
svn commit: r1790237 - in /tomcat/trunk/java/org/apache/catalina:
connector/ResponseFacade.java security/SecurityClassLoad.java
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org