Author: kkolinko Date: Fri Jan 4 23:13:00 2013 New Revision: 1429167 URL: http://svn.apache.org/viewvc?rev=1429167&view=rev Log: Further review of ApplicationFilterConfig. Inline the setFilterDef() method. In the constructor the filterDef is never null and there is no need to care about destroying a filter. Thus the code is simplier. The method was package-visible, thus there should not be any 3rd party callers.
Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java?rev=1429167&r1=1429166&r2=1429167&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java Fri Jan 4 23:13:00 2013 @@ -101,8 +101,11 @@ public final class ApplicationFilterConf super(); this.context = context; - setFilterDef(filterDef); - if (filterDef.getFilter() != null) { + this.filterDef = filterDef; + // Allocate a new filter instance if necessary + if (filterDef.getFilter() == null) { + getFilter(); + } else { this.filter = filterDef.getFilter(); getInstanceManager().newInstance(filter); initFilter(); @@ -128,7 +131,7 @@ public final class ApplicationFilterConf /** * The <code>FilterDef</code> that defines our associated Filter. */ - private FilterDef filterDef = null; + private final FilterDef filterDef; /** * the InstanceManager used to create and destroy filter instances. @@ -334,74 +337,6 @@ public final class ApplicationFilterConf } - /** - * Set the filter definition we are configured for. This has the side - * effect of instantiating an instance of the corresponding filter class. - * - * @param filterDef The new filter definition - * - * @exception ClassCastException if the specified class does not implement - * the <code>javax.servlet.Filter</code> interface - * @exception ClassNotFoundException if the filter class cannot be found - * @exception IllegalAccessException if the filter class cannot be - * publicly instantiated - * @exception InstantiationException if an exception occurs while - * instantiating the filter object - * @exception ServletException if thrown by the filter's init() method - * @throws NamingException - * @throws InvocationTargetException - */ - void setFilterDef(FilterDef filterDef) - throws ClassCastException, ClassNotFoundException, - IllegalAccessException, InstantiationException, - ServletException, InvocationTargetException, NamingException { - - FilterDef oldFilterDef = this.filterDef; - this.filterDef = filterDef; - if (filterDef == null) { - - // Release any previously allocated filter instance - if (this.filter != null){ - try { - if (Globals.IS_SECURITY_ENABLED) { - try{ - SecurityUtil.doAsPrivilege("destroy", filter); - } finally { - SecurityUtil.remove(filter); - } - } else { - filter.destroy(); - } - } catch (Throwable t) { - ExceptionUtils.handleThrowable(t); - context.getLogger().error(sm.getString( - "applicationFilterConfig.release", - oldFilterDef.getFilterName(), - oldFilterDef.getFilterClass()), t); - } - if (!context.getIgnoreAnnotations()) { - try { - ((StandardContext) context).getInstanceManager().destroyInstance(this.filter); - } catch (Exception e) { - Throwable t = ExceptionUtils - .unwrapInvocationTargetException(e); - ExceptionUtils.handleThrowable(t); - context.getLogger().error("ApplicationFilterConfig.preDestroy", t); - } - } - } - this.filter = null; - - } else { - // Allocate a new filter instance if necessary - if (filterDef.getFilter() == null) { - getFilter(); - } - } - - } - - // -------------------------------------------------------- Private Methods private InstanceManager getInstanceManager() { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org