[ http://jira.codehaus.org/browse/MRM-234?page=comments#action_83940 ] Joakim Erdfelt commented on MRM-234: ------------------------------------
What's happening (Technical) *Request* {code} MOVE /repository/corporate/cas HTTP/1.1 Content-Language: en-us Accept-Language: en-us Overwrite: F Destination: http://192.168.1.104:9091/repository/snapshots/cas Translate: f User-Agent: Microsoft Data Access Internet Publishing Provider DAV Host: 192.168.1.104:9091 Content-Length: 0 Connection: Keep-Alive Cookie: JSESSIONID=1ia9oq074832f Authorization: Basic YWRtaW46Ym9iMQ== {code} *Response* {code} HTTP/1.1 500 URI_scheme_is_not_file Content-Type: text/html; charset=ISO-8859-1 Content-Length: 3887 Server: Archiva : CouldIT-WebDAV/0.4 DAV: 1 MS-Author-Via: DAV Connection: keep-alive <h2>HTTP ERROR: 500</h2><pre>URI scheme is not "file"</pre> <p>RequestURI=/repository/corporate/cas</p><h3>Caused by:</h3><pre>java.lang.IllegalArgumentException: URI scheme is not "file" .at java.io.File.<init>(File.java:324) .at it.could.webdav.DAVRepository.getResource(DAVRepository.java:125) .at it.could.webdav.methods.COPY.process(COPY.java:52) .at it.could.webdav.methods.MOVE.process(MOVE.java:47) .at it.could.webdav.DAVProcessor.process(DAVProcessor.java:79) .at org.apache.maven.archiva.web.servlet.repository.RepositoryAccess.servletRequest(RepositoryAccess.java:227) .at org.apache.maven.archiva.web.servlet.PlexusComponentServlet.service(PlexusComponentServlet.java:129) .at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:445) .at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1049) .at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:189) .at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1040) .at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118) {code} The webdav servlet is being passed 2 pieces of information. * Source File to Move From: /repository/corporate/cas * Destination to Move To: http://192.168.1.104:9091/repository/snapshots/cas The webdav servlet cannot handle moving a resource out to another URL. It expects local to repository moves only. That's why we get the URI scheme is not "file" error message. Potential Solutions: # Deny COPY and MOVE requests from working. # Adjust the destination header if it is determined to belong to another archiva repository before it.could.webdav handles the request. # Create support for remove URL webdav move in it.could.webdav sourcebase using slide-webdav-client libraries. # Dump it.could.webdav in favor of slide-webdav-servlet None of these solutions seem like a good idea to me. Any opinions? > Moving files between repos through webdav doesn't work > ------------------------------------------------------ > > Key: MRM-234 > URL: http://jira.codehaus.org/browse/MRM-234 > Project: Archiva > Issue Type: Bug > Components: repository interface > Affects Versions: 1.0 > Reporter: Carlos Sanchez > Fix For: 1.0 > > Attachments: client.log, server.log, webdav-0.5-dev.jar > > > The goal is to move files from one repo to another through the webdav > interface, using a webdav client, like Windows My Network Places or BitKinex > Two repos where created and accessed with username/password > http://localhost:8092/repository/repo1 > http://localhost:8092/repository/repo2 > Copying from one to another fails. > Copying from any other webdav server to them works > Copying from them to any other webdav server works > Copying from local to them and from them to local of course works > I tried with latest svn code from could.it which includes this MOVE > improvement http://issues.apache.org/jira/browse/HADOOP-505 that makes a real > move and not a copy+delete -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira