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]

Reply via email to