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 2005/11/27 21:52:58 UTC
svn commit: r349308 -
/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/ssi/SSIServletExternalResolver.java
Author: markt
Date: Sun Nov 27 12:52:55 2005
New Revision: 349308
URL: http://svn.apache.org/viewcvs?rev=349308&view=rev
Log:
Just spotted a complication. Reverting previous change until it is resolved.
Modified:
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/ssi/SSIServletExternalResolver.java
Modified: tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/ssi/SSIServletExternalResolver.java
URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/ssi/SSIServletExternalResolver.java?rev=349308&r1=349307&r2=349308&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/ssi/SSIServletExternalResolver.java (original)
+++ tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/ssi/SSIServletExternalResolver.java Sun Nov 27 12:52:55 2005
@@ -347,12 +347,12 @@
}
- protected String getPathWithoutContext(String contextPath, String servletPath) {
+ protected String getPathWithoutContext(String servletPath) {
String retVal = null;
-
- if (contextPath.length() >= 0) {
+ int secondSlash = servletPath.indexOf('/', 1);
+ if (secondSlash >= 0) {
//cut off context
- retVal = servletPath.substring(contextPath.length());
+ retVal = servletPath.substring(secondSlash);
}
return retVal;
}
@@ -403,19 +403,17 @@
if (isVirtualWebappRelative) {
return new ServletContextAndPath(context, normalized);
} else {
- String contextPath = getContextPath(normalized);
- if (contextPath == null) {
+ ServletContext normContext = context.getContext(normalized);
+ if (normContext == null) {
throw new IOException("Couldn't get context for path: "
+ normalized);
}
- ServletContext normContext = context.getContext(contextPath);
-
//If it's the root context, then there is no context element
// to remove,
// ie:
// '/file1.shtml' vs '/appName1/file1.shtml'
if (!isRootContext(normContext)) {
- String noContext = getPathWithoutContext(contextPath, normalized);
+ String noContext = getPathWithoutContext(normalized);
if (noContext == null) {
throw new IOException(
"Couldn't remove context from path: "
@@ -429,38 +427,17 @@
}
}
- // Looks for the longest matching context path
- protected String getContextPath(String uri) {
- String candidatePath = uri;
- ServletContext contextFound = null;
- String result = null;
-
- while (true) {
- contextFound = context.getContext(candidatePath);
- if (contextFound != null) {
- result = candidatePath;
- break;
- }
-
- int slash = candidatePath.lastIndexOf('/');
- if (slash < 0)
- break;
-
- candidatePath = candidatePath.substring(0, slash);
- }
- return result;
- }
//Assumes servletContext is not-null
//Assumes that identity comparison will be true for the same context
- //Assuming the above, getContext("") will be non-null as long as the root
+ //Assuming the above, getContext("/") will be non-null as long as the root
// context is
// accessible.
//If it isn't, then servletContext can't be the root context anyway, hence
// they will
// not match.
protected boolean isRootContext(ServletContext servletContext) {
- return servletContext == servletContext.getContext("");
+ return servletContext == servletContext.getContext("/");
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org