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]

Reply via email to