You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2001/01/25 06:45:41 UTC
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java WebdavServlet.java
remm 01/01/24 21:45:41
Modified: catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java WebdavServlet.java
Log:
- Update PROPFIND to use streaming (as the response could get very big).
- Fix a bug where href elements could include incorrect paths containing "//".
- Avoid putting the '&' character in the XML response.
Revision Changes Path
1.21 +13 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
Index: DefaultServlet.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- DefaultServlet.java 2001/01/23 04:47:57 1.20
+++ DefaultServlet.java 2001/01/25 05:45:40 1.21
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v 1.20 2001/01/23 04:47:57 remm Exp $
- * $Revision: 1.20 $
- * $Date: 2001/01/23 04:47:57 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v 1.21 2001/01/25 05:45:40 remm Exp $
+ * $Revision: 1.21 $
+ * $Date: 2001/01/25 05:45:40 $
*
* ====================================================================
*
@@ -119,7 +119,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
- * @version $Revision: 1.20 $ $Date: 2001/01/23 04:47:57 $
+ * @version $Revision: 1.21 $ $Date: 2001/01/25 05:45:40 $
*/
public class DefaultServlet
@@ -911,6 +911,15 @@
if (index < 0)
break;
normalized = normalized.substring(0, index) + "%20"
+ + normalized.substring(index + 1);
+ }
+
+ // Replace "&" with "%26"
+ while (true) {
+ int index = normalized.indexOf("&");
+ if (index < 0)
+ break;
+ normalized = normalized.substring(0, index) + "%26"
+ normalized.substring(index + 1);
}
1.11 +23 -13 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
Index: WebdavServlet.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- WebdavServlet.java 2001/01/23 04:47:57 1.10
+++ WebdavServlet.java 2001/01/25 05:45:40 1.11
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.10 2001/01/23 04:47:57 remm Exp $
- * $Revision: 1.10 $
- * $Date: 2001/01/23 04:47:57 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.11 2001/01/25 05:45:40 remm Exp $
+ * $Revision: 1.11 $
+ * $Date: 2001/01/25 05:45:40 $
*
* ====================================================================
*
@@ -124,7 +124,7 @@
* are handled by the DefaultServlet.
*
* @author Remy Maucherat
- * @version $Revision: 1.10 $ $Date: 2001/01/23 04:47:57 $
+ * @version $Revision: 1.11 $ $Date: 2001/01/25 05:45:40 $
*/
public class WebdavServlet
@@ -507,7 +507,7 @@
resp.setStatus(WebdavStatus.SC_MULTI_STATUS);
// Create multistatus object
- XMLWriter generatedXML = new XMLWriter();
+ XMLWriter generatedXML = new XMLWriter(resp.getWriter());
generatedXML.writeXMLHeader();
generatedXML.writeElement(null, "multistatus"
@@ -543,7 +543,7 @@
NameClassPair ncPair =
(NameClassPair) enum.nextElement();
String newPath = currentPath;
- if (!newPath.equals("/"))
+ if (!(newPath.endsWith("/")))
newPath += "/";
newPath += ncPair.getName();
stackBelow.push(newPath);
@@ -581,15 +581,21 @@
stackBelow = new Stack();
}
+ generatedXML.sendData();
+
}
}
generatedXML.writeElement(null, "multistatus",
XMLWriter.CLOSING);
+ generatedXML.sendData();
+
+ /*
Writer writer = resp.getWriter();
writer.write(generatedXML.toString());
writer.flush();
+ */
}
@@ -1906,8 +1912,9 @@
generatedXML.writeProperty
(null, "creationdate",
getISOCreationDate(resourceInfo.creationDate));
- generatedXML.writeProperty(null, "displayname",
- resourceInfo.path.replace('/', '_'));
+ generatedXML.writeProperty
+ (null, "displayname",
+ resourceInfo.path.replace('/', '_').replace('&', '_'));
generatedXML.writeProperty(null, "getcontentlanguage",
Locale.getDefault().toString());
if (!resourceInfo.collection) {
@@ -2006,7 +2013,8 @@
} else if (property.equals("displayname")) {
generatedXML.writeProperty
(null, "displayname",
- resourceInfo.path.replace('/', '_'));
+ resourceInfo.path.replace('/', '_')
+ .replace('&', '_'));
} else if (property.equals("getcontentlanguage")) {
if (resourceInfo.collection) {
propertiesNotFound.addElement(property);
@@ -2171,8 +2179,9 @@
generatedXML.writeProperty
(null, "creationdate",
getISOCreationDate(lock.creationDate.getTime()));
- generatedXML.writeProperty(null, "displayname",
- path.replace('/', '_'));
+ generatedXML.writeProperty
+ (null, "displayname",
+ path.replace('/', '_').replace('&', '_'));
generatedXML.writeProperty(null, "getcontentlanguage",
Locale.getDefault().toString());
generatedXML.writeProperty(null, "getlastmodified",
@@ -2259,8 +2268,9 @@
(null, "creationdate",
getISOCreationDate(lock.creationDate.getTime()));
} else if (property.equals("displayname")) {
- generatedXML.writeProperty(null, "displayname",
- path.replace('/', '_'));
+ generatedXML.writeProperty
+ (null, "displayname",
+ path.replace('/', '_').replace('&', '_'));
} else if (property.equals("getcontentlanguage")) {
generatedXML.writeProperty
(null, "getcontentlanguage",