You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2010/10/29 00:29:26 UTC
svn commit: r1028521 - in /tomcat/trunk: java/org/apache/catalina/
java/org/apache/catalina/connector/ java/org/apache/catalina/core/
java/org/apache/tomcat/util/http/mapper/
test/org/apache/tomcat/util/http/mapper/ test/webapp-3.0/welcome-files/
test/...
Author: markt
Date: Thu Oct 28 22:29:25 2010
New Revision: 1028521
URL: http://svn.apache.org/viewvc?rev=1028521&view=rev
Log:
Provide configuration option to work around new welcome file mapping requirements of section 10.10 Servlet 3.0 that break a lot of existing apps. The default configuration retains the current Tomcat 6.0.x behaviour. Enabling STRICT_SERVLET_COMPLILANCE enforces the new requirements by default. Includes test cases.
Added:
tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapperWelcomeFiles.java (with props)
tomcat/trunk/test/webapp-3.0/welcome-files/
tomcat/trunk/test/webapp-3.0/welcome-files/index.jsp (with props)
tomcat/trunk/test/webapp-3.0/welcome-files/sub/
Modified:
tomcat/trunk/java/org/apache/catalina/Context.java
tomcat/trunk/java/org/apache/catalina/connector/MapperListener.java
tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
tomcat/trunk/java/org/apache/tomcat/util/http/mapper/Mapper.java
tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapper.java
tomcat/trunk/webapps/docs/config/context.xml
tomcat/trunk/webapps/docs/config/systemprops.xml
Modified: tomcat/trunk/java/org/apache/catalina/Context.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Context.java?rev=1028521&r1=1028520&r2=1028521&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/Context.java (original)
+++ tomcat/trunk/java/org/apache/catalina/Context.java Thu Oct 28 22:29:25 2010
@@ -1252,5 +1252,28 @@ public interface Context extends Contain
*/
Set<String> addServletSecurity(ApplicationServletRegistration registration,
ServletSecurityElement servletSecurityElement);
+
+ /**
+ * Sets the (comma separated) list of Servlets that expect a resource to be
+ * present. Used to ensure that welcome files associated with Servlets that
+ * expect a resource to be present are not mapped when there is no resource.
+ */
+ public void setResourceOnlyServlets(String resourceOnlyServlets);
+
+ /**
+ * Obtains the list of Servlets that expect a resource to be present.
+ *
+ * @return A comma separated list of Servlet names as used in web.xml
+ */
+ public String getResourceOnlyServlets();
+
+ /**
+ * Checks the named Servlet to see if it expects a resource to be present.
+ *
+ * @param servletName Name of the Servlet (as per web.xml) to check
+ * @return <code>true</code> if the Servlet expects a resource,
+ * otherwise <code>false</code>
+ */
+ public boolean isResourceOnlyServlet(String servletName);
}
Modified: tomcat/trunk/java/org/apache/catalina/connector/MapperListener.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/MapperListener.java?rev=1028521&r1=1028520&r2=1028521&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/MapperListener.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/MapperListener.java Thu Oct 28 22:29:25 2010
@@ -156,18 +156,18 @@ public class MapperListener implements C
} else if (event.getType() == Wrapper.ADD_MAPPING_EVENT) {
// Handle dynamically adding wrappers
Wrapper wrapper = (Wrapper) event.getSource();
-
- String contextName = wrapper.getParent().getName();
+ Context context = (Context) wrapper.getParent();
+ String contextName = context.getName();
if ("/".equals(contextName)) {
contextName = "";
}
- String hostName = wrapper.getParent().getParent().getName();
-
+ String hostName = context.getParent().getName();
+ String wrapperName = wrapper.getName();
String mapping = (String) event.getData();
- boolean jspWildCard = ("jsp".equals(wrapper.getName())
+ boolean jspWildCard = ("jsp".equals(wrapperName)
&& mapping.endsWith("/*"));
mapper.addWrapper(hostName, contextName, mapping, wrapper,
- jspWildCard);
+ jspWildCard, context.isResourceOnlyServlet(wrapperName));
} else if (event.getType() == Wrapper.REMOVE_MAPPING_EVENT) {
// Handle dynamically removing wrappers
Wrapper wrapper = (Wrapper) event.getSource();
@@ -380,11 +380,12 @@ public class MapperListener implements C
private void registerWrapper(Wrapper wrapper) {
String wrapperName = wrapper.getName();
- String contextName = wrapper.getParent().getName();
+ Context context = (Context) wrapper.getParent();
+ String contextName = context.getName();
if ("/".equals(contextName)) {
contextName = "";
}
- String hostName = wrapper.getParent().getParent().getName();
+ String hostName = context.getParent().getName();
String[] mappings = wrapper.findMappings();
@@ -392,7 +393,8 @@ public class MapperListener implements C
boolean jspWildCard = (wrapperName.equals("jsp")
&& mapping.endsWith("/*"));
mapper.addWrapper(hostName, contextName, mapping, wrapper,
- jspWildCard);
+ jspWildCard,
+ context.isResourceOnlyServlet(wrapperName));
}
if(log.isDebugEnabled()) {
Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1028521&r1=1028520&r2=1028521&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Thu Oct 28 22:29:25 2010
@@ -144,7 +144,12 @@ public class StandardContext extends Con
super();
pipeline.setBasic(new StandardContextValve());
broadcaster = new NotificationBroadcasterSupport();
-
+ // Set defaults
+ if (!Globals.STRICT_SERVLET_COMPLIANCE) {
+ // Strict servlet compliance requires all extension mapped servlets
+ // to be checked against welcome files
+ resourceOnlyServlets.add("jsp");
+ }
}
@@ -799,9 +804,46 @@ public class StandardContext extends Con
private JspConfigDescriptor jspConfigDescriptor =
new ApplicationJspConfigDescriptor();
+ private Set<String> resourceOnlyServlets = new HashSet<String>();
+
+
// ----------------------------------------------------- Context Properties
@Override
+ public String getResourceOnlyServlets() {
+ StringBuilder result = new StringBuilder();
+ boolean first = true;
+ for (String servletName : resourceOnlyServlets) {
+ if (!first) {
+ result.append(',');
+ }
+ result.append(servletName);
+ }
+ return result.toString();
+ }
+
+
+ @Override
+ public void setResourceOnlyServlets(String resourceOnlyServlets) {
+ this.resourceOnlyServlets.clear();
+ if (resourceOnlyServlets == null ||
+ resourceOnlyServlets.length() == 0) {
+ return;
+ }
+ String[] servletNames = resourceOnlyServlets.split(",");
+ for (String servletName : servletNames) {
+ this.resourceOnlyServlets.add(servletName);
+ }
+ }
+
+
+ @Override
+ public boolean isResourceOnlyServlet(String servletName) {
+ return resourceOnlyServlets.contains(servletName);
+ }
+
+
+ @Override
public int getEffectiveMajorVersion() {
return effectiveMajorVersion;
}
@@ -2921,7 +2963,8 @@ public class StandardContext extends Con
wrapper.addMapping(pattern);
// Update context mapper
- mapper.addWrapper(pattern, wrapper, jspWildCard);
+ mapper.addWrapper(pattern, wrapper, jspWildCard,
+ resourceOnlyServlets.contains(name));
fireContainerEvent("addServletMapping", pattern);
Modified: tomcat/trunk/java/org/apache/tomcat/util/http/mapper/Mapper.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/mapper/Mapper.java?rev=1028521&r1=1028520&r2=1028521&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/http/mapper/Mapper.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/http/mapper/Mapper.java Thu Oct 28 22:29:25 2010
@@ -279,22 +279,9 @@ public final class Mapper {
}
- /**
- * Add a new Wrapper to an existing Context.
- *
- * @param hostName Virtual host name this wrapper belongs to
- * @param contextPath Context path this wrapper belongs to
- * @param path Wrapper mapping
- * @param wrapper Wrapper object
- */
public void addWrapper(String hostName, String contextPath, String path,
- Object wrapper) {
- addWrapper(hostName, contextPath, path, wrapper, false);
- }
-
-
- public void addWrapper(String hostName, String contextPath, String path,
- Object wrapper, boolean jspWildCard) {
+ Object wrapper, boolean jspWildCard,
+ boolean resourceOnly) {
Host[] hosts = this.hosts;
int pos = find(hosts, hostName);
if (pos < 0) {
@@ -310,30 +297,15 @@ public final class Mapper {
}
Context context = contexts[pos2];
if (context.name.equals(contextPath)) {
- addWrapper(context, path, wrapper, jspWildCard);
+ addWrapper(context, path, wrapper, jspWildCard, resourceOnly);
}
}
}
- /**
- * Add a wrapper to the context associated with this wrapper.
- *
- * @param path Wrapper mapping
- * @param wrapper The Wrapper object
- */
- public void addWrapper(String path, Object wrapper) {
- addWrapper(context, path, wrapper);
- }
-
-
- public void addWrapper(String path, Object wrapper, boolean jspWildCard) {
- addWrapper(context, path, wrapper, jspWildCard);
- }
-
-
- protected void addWrapper(Context context, String path, Object wrapper) {
- addWrapper(context, path, wrapper, false);
+ public void addWrapper(String path, Object wrapper, boolean jspWildCard,
+ boolean resourceOnly) {
+ addWrapper(context, path, wrapper, jspWildCard, resourceOnly);
}
@@ -344,15 +316,18 @@ public final class Mapper {
* @param path Wrapper mapping
* @param wrapper The Wrapper object
* @param jspWildCard true if the wrapper corresponds to the JspServlet
+ * @param resourceOnly true if this wrapper always expects a physical
+ * resource to be present (such as a JSP)
* and the mapping path contains a wildcard; false otherwise
*/
protected void addWrapper(Context context, String path, Object wrapper,
- boolean jspWildCard) {
+ boolean jspWildCard, boolean resourceOnly) {
synchronized (context) {
Wrapper newWrapper = new Wrapper();
newWrapper.object = wrapper;
newWrapper.jspWildCard = jspWildCard;
+ newWrapper.resourceOnly = resourceOnly;
if (path.endsWith("/*")) {
// Wildcard wrapper
newWrapper.name = path.substring(0, path.length() - 2);
@@ -801,7 +776,8 @@ public final class Mapper {
// Rule 3 -- Extension Match
Wrapper[] extensionWrappers = context.extensionWrappers;
if (mappingData.wrapper == null && !checkJspWelcomeFiles) {
- internalMapExtensionWrapper(extensionWrappers, path, mappingData);
+ internalMapExtensionWrapper(extensionWrappers, path, mappingData,
+ true);
}
// Rule 4 -- Welcome resources processing for servlets
@@ -842,8 +818,8 @@ public final class Mapper {
// Swallow not found, since this is normal
}
if (file != null && !(file instanceof DirContext) ) {
- internalMapExtensionWrapper(extensionWrappers,
- path, mappingData);
+ internalMapExtensionWrapper(extensionWrappers, path,
+ mappingData, true);
if (mappingData.wrapper == null
&& context.defaultWrapper != null) {
mappingData.wrapper =
@@ -888,8 +864,8 @@ public final class Mapper {
path.append(context.welcomeResources[i], 0,
context.welcomeResources[i].length());
path.setOffset(servletPath);
- internalMapExtensionWrapper(extensionWrappers,
- path, mappingData);
+ internalMapExtensionWrapper(extensionWrappers, path,
+ mappingData, false);
}
path.setOffset(servletPath);
@@ -1005,9 +981,14 @@ public final class Mapper {
/**
* Extension mappings.
+ *
+ * @param wrappers Set of wrappers to check for matches
+ * @param path Path to map
+ * @param mappingData Mapping data for result
+ * @param resourceExpected Is this mapping expecting to find a resource
*/
- private final void internalMapExtensionWrapper
- (Wrapper[] wrappers, CharChunk path, MappingData mappingData) {
+ private final void internalMapExtensionWrapper(Wrapper[] wrappers,
+ CharChunk path, MappingData mappingData, boolean resourceExpected) {
char[] buf = path.getBuffer();
int pathEnd = path.getEnd();
int servletPath = path.getOffset();
@@ -1030,8 +1011,8 @@ public final class Mapper {
path.setOffset(period + 1);
path.setEnd(pathEnd);
int pos = find(wrappers, path);
- if ((pos != -1)
- && (path.equals(wrappers[pos].name))) {
+ if ((pos != -1) && (path.equals(wrappers[pos].name)) &&
+ (resourceExpected || !wrappers[pos].resourceOnly)) {
mappingData.wrapperPath.setChars
(buf, servletPath, pathEnd - servletPath);
mappingData.requestPath.setChars
@@ -1412,5 +1393,6 @@ public final class Mapper {
public String path = null;
public boolean jspWildCard = false;
+ public boolean resourceOnly = false;
}
}
Modified: tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapper.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapper.java?rev=1028521&r1=1028520&r2=1028521&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapper.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapper.java Thu Oct 28 22:29:25 2010
@@ -60,14 +60,22 @@ public class TestMapper extends TestCase
mapper.addContext("iowejoiejfoiew", "blah7", "/foo/bar/bla",
"context3", new String[0], null);
- mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/fo/*", "wrapper0");
- mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/", "wrapper1");
- mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/blh", "wrapper2");
- mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "*.jsp", "wrapper3");
- mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/blah/bou/*", "wrapper4");
- mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/blah/bobou/*", "wrapper5");
- mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "*.htm", "wrapper6");
- mapper.addWrapper("iowejoiejfoiew", "/foo/bar/bla", "/bobou/*", "wrapper7");
+ mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/fo/*",
+ "wrapper0", false, false);
+ mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/",
+ "wrapper1", false, false);
+ mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/blh",
+ "wrapper2", false, false);
+ mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "*.jsp",
+ "wrapper3", false, false);
+ mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/blah/bou/*",
+ "wrapper4", false, false);
+ mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "/blah/bobou/*",
+ "wrapper5", false, false);
+ mapper.addWrapper("iowejoiejfoiew", "/foo/bar", "*.htm",
+ "wrapper6", false, false);
+ mapper.addWrapper("iowejoiejfoiew", "/foo/bar/bla", "/bobou/*",
+ "wrapper7", false, false);
}
Added: tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapperWelcomeFiles.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapperWelcomeFiles.java?rev=1028521&view=auto
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapperWelcomeFiles.java (added)
+++ tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapperWelcomeFiles.java Thu Oct 28 22:29:25 2010
@@ -0,0 +1,87 @@
+package org.apache.tomcat.util.http.mapper;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.catalina.core.StandardContext;
+import org.apache.catalina.startup.Tomcat;
+import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.tomcat.util.buf.ByteChunk;
+
+public class TestMapperWelcomeFiles extends TomcatBaseTest {
+
+ public void testWelcomeFileNotStrict() throws Exception {
+
+ Tomcat tomcat = getTomcatInstance();
+
+ File appDir = new File("test/webapp-3.0");
+
+ StandardContext ctxt = (StandardContext) tomcat.addWebapp(null, "/test",
+ appDir.getAbsolutePath());
+ Tomcat.addServlet(ctxt, "Ok", new OkServlet());
+ ctxt.setReplaceWelcomeFiles(true);
+ ctxt.addWelcomeFile("index.jsp");
+ ctxt.addWelcomeFile("index.do");
+
+ tomcat.start();
+ ByteChunk bc = new ByteChunk();
+ int rc = getUrl("http://localhost:" + getPort() +
+ "/test/welcome-files", bc, new HashMap<String,List<String>>());
+ assertEquals(HttpServletResponse.SC_OK, rc);
+ assertTrue(bc.toString().contains("JSP"));
+
+ rc = getUrl("http://localhost:" + getPort() +
+ "/test/welcome-files/sub", bc,
+ new HashMap<String,List<String>>());
+ assertEquals(HttpServletResponse.SC_OK, rc);
+ assertTrue(bc.toString().contains("Servlet"));
+ }
+
+ public void testWelcomeFileStrict() throws Exception {
+
+ Tomcat tomcat = getTomcatInstance();
+
+ File appDir = new File("test/webapp-3.0");
+
+ StandardContext ctxt = (StandardContext) tomcat.addWebapp(null, "/test",
+ appDir.getAbsolutePath());
+ Tomcat.addServlet(ctxt, "Ok", new OkServlet());
+ ctxt.setReplaceWelcomeFiles(true);
+ ctxt.addWelcomeFile("index.jsp");
+ ctxt.addWelcomeFile("index.do");
+
+ // Simulate STRICT_SERVLET_COMPLIANCE
+ ctxt.setResourceOnlyServlets("");
+
+ tomcat.start();
+ ByteChunk bc = new ByteChunk();
+ int rc = getUrl("http://localhost:" + getPort() +
+ "/test/welcome-files", bc, new HashMap<String,List<String>>());
+ assertEquals(HttpServletResponse.SC_OK, rc);
+ assertTrue(bc.toString().contains("JSP"));
+
+ rc = getUrl("http://localhost:" + getPort() +
+ "/test/welcome-files/sub", bc,
+ new HashMap<String,List<String>>());
+ assertEquals(HttpServletResponse.SC_NOT_FOUND, rc);
+ }
+
+ private static class OkServlet extends HttpServlet {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ resp.setContentType("text/plain");
+ resp.getWriter().write("OK-Servlet");
+ }
+ }
+}
Propchange: tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapperWelcomeFiles.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: tomcat/trunk/test/webapp-3.0/welcome-files/index.jsp
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/webapp-3.0/welcome-files/index.jsp?rev=1028521&view=auto
==============================================================================
--- tomcat/trunk/test/webapp-3.0/welcome-files/index.jsp (added)
+++ tomcat/trunk/test/webapp-3.0/welcome-files/index.jsp Thu Oct 28 22:29:25 2010
@@ -0,0 +1,21 @@
+<%--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+--%>
+<html>
+ <body>
+ <p>OK-JSP</p>
+ </body>
+</html>
\ No newline at end of file
Propchange: tomcat/trunk/test/webapp-3.0/welcome-files/index.jsp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: tomcat/trunk/webapps/docs/config/context.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/context.xml?rev=1028521&r1=1028520&r2=1028521&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/config/context.xml (original)
+++ tomcat/trunk/webapps/docs/config/context.xml Thu Oct 28 22:29:25 2010
@@ -237,6 +237,20 @@
on demand.</p>
</attribute>
+ <attribute name="resourceOnlyServlets" required="false">
+ <p>Comma separated list of Servlet names (as used in
+ <code>/WEB-INF/web.xml</code>) that expect a resource to be present.
+ Ensures that welcome files associated with Servlets that expect a
+ resource to be present (such as the JSP Servlet) are not used when there
+ is no resource present. This prevents issues caused by the clarification
+ of welcome file mapping in section 10.10 of the Servlet 3.0
+ specification. If the
+ <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code>
+ <a href="systemprops.html">system property</a> is set to
+ <code>true</code>, the default value of this attribute will be the empty
+ string, else the default value will be <code>jsp</code>.
+ </attribute>
+
<attribute name="sessionCookieDomain" required="false">
<p>The domain to be used for all session cookies created for this
context. If set, this overrides any domain set by the web application.
Modified: tomcat/trunk/webapps/docs/config/systemprops.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/systemprops.xml?rev=1028521&r1=1028520&r2=1028521&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/config/systemprops.xml (original)
+++ tomcat/trunk/webapps/docs/config/systemprops.xml Thu Oct 28 22:29:25 2010
@@ -258,6 +258,8 @@
<li><code>org.apache.tomcat.util.http.ServerCookie.ALWAYS_ADD_EXPIRES</code>.</li>
<li><code>org.apache.tomcat.util.http.ServerCookie.FWD_SLASH_IS_SEPARATOR</code>.</li>
<li><code>org.apache.tomcat.util.http.ServerCookie.STRICT_NAMING</code>.</li>
+ <li>The <code>resourceOnlyServlets</code> attribute of any
+ <a href="context.html">Context</a> element.</li>
<li>The <code>tldNamespaceAware</code> attribute of any
<a href="context.html">Context</a> element.</li>
<li>The <code>tldValidation</code> attribute of any
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: svn commit: r1028521 - in /tomcat/trunk: java/org/apache/catalina/
java/org/apache/catalina/connector/ java/org/apache/catalina/core/ java/org/apache/tomcat/util/http/mapper/
test/org/apache/tomcat/util/http/mapper/ test/webapp-3.0/welcome-files/ test/...
Posted by Mark Thomas <ma...@apache.org>.
On 29/10/2010 13:51, Tim Funk wrote:
> Should we add trim()? (in case the user has a new line or spaces after
> the ,)
>
> this.resourceOnlyServlets.add(servletName.trim());
Can't hurt. Go for it.
Mark
>
>
> -Tim
>
> Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
> URL:
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1028521&r1=1028520&r2=1028521&view=diff
>
> ==============================================================================
>
> --- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
> (original)
> +++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Thu
> Oct 28 22:29:25 2010
>
> On 10/28/2010 6:29 PM, markt@apache.org wrote:
>> + @Override
>> + public void setResourceOnlyServlets(String resourceOnlyServlets) {
>> + this.resourceOnlyServlets.clear();
>> + if (resourceOnlyServlets == null ||
>> + resourceOnlyServlets.length() == 0) {
>> + return;
>> + }
>> + String[] servletNames = resourceOnlyServlets.split(",");
>> + for (String servletName : servletNames) {
>> + this.resourceOnlyServlets.add(servletName);
>> + }
>> + }
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: svn commit: r1028521 - in /tomcat/trunk: java/org/apache/catalina/
java/org/apache/catalina/connector/ java/org/apache/catalina/core/ java/org/apache/tomcat/util/http/mapper/
test/org/apache/tomcat/util/http/mapper/ test/webapp-3.0/welcome-files/ test/...
Posted by Tim Funk <fu...@apache.org>.
Should we add trim()? (in case the user has a new line or spaces after
the ,)
this.resourceOnlyServlets.add(servletName.trim());
-Tim
Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1028521&r1=1028520&r2=1028521&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Thu
Oct 28 22:29:25 2010
On 10/28/2010 6:29 PM, markt@apache.org wrote:
> + @Override
> + public void setResourceOnlyServlets(String resourceOnlyServlets) {
> + this.resourceOnlyServlets.clear();
> + if (resourceOnlyServlets == null ||
> + resourceOnlyServlets.length() == 0) {
> + return;
> + }
> + String[] servletNames = resourceOnlyServlets.split(",");
> + for (String servletName : servletNames) {
> + this.resourceOnlyServlets.add(servletName);
> + }
> + }
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org