jfarcand 2004/11/18 14:14:25 Modified: catalina/src/share/org/apache/coyote/tomcat5 Tag: TOMCAT_5_0 CoyoteInputStream.java CoyoteRequestFacade.java CoyoteResponse.java CoyoteResponseFacade.java InputBuffer.java OutputBuffer.java Log: When the package protection is not used, do not create the doPrivileged objects so we don't suffer the performance hit (15% faster with trade2 and this change). Also fixed a memory leak when security manager is turned on. Revision Changes Path No revision No revision 1.5.2.1 +6 -5 jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/Attic/CoyoteInputStream.java Index: CoyoteInputStream.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/Attic/CoyoteInputStream.java,v retrieving revision 1.5 retrieving revision 1.5.2.1 diff -u -r1.5 -r1.5.2.1 --- CoyoteInputStream.java 14 Apr 2004 00:14:22 -0000 1.5 +++ CoyoteInputStream.java 18 Nov 2004 22:14:24 -0000 1.5.2.1 @@ -24,6 +24,7 @@ import javax.servlet.ServletInputStream; +import org.apache.catalina.security.SecurityUtil; /** * This class handles reading bytes. @@ -65,7 +66,7 @@ public int read() throws IOException { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ Integer result = @@ -94,7 +95,7 @@ public int available() throws IOException { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ Integer result = (Integer)AccessController.doPrivileged( @@ -122,7 +123,7 @@ public int read(final byte[] b) throws IOException { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ Integer result = (Integer)AccessController.doPrivileged( @@ -153,7 +154,7 @@ public int read(final byte[] b, final int off, final int len) throws IOException { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ Integer result = (Integer)AccessController.doPrivileged( @@ -193,7 +194,7 @@ */ public void close() throws IOException { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ AccessController.doPrivileged( new PrivilegedExceptionAction(){ 1.7.2.1 +16 -14 jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/Attic/CoyoteRequestFacade.java Index: CoyoteRequestFacade.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/Attic/CoyoteRequestFacade.java,v retrieving revision 1.7 retrieving revision 1.7.2.1 diff -u -r1.7 -r1.7.2.1 --- CoyoteRequestFacade.java 2 Mar 2004 17:36:55 -0000 1.7 +++ CoyoteRequestFacade.java 18 Nov 2004 22:14:24 -0000 1.7.2.1 @@ -33,6 +33,8 @@ import org.apache.catalina.connector.RequestFacade; +import org.apache.catalina.security.SecurityUtil; + /** * Facade class that wraps a Coyote request object. * All methods are delegated to the wrapped request. @@ -216,7 +218,7 @@ public Enumeration getAttributeNames() { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ return (Enumeration)AccessController.doPrivileged( new GetAttributePrivilegedAction()); } else { @@ -226,7 +228,7 @@ public String getCharacterEncoding() { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ return (String)AccessController.doPrivileged( new GetCharacterEncodingPrivilegedAction()); } else { @@ -258,7 +260,7 @@ public String getParameter(String name) { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ return (String)AccessController.doPrivileged( new GetParameterPrivilegedAction(name)); } else { @@ -268,7 +270,7 @@ public Enumeration getParameterNames() { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ return (Enumeration)AccessController.doPrivileged( new GetParameterNamesPrivilegedAction()); } else { @@ -285,7 +287,7 @@ * Clone the returned array only if there is a security manager * in place, so that performance won't suffer in the nonsecure case */ - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ ret = (String[]) AccessController.doPrivileged( new GetParameterValuePrivilegedAction(name)); if (ret != null) { @@ -300,7 +302,7 @@ public Map getParameterMap() { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ return (Map)AccessController.doPrivileged( new GetParameterMapPrivilegedAction()); } else { @@ -356,7 +358,7 @@ public Locale getLocale() { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ return (Locale)AccessController.doPrivileged( new GetLocalePrivilegedAction()); } else { @@ -366,7 +368,7 @@ public Enumeration getLocales() { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ return (Enumeration)AccessController.doPrivileged( new GetLocalesPrivilegedAction()); } else { @@ -381,7 +383,7 @@ public RequestDispatcher getRequestDispatcher(String path) { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ return (RequestDispatcher)AccessController.doPrivileged( new GetRequestDispatcherPrivilegedAction(path)); } else { @@ -408,7 +410,7 @@ * Clone the returned array only if there is a security manager * in place, so that performance won't suffer in the nonsecure case */ - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ ret = (Cookie[])AccessController.doPrivileged( new GetCookiesPrivilegedAction()); if (ret != null) { @@ -433,7 +435,7 @@ public Enumeration getHeaders(String name) { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ return (Enumeration)AccessController.doPrivileged( new GetHeadersPrivilegedAction(name)); } else { @@ -443,7 +445,7 @@ public Enumeration getHeaderNames() { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ return (Enumeration)AccessController.doPrivileged( new GetHeaderNamesPrivilegedAction()); } else { @@ -519,7 +521,7 @@ public HttpSession getSession(boolean create) { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ return (HttpSession)AccessController. doPrivileged(new GetSessionPrivilegedAction(create)); } else { 1.18.2.2 +5 -4 jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/Attic/CoyoteResponse.java Index: CoyoteResponse.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/Attic/CoyoteResponse.java,v retrieving revision 1.18.2.1 retrieving revision 1.18.2.2 diff -u -r1.18.2.1 -r1.18.2.2 --- CoyoteResponse.java 23 Aug 2004 19:22:20 -0000 1.18.2.1 +++ CoyoteResponse.java 18 Nov 2004 22:14:24 -0000 1.18.2.2 @@ -47,6 +47,7 @@ import org.apache.catalina.util.CharsetMapper; import org.apache.catalina.util.DateTool; import org.apache.catalina.util.StringManager; +import org.apache.catalina.security.SecurityUtil; import org.apache.coyote.Response; import org.apache.tomcat.util.buf.CharChunk; import org.apache.tomcat.util.buf.UEncoder; @@ -934,7 +935,7 @@ cookies.add(cookie); final StringBuffer sb = new StringBuffer(); - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { AccessController.doPrivileged(new PrivilegedAction() { public Object run(){ ServerCookie.appendCookieValue @@ -1359,7 +1360,7 @@ if (hreq.isRequestedSessionIdFromCookie()) return (false); - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { return ((Boolean) AccessController.doPrivileged(new PrivilegedAction() { @@ -1463,7 +1464,7 @@ String encodedURI = null; final String frelativePath = relativePath; - if (System.getSecurityManager() != null ){ + if (SecurityUtil.isPackageProtectionEnabled() ){ try{ encodedURI = (String)AccessController.doPrivileged( new PrivilegedExceptionAction(){ 1.4.2.1 +4 -3 jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/Attic/CoyoteResponseFacade.java Index: CoyoteResponseFacade.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/Attic/CoyoteResponseFacade.java,v retrieving revision 1.4 retrieving revision 1.4.2.1 diff -u -r1.4 -r1.4.2.1 --- CoyoteResponseFacade.java 27 Feb 2004 14:58:53 -0000 1.4 +++ CoyoteResponseFacade.java 18 Nov 2004 22:14:24 -0000 1.4.2.1 @@ -29,6 +29,7 @@ import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletResponse; +import org.apache.catalina.security.SecurityUtil; import org.apache.catalina.connector.ResponseFacade; /** @@ -183,7 +184,7 @@ if (isCommitted()) return; - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ AccessController.doPrivileged(new SetContentTypePrivilegedAction(type)); } else { response.setContentType(type); @@ -215,7 +216,7 @@ // (/*sm.getString("responseFacade.finished")*/); return; - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ AccessController.doPrivileged(new PrivilegedExceptionAction(){ 1.7.2.1 +2 -1 jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/Attic/InputBuffer.java Index: InputBuffer.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/Attic/InputBuffer.java,v retrieving revision 1.7 retrieving revision 1.7.2.1 diff -u -r1.7 -r1.7.2.1 --- InputBuffer.java 14 May 2004 21:14:14 -0000 1.7 +++ InputBuffer.java 18 Nov 2004 22:14:24 -0000 1.7.2.1 @@ -23,6 +23,7 @@ import java.security.PrivilegedExceptionAction; import java.util.HashMap; +import org.apache.catalina.security.SecurityUtil; import org.apache.coyote.Request; import org.apache.tomcat.util.buf.B2CConverter; import org.apache.tomcat.util.buf.ByteChunk; @@ -482,7 +483,7 @@ enc = DEFAULT_ENCODING; conv = (B2CConverter) encoders.get(enc); if (conv == null) { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ conv = (B2CConverter)AccessController.doPrivileged( new PrivilegedExceptionAction(){ 1.8.2.1 +2 -1 jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/Attic/OutputBuffer.java Index: OutputBuffer.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/coyote/tomcat5/Attic/OutputBuffer.java,v retrieving revision 1.8 retrieving revision 1.8.2.1 diff -u -r1.8 -r1.8.2.1 --- OutputBuffer.java 27 Feb 2004 14:58:53 -0000 1.8 +++ OutputBuffer.java 18 Nov 2004 22:14:24 -0000 1.8.2.1 @@ -25,6 +25,7 @@ import java.util.HashMap; import org.apache.catalina.connector.ClientAbortException; +import org.apache.catalina.security.SecurityUtil; import org.apache.coyote.ActionCode; import org.apache.coyote.Response; import org.apache.tomcat.util.buf.ByteChunk; @@ -596,7 +597,7 @@ conv = (C2BConverter) encoders.get(enc); if (conv == null) { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ conv = (C2BConverter)AccessController.doPrivileged( new PrivilegedExceptionAction(){
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]