Author: markt Date: Mon Dec 22 13:12:27 2008 New Revision: 728776 URL: http://svn.apache.org/viewvc?rev=728776&view=rev Log: Fix performance aspects of 46304. Note it is possible (depending on connector config) to have a servlet/filter responding to comet and non-comet events - hence why the array used in the methods cache has been extended.
Modified: tomcat/trunk/java/org/apache/catalina/security/SecurityUtil.java Modified: tomcat/trunk/java/org/apache/catalina/security/SecurityUtil.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/security/SecurityUtil.java?rev=728776&r1=728775&r2=728776&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/security/SecurityUtil.java (original) +++ tomcat/trunk/java/org/apache/catalina/security/SecurityUtil.java Mon Dec 22 13:12:27 2008 @@ -52,11 +52,15 @@ private final static int INIT= 0; private final static int SERVICE = 1; private final static int DOFILTER = 1; - private final static int DESTROY = 2; + private final static int EVENT = 2; + private final static int DOFILTEREVENT = 2; + private final static int DESTROY = 3; private final static String INIT_METHOD = "init"; private final static String DOFILTER_METHOD = "doFilter"; private final static String SERVICE_METHOD = "service"; + private final static String EVENT_METHOD = "event"; + private final static String DOFILTEREVENT_METHOD = "doFilterEvent"; private final static String DESTROY_METHOD = "destroy"; /** @@ -346,6 +350,12 @@ } else if (methodName.equalsIgnoreCase(DOFILTER_METHOD) && methodsCache[DOFILTER] != null){ return methodsCache[DOFILTER]; + } else if (methodName.equalsIgnoreCase(EVENT_METHOD) + && methodsCache[EVENT] != null){ + return methodsCache[EVENT]; + } else if (methodName.equalsIgnoreCase(DOFILTEREVENT_METHOD) + && methodsCache[DOFILTEREVENT] != null){ + return methodsCache[DOFILTEREVENT]; } return null; } @@ -368,7 +378,7 @@ throws Exception{ if ( methodsCache == null){ - methodsCache = new Method[3]; + methodsCache = new Method[4]; } Method method = @@ -382,6 +392,10 @@ methodsCache[SERVICE] = method; } else if (methodName.equalsIgnoreCase(DOFILTER_METHOD)){ methodsCache[DOFILTER] = method; + } else if (methodName.equalsIgnoreCase(EVENT_METHOD)){ + methodsCache[EVENT] = method; + } else if (methodName.equalsIgnoreCase(DOFILTEREVENT_METHOD)){ + methodsCache[DOFILTEREVENT] = method; } objectCache.put(targetObject, methodsCache ); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org