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 2024/10/22 10:13:22 UTC
(tomcat) 15/18: Code clean-up - formatting. No functional change.
This is an automated email from the ASF dual-hosted git repository.
remm pushed a commit to branch 11.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 492eb8b73258c3357c22cc9e5b068707290658ed
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Tue Oct 22 09:27:13 2024 +0100
Code clean-up - formatting. No functional change.
---
.../servlets/TransientPropertiesWebdavServlet.java | 14 +-
.../apache/catalina/servlets/WebdavServlet.java | 150 +++++++++++----------
2 files changed, 87 insertions(+), 77 deletions(-)
diff --git a/java/org/apache/catalina/servlets/TransientPropertiesWebdavServlet.java b/java/org/apache/catalina/servlets/TransientPropertiesWebdavServlet.java
index 0ab6310ed9..efa02d23cb 100644
--- a/java/org/apache/catalina/servlets/TransientPropertiesWebdavServlet.java
+++ b/java/org/apache/catalina/servlets/TransientPropertiesWebdavServlet.java
@@ -83,7 +83,8 @@ public class TransientPropertiesWebdavServlet extends WebdavServlet {
if (!found) {
properties.add(node);
}
- } if (operation.getUpdateType() == PropertyUpdateType.REMOVE) {
+ }
+ if (operation.getUpdateType() == PropertyUpdateType.REMOVE) {
Node node = operation.getPropertyNode();
for (int i = 0; i < properties.size(); i++) {
Node propertyNode = properties.get(i);
@@ -106,9 +107,8 @@ public class TransientPropertiesWebdavServlet extends WebdavServlet {
if (nameOnly) {
// Add the names of all properties
for (Node node : properties) {
- generatedXML.writeElement(node.getPrefix(),
- node.getNamespaceURI(),
- node.getLocalName(), XMLWriter.NO_CONTENT);
+ generatedXML.writeElement(node.getPrefix(), node.getNamespaceURI(), node.getLocalName(),
+ XMLWriter.NO_CONTENT);
}
} else if (property != null) {
// Add a single property
@@ -176,9 +176,9 @@ public class TransientPropertiesWebdavServlet extends WebdavServlet {
}
private boolean propertyEquals(Node node1, Node node2) {
- if (node1.getLocalName().equals(node2.getLocalName())
- && ((node1.getNamespaceURI() == null && node2.getNamespaceURI() == null)
- || (node1.getNamespaceURI() != null && node1.getNamespaceURI().equals(node2.getNamespaceURI())))) {
+ if (node1.getLocalName().equals(node2.getLocalName()) &&
+ ((node1.getNamespaceURI() == null && node2.getNamespaceURI() == null) ||
+ (node1.getNamespaceURI() != null && node1.getNamespaceURI().equals(node2.getNamespaceURI())))) {
return true;
}
return false;
diff --git a/java/org/apache/catalina/servlets/WebdavServlet.java b/java/org/apache/catalina/servlets/WebdavServlet.java
index 776169c5b7..dc4ffa744d 100644
--- a/java/org/apache/catalina/servlets/WebdavServlet.java
+++ b/java/org/apache/catalina/servlets/WebdavServlet.java
@@ -135,8 +135,8 @@ import org.xml.sax.SAXException;
* http://host:port/context/webdavedit/content
* <p>
* There are some known limitations of this Servlet due to it not implementing PROPPATCH and PROPFIND methods support
- * for dead properties. The Servlet does provide extension points to add support for some as required by user. Details of these
- * limitations and progress towards addressing them are being tracked under
+ * for dead properties. The Servlet does provide extension points to add support for some as required by user. Details
+ * of these limitations and progress towards addressing them are being tracked under
* <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=69046">bug 69046</a>.
* </p>
*
@@ -209,15 +209,9 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
/**
* Supported locks.
*/
- protected static final String SUPPORTED_LOCKS =
- "<D:lockentry>" +
- "<D:lockscope><D:exclusive/></D:lockscope>" +
- "<D:locktype><D:write/></D:locktype>" +
- "</D:lockentry>" +
- "<D:lockentry>" +
- "<D:lockscope><D:shared/></D:lockscope>" +
- "<D:locktype><D:write/></D:locktype>" +
- "</D:lockentry>";
+ protected static final String SUPPORTED_LOCKS = "<D:lockentry>" + "<D:lockscope><D:exclusive/></D:lockscope>" +
+ "<D:locktype><D:write/></D:locktype>" + "</D:lockentry>" + "<D:lockentry>" +
+ "<D:lockscope><D:shared/></D:lockscope>" + "<D:locktype><D:write/></D:locktype>" + "</D:lockentry>";
/**
* Simple date format for the creation date ISO representation (partial).
@@ -231,13 +225,13 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
/**
* Repository of all locks, keyed by path.
*/
- private final ConcurrentHashMap<String, LockInfo> resourceLocks = new ConcurrentHashMap<>();
+ private final ConcurrentHashMap<String,LockInfo> resourceLocks = new ConcurrentHashMap<>();
/**
* Map of all shared locks, keyed by lock token.
*/
- private final ConcurrentHashMap<String, LockInfo> sharedLocks = new ConcurrentHashMap<>();
+ private final ConcurrentHashMap<String,LockInfo> sharedLocks = new ConcurrentHashMap<>();
/**
@@ -485,7 +479,8 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
for (String token : parentLock.sharedTokens) {
LockInfo sharedLock = sharedLocks.get(token);
if (sharedLock != null) {
- if ((parentPath != currentPath && sharedLock.depth > 0) || parentPath == currentPath) {
+ if ((parentPath != currentPath && sharedLock.depth > 0) ||
+ parentPath == currentPath) {
lockTokens.add("opaquelocktoken:" + token);
}
}
@@ -517,7 +512,7 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
} while (true);
return false;
- }
+ }
return true;
}
@@ -528,8 +523,9 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
* because the WebDAV servlet has been mapped to a url other than /* to configure editing at different url than
* normal viewing.
*
- * @param request The servlet request we are processing
+ * @param request The servlet request we are processing
* @param allowEmptyPath Used only to identify a call from DefaultServlet, to avoid removing the trailing slash
+ *
* @return the relative path
*/
@Override
@@ -764,9 +760,8 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
generatedXML.writeElement("D", DEFAULT_NAMESPACE, "multistatus", XMLWriter.OPENING);
if (depth == 0) {
- propfindResource(generatedXML, getEncodedPath(path, resource, req),
- path, type, properties, resource.isFile(),
- resource.getCreation(), resource.getLastModified(), resource.getContentLength(),
+ propfindResource(generatedXML, getEncodedPath(path, resource, req), path, type, properties,
+ resource.isFile(), resource.getCreation(), resource.getLastModified(), resource.getContentLength(),
getServletContext().getMimeType(resource.getName()), generateETag(resource));
} else {
// The stack always contains the object of the current level
@@ -789,10 +784,10 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
// File is in directory listing but doesn't appear to exist
// Broken symlink or odd permission settings?
if (resource.exists()) {
- propfindResource(generatedXML, getEncodedPath(currentPath, resource, req),
- currentPath, type, properties, resource.isFile(),
- resource.getCreation(), resource.getLastModified(), resource.getContentLength(),
- getServletContext().getMimeType(resource.getName()), generateETag(resource));
+ propfindResource(generatedXML, getEncodedPath(currentPath, resource, req), currentPath, type,
+ properties, resource.isFile(), resource.getCreation(), resource.getLastModified(),
+ resource.getContentLength(), getServletContext().getMimeType(resource.getName()),
+ generateETag(resource));
}
if (resource.isDirectory() && (depth > 0)) {
@@ -834,7 +829,7 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
* @param resp The Servlet response
*
* @throws ServletException If an error occurs
- * @throws IOException If an IO error occurs
+ * @throws IOException If an IO error occurs
*/
protected void doProppatch(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
@@ -903,7 +898,8 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
}
}
if (property != null) {
- operations.add(new ProppatchOperation(PropertyUpdateType.SET, property));
+ operations
+ .add(new ProppatchOperation(PropertyUpdateType.SET, property));
} else {
resp.sendError(WebdavStatus.SC_BAD_REQUEST);
return;
@@ -935,7 +931,8 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
}
}
if (property != null) {
- operations.add(new ProppatchOperation(PropertyUpdateType.REMOVE, property));
+ operations.add(
+ new ProppatchOperation(PropertyUpdateType.REMOVE, property));
} else {
resp.sendError(WebdavStatus.SC_BAD_REQUEST);
return;
@@ -975,8 +972,7 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
for (ProppatchOperation operation : operations) {
generatedXML.writeElement("D", "propstat", XMLWriter.OPENING);
generatedXML.writeElement("D", "prop", XMLWriter.OPENING);
- generatedXML.writeElement(operation.propertyNode.getPrefix(),
- operation.propertyNode.getNamespaceURI(),
+ generatedXML.writeElement(operation.propertyNode.getPrefix(), operation.propertyNode.getNamespaceURI(),
operation.propertyNode.getLocalName(), XMLWriter.NO_CONTENT);
generatedXML.writeElement("D", "prop", XMLWriter.CLOSING);
generatedXML.writeElement("D", "status", XMLWriter.OPENING);
@@ -999,12 +995,13 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
/**
- * Apply proppatch to the specified path. This should be overridden by subclasses to provide
- * useful behavior. The default implementation prevents setting protected properties
- * (anything from the DAV: namespace), and sets 507 for a set attempt on dead properties.
+ * Apply proppatch to the specified path. This should be overridden by subclasses to provide useful behavior. The
+ * default implementation prevents setting protected properties (anything from the DAV: namespace), and sets 507 for
+ * a set attempt on dead properties.
*
- * @param path the resource path on which to apply the proppatch
- * @param operations the set and remove to apply, the final status codes of the result should be set on each operation
+ * @param path the resource path on which to apply the proppatch
+ * @param operations the set and remove to apply, the final status codes of the result should be set on each
+ * operation
*/
protected void proppatchResource(String path, ArrayList<ProppatchOperation> operations) {
boolean setProperty = false;
@@ -1529,8 +1526,8 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
} else {
if ((parentPath != path && parentLock.depth > 0) || parentPath == path) {
if (parentLock.isExclusive()) {
- if (ifHeader.contains(parentLock.token)
- && (parentLock.principal == null || parentLock.principal.equals(req.getRemoteUser()))) {
+ if (ifHeader.contains(parentLock.token) && (parentLock.principal == null ||
+ parentLock.principal.equals(req.getRemoteUser()))) {
toRenew = parentLock;
break;
}
@@ -1538,8 +1535,8 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
for (String token : parentLock.sharedTokens) {
if (ifHeader.contains(token)) {
LockInfo sharedLock = sharedLocks.get(token);
- if (sharedLock != null
- && (sharedLock.principal == null || sharedLock.principal.equals(req.getRemoteUser()))) {
+ if (sharedLock != null && (sharedLock.principal == null ||
+ sharedLock.principal.equals(req.getRemoteUser()))) {
if ((parentPath != path && sharedLock.depth > 0) || parentPath == path) {
toRenew = sharedLock;
break;
@@ -1629,8 +1626,8 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
} else {
if ((parentPath != path && parentLock.depth > 0) || parentPath == path) {
if (parentLock.isExclusive()) {
- if (lockTokenHeader.contains(parentLock.token)
- && (parentLock.principal == null || parentLock.principal.equals(req.getRemoteUser()))) {
+ if (lockTokenHeader.contains(parentLock.token) && (parentLock.principal == null ||
+ parentLock.principal.equals(req.getRemoteUser()))) {
resourceLocks.remove(parentPath);
unlocked = true;
break;
@@ -1643,8 +1640,10 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
for (String token : parentLock.sharedTokens) {
if (lockTokenHeader.contains(token)) {
LockInfo lock = sharedLocks.get(token);
- if (lock == null || lock.principal == null || lock.principal.equals(req.getRemoteUser())) {
- if ((parentPath != path && lock != null && lock.depth > 0) || parentPath == path) {
+ if (lock == null || lock.principal == null ||
+ lock.principal.equals(req.getRemoteUser())) {
+ if ((parentPath != path && lock != null && lock.depth > 0) ||
+ parentPath == path) {
parentLock.sharedTokens.remove(token);
if (parentLock.sharedTokens.isEmpty()) {
resourceLocks.remove(parentPath);
@@ -1710,9 +1709,9 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
/**
* Check to see if a resource is currently write locked.
*
- * @param path Path of the resource
+ * @param path Path of the resource
* @param principal The authenticated principal name
- * @param ifHeader "If" HTTP header which was included in the request
+ * @param ifHeader "If" HTTP header which was included in the request
*
* @return <code>true</code> if the resource is locked (and no appropriate lock token has been found for at least
* one of the non-shared locks which are present on the resource).
@@ -1730,8 +1729,8 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
} else {
if ((parentPath != path && parentLock.depth > 0) || parentPath == path) {
if (parentLock.isExclusive()) {
- if (ifHeader.contains(":" + parentLock.token + ">")
- && (parentLock.principal == null || parentLock.principal.equals(principal))) {
+ if (ifHeader.contains(":" + parentLock.token + ">") &&
+ (parentLock.principal == null || parentLock.principal.equals(principal))) {
return false;
}
return true;
@@ -1740,8 +1739,8 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
LockInfo lock = sharedLocks.get(token);
if (lock != null) {
if ((parentPath != path && lock.depth > 0) || parentPath == path) {
- if (ifHeader.contains(":" + token + ">")
- && (lock.principal == null || lock.principal.equals(principal))) {
+ if (ifHeader.contains(":" + token + ">") &&
+ (lock.principal == null || lock.principal.equals(principal))) {
return false;
}
unmatchedSharedLock = true;
@@ -2026,12 +2025,12 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
}
/**
- * Copy resource. This should be overridden by subclasses to provide
- * useful behavior. The default implementation prevents setting protected properties
- * (anything from the DAV: namespace), and sets 507 for a set attempt on dead properties.
+ * Copy resource. This should be overridden by subclasses to provide useful behavior. The default implementation
+ * prevents setting protected properties (anything from the DAV: namespace), and sets 507 for a set attempt on dead
+ * properties.
*
* @param source the copy source path
- * @param dest the copy destination path
+ * @param dest the copy destination path
*/
protected void copyResource(String source, String dest) {
}
@@ -2127,9 +2126,9 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
}
/**
- * Delete specified resource. This should be overridden by subclasses to provide
- * useful behavior. The default implementation prevents setting protected properties
- * (anything from the DAV: namespace), and sets 507 for a set attempt on dead properties.
+ * Delete specified resource. This should be overridden by subclasses to provide useful behavior. The default
+ * implementation prevents setting protected properties (anything from the DAV: namespace), and sets 507 for a set
+ * attempt on dead properties.
*
* @param path the path of the resource to delete
*/
@@ -2275,8 +2274,8 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
}
- private void sendReport(HttpServletRequest req, HttpServletResponse resp, String errorPath, int errorCode, String error)
- throws IOException {
+ private void sendReport(HttpServletRequest req, HttpServletResponse resp, String errorPath, int errorCode,
+ String error) throws IOException {
resp.setStatus(errorCode);
XMLWriter generatedXML = new XMLWriter();
@@ -2303,8 +2302,8 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
private void propfindResource(XMLWriter generatedXML, String rewrittenUrl, String path, int propFindType,
- List<Node> properties, boolean isFile, long created, long lastModified,
- long contentLength, String contentType, String eTag) {
+ List<Node> properties, boolean isFile, long created, long lastModified, long contentLength,
+ String contentType, String eTag) {
generatedXML.writeElement("D", "response", XMLWriter.OPENING);
String status = "HTTP/1.1 " + WebdavStatus.SC_OK + " ";
@@ -2473,8 +2472,8 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
generatedXML.writeElement("D", propertyNotFound, XMLWriter.NO_CONTENT);
} else {
generatedXML.writeElement(propertyNotFoundNode.getPrefix(),
- propertyNotFoundNode.getNamespaceURI(),
- propertyNotFoundNode.getLocalName(), XMLWriter.NO_CONTENT);
+ propertyNotFoundNode.getNamespaceURI(), propertyNotFoundNode.getLocalName(),
+ XMLWriter.NO_CONTENT);
}
}
@@ -2493,15 +2492,17 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
/**
- * Generate propfind XML fragments for dead properties. This should be overridden by subclasses to provide
- * useful behavior. The default implementation prevents setting protected properties
- * (anything from the DAV: namespace), and sets 507 for a set attempt on dead properties.
+ * Generate propfind XML fragments for dead properties. This should be overridden by subclasses to provide useful
+ * behavior. The default implementation prevents setting protected properties (anything from the DAV: namespace),
+ * and sets 507 for a set attempt on dead properties.
*
- * @param path the resource path
- * @param property the dead property, if null then all dead properties must be written
- * @param nameOnly true if only the property name element should be generated
+ * @param path the resource path
+ * @param property the dead property, if null then all dead properties must be written
+ * @param nameOnly true if only the property name element should be generated
* @param generatedXML the current generated XML for the PROPFIND response
- * @return true if property was specified and a corresponding dead property was found on the resource, false otherwise
+ *
+ * @return true if property was specified and a corresponding dead property was found on the resource, false
+ * otherwise
*/
protected boolean propfindResource(String path, Node property, boolean nameOnly, XMLWriter generatedXML) {
if (nameOnly) {
@@ -2772,44 +2773,53 @@ public class WebdavServlet extends DefaultServlet implements PeriodicEventListen
}
}
- enum PropertyUpdateType { SET, REMOVE }
+ enum PropertyUpdateType {
+ SET,
+ REMOVE
+ }
protected static class ProppatchOperation {
private final PropertyUpdateType updateType;
private final Node propertyNode;
private final boolean protectedProperty;
private int statusCode = HttpServletResponse.SC_OK;
+
public ProppatchOperation(PropertyUpdateType updateType, Node propertyNode) {
this.updateType = updateType;
this.propertyNode = propertyNode;
String davName = getDAVNode(propertyNode);
- protectedProperty = davName != null
- && (!(davName.equals("displayname") || davName.equals("getcontentlanguage")));
+ protectedProperty =
+ davName != null && (!(davName.equals("displayname") || davName.equals("getcontentlanguage")));
}
+
/**
* @return the updateType
*/
public PropertyUpdateType getUpdateType() {
return this.updateType;
}
+
/**
* @return the propertyNode
*/
public Node getPropertyNode() {
return this.propertyNode;
}
+
/**
* @return the statusCode
*/
public int getStatusCode() {
return this.statusCode;
}
+
/**
* @param statusCode the statusCode to set
*/
public void setStatusCode(int statusCode) {
this.statusCode = statusCode;
}
+
/**
* @return the protectedProperty
*/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org