You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Joakim Erdfelt (JIRA)" <ji...@codehaus.org> on 2007/01/03 21:50:09 UTC

[jira] Commented: (MRM-234) Moving files between repos through webdav doesn't work

    [ 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