Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Blocker
-
Resolution: Fixed
-
Affects Version/s: 1.1
-
Fix Version/s: 1.1
-
Component/s: WebDAV Interface
-
Labels:None
-
Number of attachments :
Description
In DefaultDavServerManager, the createServer method instead of creating a new server each time it's called is reusing the same server for all paths.
The "DavServerComponent server" needs to be created each time createServer is called instead of being injected by plexus when the DavServerManager is created.
This bug makes multiple repositories with different settings not work.
For example "internal" has snapshots disabled, while "snapshots" has snapshots enabled. When a request comes for the snapshots repository, webdav is using the metadata for the "internal" server which has snapshots disabled and refuses to download snapshots.
It's possible that if it downloaded snapshots they would be put on the wrong repository ("internal"), but I haven't verified this.
Patch follows for this issue.
application.xml: remove injection of DavServerComponent to DavServerManager.
DavServerManager.createServer: add parameter ServletConfig config .
DefaultDavServerManager.createServer: add parameter ServletConfig config and fetch server from spring.
BasicWebDavServlet and MultiplexedWebDavServlet add config parameter to createServer call.