From: markt Date: Sun, 21 Mar 2010 21:22:54 +0000 (+0000) Subject: Fix various exceptions that prevented one of the TCK web applications from starting X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=b4d49fced1550c824a435b54fb0babee5716b93c;p=tomcat7.0 Fix various exceptions that prevented one of the TCK web applications from starting git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@925901 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/catalina/core/ApplicationContext.java b/java/org/apache/catalina/core/ApplicationContext.java index 2036e436a..28973c3ed 100644 --- a/java/org/apache/catalina/core/ApplicationContext.java +++ b/java/org/apache/catalina/core/ApplicationContext.java @@ -907,6 +907,8 @@ public class ApplicationContext // a name if (filterDef == null) { filterDef = new FilterDef(); + filterDef.setFilterName(filterName); + context.addFilterDef(filterDef); } else { if (filterDef.getFilterName() != null && filterDef.getFilterClass() != null) { @@ -914,7 +916,6 @@ public class ApplicationContext } } - // Name must already be set if (filter == null) { filterDef.setFilterClass(filterClass); } else { @@ -1036,6 +1037,8 @@ public class ApplicationContext // a name if (wrapper == null) { wrapper = context.createWrapper(); + wrapper.setName(servletName); + context.addChild(wrapper); } else { if (wrapper.getName() != null && wrapper.getServletClass() != null) { @@ -1043,7 +1046,6 @@ public class ApplicationContext } } - // Name must already be set if (servlet == null) { wrapper.setServletClass(servletClass); } else { @@ -1176,6 +1178,9 @@ public class ApplicationContext @Override public boolean setInitParameter(String name, String value) { + + mergeParameters(); + if (parameters.containsKey(name)) { return false; } diff --git a/java/org/apache/catalina/core/ApplicationFilterRegistration.java b/java/org/apache/catalina/core/ApplicationFilterRegistration.java index abf6117d0..260d300d7 100644 --- a/java/org/apache/catalina/core/ApplicationFilterRegistration.java +++ b/java/org/apache/catalina/core/ApplicationFilterRegistration.java @@ -58,6 +58,8 @@ public class ApplicationFilterRegistration FilterMap filterMap = new FilterMap(); + filterMap.setFilterName(filterDef.getFilterName()); + if (dispatcherTypes != null) { for (DispatcherType dispatcherType : dispatcherTypes) { filterMap.setDispatcher(dispatcherType.name()); diff --git a/java/org/apache/catalina/core/ApplicationServletRegistration.java b/java/org/apache/catalina/core/ApplicationServletRegistration.java index 04337da95..f49edb165 100644 --- a/java/org/apache/catalina/core/ApplicationServletRegistration.java +++ b/java/org/apache/catalina/core/ApplicationServletRegistration.java @@ -19,13 +19,11 @@ package org.apache.catalina.core; import java.util.Collection; import java.util.Collections; -import java.util.Enumeration; import java.util.HashSet; import java.util.Map; import java.util.Set; import javax.servlet.MultipartConfigElement; -import javax.servlet.ServletConfig; import javax.servlet.ServletRegistration; import javax.servlet.ServletSecurityElement; @@ -62,21 +60,19 @@ public class ApplicationServletRegistration @Override public String getInitParameter(String name) { - return wrapper.getServlet().getServletConfig().getInitParameter(name); + return wrapper.findInitParameter(name); } @Override public Map getInitParameters() { ParameterMap result = new ParameterMap(); - ServletConfig servletConfig = wrapper.getServlet().getServletConfig(); - Enumeration parameterNames = - servletConfig.getInitParameterNames(); - while (parameterNames.hasMoreElements()) { - String parameterName = parameterNames.nextElement(); - result.put(parameterName, - servletConfig.getInitParameter(parameterName)); + String[] parameterNames = wrapper.findInitParameters(); + + for (String parameterName : parameterNames) { + result.put(parameterName, wrapper.findInitParameter(parameterName)); } + result.setLocked(true); return result; } diff --git a/java/org/apache/catalina/core/StandardContext.java b/java/org/apache/catalina/core/StandardContext.java index ffb8db41e..b3cda4fec 100644 --- a/java/org/apache/catalina/core/StandardContext.java +++ b/java/org/apache/catalina/core/StandardContext.java @@ -2550,12 +2550,11 @@ public class StandardContext System.arraycopy(filterMaps, 0, results, 0, filterMapInsertPoint); results[filterMapInsertPoint] = filterMap; System.arraycopy(filterMaps, filterMapInsertPoint, results, - filterMaps.length - filterMapInsertPoint+1, - filterMapInsertPoint); + filterMaps.length - filterMapInsertPoint + 1, + filterMaps.length - filterMapInsertPoint); filterMapInsertPoint++; - - results[filterMaps.length] = filterMap; + filterMaps = results; } fireContainerEvent("addFilterMap", filterMap);