slachiewicz opened a new pull request, #983: URL: https://github.com/apache/maven-wagon/pull/983
`WebDavWagon.mkdirs` recognised only `201` and `405`, and read everything else as "the ancestor is missing". Two consequences, both from the third bullet of #630: - A `403`, or an authentication failure, sent the walk further back instead of being reported. It kept stepping up to the root and then failed on the way down, naming a path that was never the problem. - On the way down only `201` was accepted, so a collection that appeared underneath us — a concurrent deploy, or an intermediate that already existed — failed the upload with `405`. RFC 4918 section 9.3.1 gives MKCOL a small vocabulary: `201` is a collection we created, `405` one that was already there, and `409` says an ancestor is missing. Only `409` is a reason to step back; only the first two mean carry on. Anything else is now reported where it happens. The traversal moved into a package-private `mkColPath(baseUrl, relpath)` so the status handling can be driven without a server, and `doMkCol` went from private to package-private as the seam. No public API changes. Verified: `mvn install -pl wagon-providers/wagon-webdav-jackrabbit -am` → 308 tests, 0 failures, including all four 71-test server-backed suites unchanged. The new `WebDavWagonMkColTest` scripts the statuses a real server will not produce on demand. Negative control: reverting the production change turns 3 of its 5 cases red — one per defect above, plus the exhausted-path case — while the two describing preserved behaviour stay green. `spotless:check` passes. This does not close #630 on its own: the remaining bullet there is that the WebDAV tests still run through the HTTP test base. *This change was created with AI assistance.* -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
