From f9184d76ef726a37d6c202c749239400a9922189 Mon Sep 17 00:00:00 2001 From: markt Date: Sun, 1 Nov 2009 21:46:09 +0000 Subject: [PATCH] Trying to merge filter maps is a bad idea. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@831764 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/deploy/FilterMap.java | 26 +++----------------------- java/org/apache/catalina/startup/WebXml.java | 23 ++++++----------------- 2 files changed, 9 insertions(+), 40 deletions(-) diff --git a/java/org/apache/catalina/deploy/FilterMap.java b/java/org/apache/catalina/deploy/FilterMap.java index 1c53d4612..001fcb07e 100644 --- a/java/org/apache/catalina/deploy/FilterMap.java +++ b/java/org/apache/catalina/deploy/FilterMap.java @@ -37,11 +37,12 @@ import javax.servlet.DispatcherType; public class FilterMap implements Serializable { - private static final long serialVersionUID = 1L; - + // ------------------------------------------------------------- Properties + private static final long serialVersionUID = 1L; + /** * The name of this filter to be executed when this mapping matches * a particular request. @@ -100,15 +101,6 @@ public class FilterMap implements Serializable { } } - public void addServletNames(String[] servletNames) { - if (servletNames != null) { - for (int i = 0; i < servletNames.length; i++) { - addServletName(servletNames[i]); - } - } - } - - /** * The flag that indicates this mapping will match all url-patterns @@ -150,14 +142,6 @@ public class FilterMap implements Serializable { } } - public void addUrlPatterns(String[] urlPatterns) { - if (urlPatterns != null) { - for (int i = 0; i < urlPatterns.length; i++) { - addURLPattern(urlPatterns[i]); - } - } - } - /** * * This method will be used to set the current state of the FilterMap @@ -240,10 +224,6 @@ public class FilterMap implements Serializable { else return dispatcherMapping; } - public void addDispatcherMapping(int dispatcherMapping) { - // Merge the supplied mapping with the current mapping - this.dispatcherMapping = getDispatcherMapping() | dispatcherMapping; - } // --------------------------------------------------------- Public Methods diff --git a/java/org/apache/catalina/startup/WebXml.java b/java/org/apache/catalina/startup/WebXml.java index 49e38a066..cbb126e12 100644 --- a/java/org/apache/catalina/startup/WebXml.java +++ b/java/org/apache/catalina/startup/WebXml.java @@ -184,11 +184,11 @@ public class WebXml { public Map getFilters() { return filters; } // filter-mapping - private Map filterMaps = new HashMap(); + private Set filterMaps = new LinkedHashSet(); public void addFilterMapping(FilterMap filterMap) { - filterMaps.put(filterMap.getFilterName(),filterMap); + filterMaps.add(filterMap); } - public Map getFilterMappings() { return filterMaps; } + public Set getFilterMappings() { return filterMaps; } // listener // TODO: description (multiple with language) is ignored @@ -470,7 +470,7 @@ public class WebXml { for (FilterDef filter : filters.values()) { context.addFilterDef(filter); } - for (FilterMap filterMap : filterMaps.values()) { + for (FilterMap filterMap : filterMaps) { context.addFilterMap(filterMap); } // jsp-property-group needs to be after servlet configuration @@ -774,20 +774,9 @@ public class WebXml { errorPages.putAll(temp.getErrorPages()); for (WebXml fragment : fragments) { - for (String filterName : fragment.getFilterMappings().keySet()) { - FilterMap filterMap = - fragment.getFilterMappings().get(filterName); + for (FilterMap filterMap : fragment.getFilterMappings()) { // Always additive - if (filterMaps.containsKey(filterName)) { - FilterMap appFilterMap = filterMaps.get(filterName); - - appFilterMap.addDispatcherMapping( - filterMap.getDispatcherMapping()); - appFilterMap.addServletNames(filterMap.getServletNames()); - appFilterMap.addUrlPatterns(filterMap.getURLPatterns()); - } else { - addFilterMapping(filterMap); - } + addFilterMapping(filterMap); } } -- 2.11.0