This is an automated email from the ASF dual-hosted git repository.
remm pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/10.1.x by this push:
new f5cca95582 Fix discrepancies in property names list and find by
property
f5cca95582 is described below
commit f5cca95582c2daba0d21a81420f9a209166976df
Author: remm <[email protected]>
AuthorDate: Thu Oct 31 11:48:16 2024 +0100
Fix discrepancies in property names list and find by property
---
.../apache/catalina/servlets/WebdavServlet.java | 35 ++++++++--------------
1 file changed, 12 insertions(+), 23 deletions(-)
diff --git a/java/org/apache/catalina/servlets/WebdavServlet.java
b/java/org/apache/catalina/servlets/WebdavServlet.java
index 748687eff4..615b9556c9 100644
--- a/java/org/apache/catalina/servlets/WebdavServlet.java
+++ b/java/org/apache/catalina/servlets/WebdavServlet.java
@@ -2489,8 +2489,8 @@ public class WebdavServlet extends DefaultServlet
implements PeriodicEventListen
generatedXML.writeElement("D", "prop", XMLWriter.OPENING);
generatedXML.writeProperty("D", "creationdate",
getISOCreationDate(created));
+ generatedXML.writeProperty("D", "getlastmodified",
FastHttpDateFormat.formatDate(lastModified));
if (isFile) {
- generatedXML.writeProperty("D", "getlastmodified",
FastHttpDateFormat.formatDate(lastModified));
generatedXML.writeProperty("D", "getcontentlength",
Long.toString(contentLength));
if (contentType != null) {
generatedXML.writeProperty("D", "getcontenttype",
contentType);
@@ -2498,11 +2498,11 @@ public class WebdavServlet extends DefaultServlet
implements PeriodicEventListen
generatedXML.writeProperty("D", "getetag", eTag);
generatedXML.writeElement("D", "resourcetype",
XMLWriter.NO_CONTENT);
} else {
- generatedXML.writeProperty("D", "getlastmodified",
FastHttpDateFormat.formatDate(lastModified));
generatedXML.writeElement("D", "resourcetype",
XMLWriter.OPENING);
generatedXML.writeElement("D", "collection",
XMLWriter.NO_CONTENT);
generatedXML.writeElement("D", "resourcetype",
XMLWriter.CLOSING);
}
+
store.propfind(path, null, false, generatedXML);
generatedXML.writeElement("D", "supportedlock",
XMLWriter.OPENING);
@@ -2526,14 +2526,16 @@ public class WebdavServlet extends DefaultServlet
implements PeriodicEventListen
generatedXML.writeElement("D", "creationdate",
XMLWriter.NO_CONTENT);
if (isFile) {
- generatedXML.writeElement("D", "getcontentlanguage",
XMLWriter.NO_CONTENT);
generatedXML.writeElement("D", "getcontentlength",
XMLWriter.NO_CONTENT);
- generatedXML.writeElement("D", "getcontenttype",
XMLWriter.NO_CONTENT);
+ if (contentType != null) {
+ generatedXML.writeElement("D", "getcontenttype",
XMLWriter.NO_CONTENT);
+ }
generatedXML.writeElement("D", "getetag",
XMLWriter.NO_CONTENT);
- generatedXML.writeElement("D", "getlastmodified",
XMLWriter.NO_CONTENT);
}
+ generatedXML.writeElement("D", "getlastmodified",
XMLWriter.NO_CONTENT);
generatedXML.writeElement("D", "resourcetype",
XMLWriter.NO_CONTENT);
generatedXML.writeElement("D", "lockdiscovery",
XMLWriter.NO_CONTENT);
+ generatedXML.writeElement("D", "supportedlock",
XMLWriter.NO_CONTENT);
store.propfind(path, null, true, generatedXML);
generatedXML.writeElement("D", "prop", XMLWriter.CLOSING);
@@ -2555,22 +2557,14 @@ public class WebdavServlet extends DefaultServlet
implements PeriodicEventListen
for (Node propertyNode : properties) {
String property = getDAVNode(propertyNode);
- if (property == null) {
+ boolean protectedProperty =
+ property != null &&
(!(property.equals("displayname") || property.equals("getcontentlanguage")));
+ if (property == null || !protectedProperty) {
if (!store.propfind(path, propertyNode, false,
generatedXML)) {
propertiesNotFound.add(propertyNode);
}
} else if (property.equals("creationdate")) {
generatedXML.writeProperty("D", "creationdate",
getISOCreationDate(created));
- } else if (property.equals("displayname")) {
- generatedXML.writeElement("D", "displayname",
XMLWriter.OPENING);
- generatedXML.writeData(resourceName);
- generatedXML.writeElement("D", "displayname",
XMLWriter.CLOSING);
- } else if (property.equals("getcontentlanguage")) {
- if (isFile) {
- generatedXML.writeElement("D",
"getcontentlanguage", XMLWriter.NO_CONTENT);
- } else {
- propertiesNotFound.add(propertyNode);
- }
} else if (property.equals("getcontentlength")) {
if (isFile) {
generatedXML.writeProperty("D",
"getcontentlength", Long.toString(contentLength));
@@ -2578,7 +2572,7 @@ public class WebdavServlet extends DefaultServlet
implements PeriodicEventListen
propertiesNotFound.add(propertyNode);
}
} else if (property.equals("getcontenttype")) {
- if (isFile) {
+ if (isFile && contentType != null) {
generatedXML.writeProperty("D", "getcontenttype",
contentType);
} else {
propertiesNotFound.add(propertyNode);
@@ -2590,12 +2584,7 @@ public class WebdavServlet extends DefaultServlet
implements PeriodicEventListen
propertiesNotFound.add(propertyNode);
}
} else if (property.equals("getlastmodified")) {
- if (isFile) {
- generatedXML.writeProperty("D", "getlastmodified",
-
FastHttpDateFormat.formatDate(lastModified));
- } else {
- propertiesNotFound.add(propertyNode);
- }
+ generatedXML.writeProperty("D", "getlastmodified",
FastHttpDateFormat.formatDate(lastModified));
} else if (property.equals("resourcetype")) {
if (isFile) {
generatedXML.writeElement("D", "resourcetype",
XMLWriter.NO_CONTENT);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]